Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 932

 
elibrarius:
Copie-o para o seu blog, talvez alguém precise dele. Não é realista procurar algo aqui.

O blog também tem este código. Mas é bastante básico "como fazer kfold", há muito a ser retrabalhado para as suas tarefas específicas. Além disso, se você habilitar a multithreading em genética, o elmnn ignorará o grão gpsfold instalado e cada fio receberá algo diferente e não reprodutível, para tal caso (multithreading em genética) ver artigos de Vladimir Perervenko e sua forma de controlar o gpsfold.

 
Maxim Dmitrievsky:

ainda há uma dimensão extra e você tem que traçar uma curva através dela de alguma forma, talvez com um grande erro

a desistência aumenta o erro, não?

A desistência é equivalente à desactivação de um neurónio. Se é barulhento, é bom.
E por que inventariam algo que aumenta o erro - tudo faz sentido, desde que ajude a reduzir o erro.
 
elibrarius:
O abandono é equivalente ao encerramento de um neurónio. Se é barulhento, é bom.
E por que você pensaria em algo que aumenta o erro - tudo faz sentido se ajuda a reduzir o erro.

Ahem... aumentar o erro é suposto remover o sobretreinamento. Nem sempre, mas de que outra forma?

É por isso que eles dizem que 0,5 é um bom shiba em forex. Para mim a 0.3 0.4 começa a funcionar mais ou menos, se menos do que o excesso de roupa como regra.

Quer dizer, eu percebo a piada, certo? Eles acham que são fixes, na verdade apenas treinam mal o modelo, e mais ou menos não vaza nada lá fora porque é trocado a meio.

 
Dr. Trader:

Python também deveria ser.

Estou a ver, Python está longe de mim... Ninguém faz uma embalagem GUI para trabalhar com a NS?

Dr. Trader:

Vou correr o algoritmo hoje à noite e mostrar-te o que saiu amanhã.

Obrigado, vai ser educativo.

Dr. Trader:

Alcançar 100% de precisão e esperar que o modelo funcione bem é geralmente impossível em forex, você precisa de meses para selecionar os preditores e até mesmo um alvo que se encaixe bem juntos. Normalmente, tendo atingido uma precisão de algumas dezenas superior a 50%, o modelo começa então a memorizar exemplos de treino em vez de encontrar padrões lógicos nos mesmos. Portanto, o resultado sobre os novos dados será cada vez pior. Nos seus dados obtive este óptimo de 60% - quando os resultados do treino e dos dados de teste são aproximadamente iguais, mas com partições de árvores mais detalhadas e floresta de maior precisão, os resultados são cada vez piores nos novos dados.

Qual é a pressa, há tempo se não for para ser desperdiçado.

Contudo, não compreendo bem a diferença entre memorizar e aprender, na minha opinião todo este MO deve encontrar características no conjunto de dados e verificar o resultado esperado com o resultado memorizado, mas tendo em conta a deformação dos dados e, consequentemente, dar a sua previsão dependendo da deformação. Era isso que eu tinha em mente até começar a mexer em tudo.

Só me surpreende, que a árvore seja resolvida com diferentes conjuntos de preditores, o que significa que não é construída com todos os dados e conhecimentos, e é esta circunstância que me permite fazer uma suposição sobre a permissibilidade de mais ramificações.

 
Maxim Dmitrievsky:

Ahem... aumentando o erro, o sobretreinamento parece ter sido removido. Nem sempre, mas de que outra forma poderia ser?

Isso também. Mais precisamente, é a tarefa principal. Eu tenho a associação de remover neurónios com a remoção de inputs. Talvez isso não esteja certo.

Sim, um pouco de dropconnect na primeira camada é como remover entradas.

 
Elibrarius:

Isto também. Mais precisamente - esta é a tarefa principal. Eu tenho uma associação de remoção de neurónios com a remoção de inputs. Pode não estar correcto.

remoção de neurónios é remoção de graus de liberdade = aumento do erro, grosseiro

Se você remover alguns termos de uma regressão, é o mesmo que remover entradas, e em uma NS totalmente coerente, por que

dropconnect, pelo nome, sim, parece

 
Maxim Dmitrievsky:

remoção de neurónios é remoção de graus de liberdade = aumento do erro, grosseiro

se da regressão para remover alguns membros é equivalente à remoção de entradas, e em um NS totalmente conectado porque

dropconnect, pelo nome, - sim, parece.

Mas também com o dropconnect a tarefa é complicada... Por exemplo, 50 entradas, 50 neurónios.
Ao remover 1 entrada, removemos 50 conexões para 50 neurônios também.
E é 50 vezes mais difícil remover todas as 50 conexões para remover 1 entrada. E desta forma, para passar por todas as 50 entradas... que são 50^50 variações. Obviamente, é uma tarefa sem esperança. É mais fácil de lidar com inputs - temos apenas 2^50 )))).
 
elibrarius:

A questão não é só para ti, é para todos.

Na prática é assim, ou seja, se há preditores de ruído então NS não pode sair de 50-55%. Se for recolhido, pode até dar 70%.

Mas porque é que isto é assim?
1) Bem, NS deve selecionar automaticamente pesos próximos de 0 para os preditores de ruído durante o treinamento (é equivalente à sua exclusão da seleção). Nós vimos isso no problema no início do ramo.
2) Se não por treinamento para subestimar pesos, então pelo menos o abandono deve peneirar...

Já foi escrito muitas vezes: os preditores de ruído são muito mais amigos do modelo - há sempre valores no ruído que melhoram o resultado da aprendizagem. Então o processo é invertido - os preditores de ruído ganham mais peso, não como você sugere. Isto é especialmente perceptível em amostras pequenas, que são menos de 1000 observações. Amostras de mais de 5000 observações não são tão afetadas, mas você ainda precisa pré-exibir os preditores de ruído

 
elibrarius:
Mas também com o dropconnect a tarefa é difícil... Por exemplo, 50 entradas, 50 neurónios.
Ao remover 1 entrada, removemos 50 conexões para 50 neurônios também.
E é 50 vezes mais difícil remover todas as 50 conexões para remover 1 entrada. E desta forma, para remover todas as 50 entradas... Aparentemente, é uma tarefa sem esperança. É mais fácil de lidar com os inputs.
As entradas são mais importantes de qualquer forma, brincar com modelos é apenas xamanismo e não deve dar grande ganho no caso geral. Bem eu fiz um conjunto de andaimes, depois de deixar cair andaimes individuais eu posso melhorar por 0,05, às vezes por 0,1 em erro (diferença entre o traine e o teste). Isto não resolve o problema principal. Em redes neurais avançadas, não sei como.
 
SanSanych Fomenko:

Já foi escrito muitas vezes: os preditores de ruído são muito mais amigos do modelo - há sempre valores no ruído que melhoram o resultado da aprendizagem. Então o processo é invertido - os preditores de ruído ganham mais peso, não como você sugere. Isto é especialmente perceptível em amostras pequenas, que são menos de 1000 observações. Amostras de mais de 5000 observações não são tão afetadas, mas você ainda precisa pré-exibir os preditores de ruído.

Talvez haja uma tecnologia que permita priorizar os preditores para uso em NS/Tree/Forest de acordo com a sua importância do ponto de vista do analista?