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

 

Podias ir pelo caminho de deitar fora as mesmas entradas. Para cada coluna entre si, calcular o desvio médio. Desta forma, as duas colunas mais semelhantes podem ser encontradas, uma das quais pode ser descartada. Qual das duas, pode ser contada pelo desvio médio entre todas as colunas, etc.

 
Dr. Trader:

Visualmente, todos os pesos estão divididos em dois grupos. Se você quiser dividi-los de acordo com o significado/não-significado, então 5,11,7,1,3,9 claramente se destacam, este conjunto eu acho que é suficiente.

Essa é a decisão certa!

Eu não sabia que os NS podiam fazer isso. Isso é uma revelação para mim.

Acontece que NS pode simular interações.

Eu devo-te um prémio. Obrigado!

 

É verdade que os NS não dão uma ideia do tipo de padrão. Ou seja, a interpretabilidade do modelo está em questão.

Mais tarde publicarei a lógica para criar o conjunto de dados e falarei sobre o tipo de dependência.

 
Dr. Trader:

Visualmente, todos os pesos estão divididos em dois grupos. Se você quiser dividi-los de acordo com o significado/não-significado, 5,11,7,1,3,9 claramente se destacam, este conjunto é suficiente, eu acho.

Se você estiver interessado, tente remover qualquer preditor significativo do conjunto de dados e treinar novamente o NS e produzir a imagem com pesos. Acho que vai haver uma surpresa.

Isto já está fora da missão. Para fazer crescer o tema.

 
Alexey Burnakov:

Se você estiver interessado, tente remover qualquer um dos preditores significativos do conjunto de dados e treinar novamente o NS e exibir uma imagem dos pesos. Acho que vai haver uma surpresa.

Isto já está fora de questão. Para fazer crescer o tema.

O fogão é uma parte muito importante do interior, no sentido de que se deve sempre dançar a partir dele, não.

Dr.Trader

Seu exemplo com NS apenas diz que NS gostava mais dos preditores que você mencionou e não gostava dos outros. Algoritmos que fazem tais coisas são um centavo a dúzia.

Tudo isso estaria bem se tal seleção fosse feita entre os preditores que são relevantes, têm poder preditivo, capacidade preditiva para a variável alvo.

Na minha prática, há sempre preditores entre um conjunto arbitrário de preditores que não têm (ou têm uma relação muito fraca) com a variável alvo. Assim, a armadilha é que, dado algum número desses preditores de ruído ou alguma selecção aleatória dos seus valores, a maioria dos algoritmos, incluindo NS, não consegue distinguir os preditores informativos entre os preditores de ruído.

Portanto, "fogo-fogão" é definido como uma ação que primeiro limpa o conjunto inicial de preditores dos preditores sem esperança, ruidosos e depois...

PS.

Não tenho trabalhado com NS, mas florestas aleatórias, com certa quantidade de preditores de ruído, tendem a descartar os preditores informativos de acordo com seu algoritmo embutido. Como resultado, no ruído, eles dão um desempenho extraordinário com um erro de menos de 5%!

SARP

A presença de preditores de ruído leva necessariamente à requalificação do modelo com tudo o que ele implica para o mundo real.

 
SanSanych Fomenko:

O fogão é uma parte muito importante do interior, no sentido de que você deve sempre dançar ao redor dele.

Dr.Trader

Seu exemplo com NS apenas diz que NS gostava mais dos preditores que você mencionou e não gostava dos outros. Algoritmos que fazem tais coisas são um centavo a dúzia.

Tudo isso estaria bem se tal seleção fosse feita entre os preditores que são relevantes, têm poder preditivo, capacidade preditiva para a variável alvo.

Na minha prática, há sempre preditores entre um conjunto arbitrário de preditores que não têm (ou têm uma relação muito fraca) com a variável alvo. Assim, a armadilha é que, dado algum número desses preditores de ruído ou alguma selecção aleatória dos seus valores, a maioria dos algoritmos, incluindo NS, não consegue distinguir os preditores informativos entre os preditores de ruído.

Portanto, "fogo-fogão" é definido como uma ação que primeiro limpa o conjunto inicial de preditores dos preditores sem esperança, ruidosos e depois...

PS.

Não tenho trabalhado com NS, mas florestas aleatórias, com certa quantidade de preditores de ruído, tendem a descartar os preditores informativos de acordo com seu algoritmo embutido. Como resultado, no ruído, eles dão um desempenho extraordinário com um erro de menos de 5%!

SARP

A presença de preditores de ruído leva necessariamente à requalificação do modelo com tudo o que implica para o real

NS fez muito bem.

A Random Forest não poderia lidar com tal tarefa com a interação de um conjunto de variáveis. E o significado individual de cada preditor foi intencionalmente zero.

 

Ainda bem que funcionou :) Obrigado pelo prémio.

Eu tentei remover uma entrada (4 casos) - se eu remover input_5 ou input_9 então nada mais funciona, neurônios com a mesma configuração não aprendem nem mesmo a um erro inferior a 50%, começa a dar apenas 0 ou 1 em um caso maior.

Se eu remover input_20 então tudo está bem, o resultado está correcto. Mas algo engraçado sobre input_15, se eu removê-lo então o neurônio não treina corretamente, os problemas são os mesmos que quando eu removo input_5 ou input_9. Eu não o testei mais.

Anexei ficheiro com o código R para neurónio de treino, se estiveres interessado. É basicamente apenas um código ligeiramente modificado do diário de bordo do Rattle.

Arquivos anexados:
r_nnet.zip  3 kb
 
Dr. Trader:

Ainda bem que funcionou :) Obrigado pelo prémio.

Eu tentei remover uma entrada (4 casos) - se eu remover input_5 ou input_9 então nada mais funciona, neurônicos com a mesma configuração não aprendem nem mesmo a um erro inferior a 50%, começam a dar apenas 0 ou 1 em um caso maior.

Se eu remover input_20 então tudo está bem, o resultado está correcto. Mas algo engraçado sobre input_15, se eu removê-lo então o neurônio não treina corretamente, os problemas são os mesmos que quando eu removo input_5 ou input_9. Eu não o testei mais.

Anexei ficheiro com o código R para neurónio de treino, se estiveres interessado. É basicamente apenas um código ligeiramente modificado do diário de bordo do Rattle.

Envie-me o número do seu cartão ou e-wallet
 

Bem, em geral o processo é claro, o neurônio simplesmente tenta encaixar os dados disponíveis em alguma lógica, e se alguns dos inputs não trouxerem novas informações, ele minimiza seu impacto para que não causem danos. É pouco provável que encontre inter-relações complexas de inputs, concordo.

Além disso, o pacote nnet em R não é exactamente uma rede neural convencional. A partir da descrição, deve usar o aprendizado de segunda ordem. Normalmente nos neurónios os pesos mudam de acordo com os derivados, mas aqui eles mudam de acordo com os derivados dos derivados. E durante o treinamento é construída uma espécie de matriz "hessiana" que armazena dados importantes sobre todos os pesos para todos os exemplos de treinamento ao mesmo tempo. Eles dizem que é muito legal, este pacote deve ser forte.https://ru.wikipedia.org/wiki/Алгоритм_Бройдена_-_Флетчера_-_Гольдфарба_-_Шанно - Eu não entendi, mas isso se alguém for um matemático, então descubra.

Алгоритм Бройдена — Флетчера — Гольдфарба — Шанно — Википедия
  • ru.wikipedia.org
Алгоритм Бройдена — Флетчера — Гольдфарба — Шанно (BFGS) (англ. Broyden — Fletcher — Goldfarb — Shanno algorithm) — итерационный метод численной оптимизации, предназначенный для нахождения локального максимума/минимума нелинейного функционала без ограничений. BFGS — один из наиболее широко применяемых квазиньютоновских методов. В...
 
Sobre resultados estranhos:
Se você remover qualquer preditor significativo, nada vai funcionar. Esta é a interacção.

Cada um dos preditores não diz nada sobre o estado da produção. Portanto, os algoritmos que consideram significado individual não funcionarão. Também árvores de decisão e florestas aleatórias quase certamente não funcionarão, uma vez que também olham para os preditores individualmente. Mas uma enorme floresta de dezenas de milhares de árvores pode fundir acidentalmente preditores significativos num só ramo e tudo vai funcionar. Mas é improvável.

Porque não?

Interação é a informação que flui de muitos preditores juntos para a saída. O algoritmo de dependência é tal que a soma dos preditores significativos pode ser 50/50 pares ou ímpares. Se o resultado for 1, senão é 0. É por isso que a remoção de pelo menos um dos preditores significativos quebra a dependência. E adicionar mais preditores pode torná-lo ruidoso para que o teste estatístico não mostre nenhum significado.

Estou realmente surpreendido que a NS convencional tenha sido capaz de detectar uma relação assim. Agora estou a começar a acreditar na capacidade do MLP em detectar entradas significativas. Sim.

Em suma, acertaste mesmo no alvo. Se você tentar treinar uma floresta aleatória, quase de certeza que não vai funcionar.

Também tenho quase a certeza que a regressão logística vai falhar.

Em resumo, você precisa da enumeração estocástica de diferentes subconjuntos de preditores com a função correta de adequação para este problema. Ou NS )))

Eu ponho o meu método mais tarde.

Talvez outra pessoa tente outra maneira de selecionar os preditores e então poderemos comparar os resultados.