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

 
Mihail Marchukajtes:
Você está absolutamente certo no início. Finalmente apareceram algumas pessoas sensatas no ramo. Mas o padrão em si tem um papel preditivo, e não é o padrão em si que importa, mas a reação do mercado a ele. E se esta reacção for idêntica à do treino, a rede tirará a conclusão certa. Então é assim....
O que fazer? Tentar usar o classificador Bayesiano ingênuo ou estudar os palpiteiros j?
 
Yuri Evseenkov:
O que fazer? Tentar puxar o classificador besoviano ingênuo, ou estudar os gPredictors?
xO que é a Besovian classificadora???? Não percebo, agora o Reshetov fez uma coisa terrivelmente fixe, com, sem, massa. E ainda estás a brincar com os teus R's. A fazer um monte de manipulação de dados desnecessária. E qual é o exemplo da íris???? Interessante ver como o Predictor vai descobrir....
 
Mihail Marchukajtes:
xO que é o classificador Besov???? Não percebo, agora o Reshetov fez uma coisa terrivelmente fixe, com, sem, massa. E tu continuas a mexer nos teus R's. A fazer um monte de manipulação de dados desnecessária. E qual é o exemplo da íris???? Interessante ver como o Predictor vai descobrir....
Sim, eu só descobri sobre o R aqui. E na palavra classificadora Bayesian falhou acidentalmente uma carta (talvez de Freud). E que o programa Reshetov é legal, eu não discuto. Eu não sei sobre a íris.
 
Yuri Evseenkov:
Só soube do R aqui. E eu acidentalmente perdi uma carta na palavra classificadora Bayesiana (talvez de Freud). E o programa de Reshetov é legal, eu não discuto. Eu não sei sobre a Iris.
Máquina do IShaitan Reshetov :-)
 
Mihail Marchukajtes:
xO que é o classificador Besov???? Não entendo, agora o Reshetov fez uma coisa muito fixe, com, fora, massa. E tu continuas a mexer nos teus R's. A fazer um monte de manipulação de dados desnecessária. E qual é o exemplo da íris???? Interessante ver como o Predictor vai descobrir....

Posso ver o resultado das negociações de ontem?

 
Mihail Marchukajtes:
O carro do IShaitan Reshetov :-)
Vamos apagar as mensagens começando com a minha gralha?
 
mytarmailS:

Porque é que os indicadores nunca funcionaram e nunca funcionarão, na minha opinião...

Alguém já tentou alguma coisa? algum pensamento me veio à cabeça? ou nem sequer ficou claro do que se tratava?
 
2 Dr.Trader.

Hi.

Sim, eu tentei formar um comité.

Eu tenho 1000 modelos treinados. Há uma amostra adiada de 5 anos. Pedi conselhos ao meu colega sobre como montar comités. Aconselhou a reunir a comissão numa parte da amostra adiada e testá-la na outra parte. Foi aqui que eu vacilei. O comitê se reciclou para a primeira parte e mostrou uma ameixa na segunda parte.

É a mesma história com modelos individuais. Cometo o erro de seleccionar um modelo por amostragem atrasada. Depois disso, o modelo pode facilmente puxar o autoclismo.
 

Muito disso você mesmo sabe e já fez, mas eu vou escrever mais completamente para excluir algumas suposições que falamos da mesma maneira, mas fazemos de maneira diferente.

Você precisa ter uma função de aptidão física cuidadosamente aperfeiçoada para estimar os parâmetros do modelo. Se a função avalia parâmetros específicos do modelo e seleciona preditores com uma pontuação alta - então deve haver bons resultados no teste com novos dados.
(Terei em mente para qualquer estimativa que quanto mais alto for, melhor é)

Por exemplo, você tem dados para treinamento, 5 anos. E os parâmetros para gbm são n.árvores, interação.profundidade, retração, n.minobsinnode, distribuição, bolsa.fração.

A função fitness deve repetir pelo menos 50 vezes em um ciclo:
1) dividir os dados em 2 partes, 50%/50%. Deve haver amostragem aleatória com amostra e amostragem sequencial (a peça para treino está algures no meio, e para validação o que a rodeia no início e no fim dos dados em bruto). Incluindo as versões extremas, onde o treinamento na primeira metade da tabela e a validação na última, e vice-versa. Acho importante ter tanto amostras sequenciais como amostras aleatórias para treinamento. Na figura você pode ver mais claramente alguns exemplos de partição aleatória e seqüencial, as linhas verdes são para treinamento, as amarelas são para validação.


2) treinar o modelo na amostra de treinamento (os parâmetros do modelo e os preditores usados são os mesmos durante todo o ciclo, aqueles que você está tentando estimar), então preveja estes mesmos dados com este modelo, e avalie a previsão - precisão, r^2, ou algo mais. Eu, por exemplo, arredondo o resultado da regressão para as classes, e uso a função Kappa de Cohen para estimativa, é de carpete, eu gosto mais do que a precisão da classificação ou precisão da regressão. Mas só funciona para duas classes. Para três classes eu acho difícil sugerir qualquer coisa, é importante que a estimativa leve em conta a precisão de cada classe separadamente, e dê alguma estimativa geral com base nisso.
3) Aplicar um modelo treinado para prever os dados de uma amostra de validação, estimar a previsão com a mesma função.
4) Ambas as estimativas (treinamento e validação) devem estar próximas uma da outra, e o mais alto possível. Eu uso este código para a pontuação final - (min(pontuação1,pontuação2) - (max(pontuação1,pontuação2)-min(pontuação1,pontuação2)) - do valor mínimo é subtraído o delta deles.

No final de cada iteração vamos obter alguma pontuação, e devido à divisão aleatória dos dados pode variar de -1 a 1 (ou em outro intervalo, dependendo da função utilizada). Calculamos o seu valor médio e devolvemo-lo como resultado da função fitness. Adicionalmente, subtraio do valor de fitness um pequeno número (0,0001) para cada preditor utilizado, para penalizar o modelo por um conjunto demasiado grande de dados necessários.

Aplico isto em conjunto com a genética, que capta os preditores e os parâmetros do modelo, maximizando o valor da aptidão física.

O resultado final é um conjunto de preditores e parâmetros de modelo que, em média, têm bons resultados de previsão sobre os dados de treinamento disponíveis. O modelo pode encontrar alguns padrões nos dados, aprender com eles e ainda encontrar com sucesso esses mesmos padrões nos novos dados de validação, qualquer que seja a amostra de dados utilizada para treinamento.
Como o modelo é treinado usando apenas 50% dos dados disponíveis cada vez e os parâmetros e preditores são escolhidos com base nisso, é uma condição importante para o modelo.
O modelo para o comitê deve ser treinado nas mesmas condições - seja por amostragem ou pela seleção sucessiva de 50% dos dados para treinamento. Para cada novo modelo também é necessária uma nova amostra (ou conjunto sequencial).

Quanto tempo esse comitê dará boas previsões é desconhecido, mas considerando que os dados de treinamento foram para 5 anos, o comitê obviamente viverá menos que os próximos 5 anos.
E mais um ponto importante - se depois de todo o tempo gasto para a criação do comitê será uma negociação com prejuízo - então o pacote usado para previsões não é adequado para forex. Talvez tenha demasiados graus de liberdade, ou simplesmente não seja adequado. É melhor levar outro pacote. Ou você pode tentar reduzir a porcentagem de dados de treinamento de 50% para ainda menos.

Tudo isto a partir dos conselhos deste fórum, e da experiência.

 
Dr. Trader:

Muito disso você mesmo sabe e já fez, mas eu vou escrever mais completamente para excluir algumas suposições que falamos da mesma maneira, mas fazemos de maneira diferente.

Deve-se ter uma função de aptidão física cuidadosamente aperfeiçoada para estimar os parâmetros do modelo. Se a função avalia parâmetros específicos do modelo e seleciona preditores com uma pontuação alta - então deve haver bons resultados no teste sobre os novos dados.
(Terei em mente para qualquer estimativa que quanto mais alto for, melhor é)

Por exemplo, você tem dados para treinamento, 5 anos. E os parâmetros para gbm são n.árvores, interação.profundidade, retração, n.minobsinnode, distribuição, bolsa.fração.

A função fitness deve repetir pelo menos 50 vezes em um ciclo:
1) dividir os dados em 2 partes, 50%/50%. Deve haver amostragem aleatória com amostra e amostragem sequencial (a peça para treino está algures no meio, e para validação o que a rodeia no início e no fim dos dados em bruto). Incluindo as versões extremas, onde o treinamento na primeira metade da tabela e a validação na última, e vice-versa. Acho importante ter tanto amostras sequenciais como amostras aleatórias para treinamento. Na figura você pode ver mais claramente alguns exemplos de partição aleatória e seqüencial, as linhas verdes são para treinamento, as amarelas são para validação.


2) treinar o modelo na amostra de treinamento (os parâmetros do modelo e os preditores usados são os mesmos durante todo o ciclo, aqueles que você está tentando estimar), então preveja estes mesmos dados com este modelo, e avalie a previsão - precisão, r^2, ou algo mais. Eu, por exemplo, arredondo o resultado da regressão para as classes, e uso a função Kappa de Cohen para estimativa, é de carpete, eu gosto mais do que a precisão da classificação ou precisão da regressão. Mas só funciona para duas classes. Para três classes eu acho difícil sugerir qualquer coisa, é importante que a estimativa leve em conta a precisão de cada classe separadamente, e dê alguma estimativa geral com base nisso.
3) Aplicar um modelo treinado para prever os dados de uma amostra de validação, estimar a previsão com a mesma função.
4) Ambas as estimativas (treinamento e validação) devem estar próximas uma da outra, e o mais alto possível. Eu uso este código para a pontuação final - (min(pontuação1,pontuação2) - (max(pontuação1,pontuação2)-min(pontuação1,pontuação2)) - do valor mínimo é subtraído o delta deles.

No final de cada iteração vamos obter alguma pontuação, e devido à divisão aleatória dos dados pode variar de -1 a 1 (ou em outro intervalo, dependendo da função utilizada). Calculamos o seu valor médio, e devolvemo-lo como resultado da função fitness. Adicionalmente, subtraio do valor de fitness um pequeno número (0,0001) para cada preditor utilizado, para penalizar o modelo por um conjunto demasiado grande de dados necessários.

Aplico isto em conjunto com a genética, que capta os preditores e os parâmetros do modelo, maximizando o valor da aptidão física.

O resultado final é um conjunto de preditores e parâmetros de modelo que, em média, têm bons resultados de previsão sobre os dados de treinamento disponíveis. O modelo pode encontrar alguns padrões nos dados, aprender com eles e ainda encontrar com sucesso esses mesmos padrões nos novos dados de validação, qualquer que seja a amostra de dados utilizada para treinamento.
Como o modelo é treinado usando apenas 50% dos dados disponíveis cada vez e os parâmetros e preditores são escolhidos com base nisso, é uma condição importante para o modelo.
O modelo para o comitê deve ser treinado nas mesmas condições - seja por amostragem ou pela seleção sucessiva de 50% dos dados para treinamento. Para cada novo modelo também é necessária uma nova amostra (ou conjunto sequencial).

Quanto tempo esse comitê dará boas previsões é desconhecido, mas considerando que os dados de treinamento foram para 5 anos, o comitê obviamente viverá menos que os próximos 5 anos.
E mais um ponto importante - se depois de todo o tempo gasto para a criação do comitê será uma negociação com prejuízo - então o pacote usado para previsões não é adequado para forex. Talvez tenha demasiados graus de liberdade, ou simplesmente não seja adequado. É melhor levar outro pacote. Ou você pode tentar diminuir a porcentagem de dados para treinamento de 50% para ainda menos.

Tudo isto a partir dos conselhos deste fórum, e da experiência.

Um excelente resumo.

Parabéns!