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

 
Tenho uma pergunta para o Yuri. Ao descobrir os resultados de um modelo trinário, quando eu digito os dados manualmente, os resultados às vezes mostram um símbolo de traço. Isto é, eu tenho 0, 1 e um traço. Então, o que significa um traço?
 

Eu tentei classificar o ziguezague, sim, mas não o ponto pivô, mas toda a tendência que o ziguezague mostra, o resultado é 0 se a tendência zz atual estiver caindo, e 1 se a tendência estiver subindo. As tendências zz parecem bastante desequilibradas, mas não foi por isso que eu desisti delas. O que eu não gosto é que o modelo precise de uma precisão muito alta. Se o modelo comete um ou dois erros na tendência e inverte uma troca no momento errado, mesmo por apenas uma barra, geralmente leva a perdas adicionais mais o pagamento de uma comissão cada vez com o spread. O modelo só será rentável se abrir o comércio, esperar pelo fim da tendência e se inverter. Sem um único erro dentro de cada tendência.

Se prevê a próxima barra e não a tendência, então cada erro resultará em menos dinheiro perdido.


Eu não faço nenhum balanço, quando se prevê a próxima barra a dispersão de classes é mínima como está, não acho que +-10% de alguma classe irá influenciar muito os resultados.

Aqui no artigo eles escrevem que o balanceamento pode ser substituído pela estimativa correta do modelo (F-measure ou R-Precision). Este é o análogo russo do artigo que SanSanych ligou anteriormente.

http://bazhenov.me/blog/2012/07/21/classification-performance-evaluation.html

...

No entanto, esta métrica [fidelidade] tem uma particularidade que precisa ser levada em conta. Dá a todos os documentos o mesmo peso que pode estar incorreto se a distribuição dos documentos no conjunto de treinamento for deslocada para uma ou mais classes. Neste caso, o classificador tem mais informações sobre estas classes e, consequentemente, dentro destas classes, tomará decisões mais adequadas. Na prática, isto leva a uma situação em que você tem, digamos, 80% de exatidão, mas dentro de uma determinada classe, o classificador funciona fora de qualquer proporção, não definindo corretamente nem mesmo um terço dos documentos.

Uma forma de sair desta situação é formar o classificador num corpo de documentos especialmente treinado e equilibrado. A desvantagem desta solução é que você tira informações do classificador sobre a freqüência relativa dos documentos. Esta informação, sendo todas as outras coisas iguais, pode vir a ser muito útil para tomar a decisão certa.

Outra saída é mudar a abordagem à avaliação formal da qualidade.

Precisão e completude

Precisão e recall são métricas que são utilizadas na avaliação da maioria dos algoritmos de extração de informações. Às vezes são usados por eles mesmos, às vezes como base para métricas derivadas como F-measure ou R-Precision. A essência da precisão e da completude é muito simples.

A precisão de um sistema dentro de uma classe é a proporção de documentos que realmente pertencem a essa classe, em relação a todos os documentos que o sistema atribuiu a essa classe. Completude é a proporção de documentos que pertencem à classe encontrada pelo classificador em relação a todos os documentos desta classe na amostra de teste.

....

Medida F

É evidente que quanto maior for a precisão e a completude, melhor. Mas na vida real a máxima precisão e completude não são alcançáveis ao mesmo tempo e temos de procurar um equilíbrio. É por isso que gostaríamos de ter algum tipo de métrica que combine informação sobre a precisão e exaustividade do nosso algoritmo. Neste caso, será mais fácil para nós decidir que implementação lançar na produção (quem tem mais é melhor). Esta é exactamente uma métrica - F-measure1.

F-measure éum meio harmónicoentre precisão e completude. Tende a zerar se a precisão ou completude tende a zerar.


etc. Há vários gráficos bonitos no artigo.

 
Dr. Trader:

Eu tentei classificar o ziguezague, sim, mas não o ponto pivô, mas toda a tendência que o ziguezague mostra, o resultado é 0 se a tendência zz atual estiver caindo, e 1 se a tendência estiver subindo. As tendências zz parecem bastante desequilibradas, mas não foi por isso que eu desisti delas. O que eu não gosto é que o modelo precise de uma precisão muito alta. Se o modelo comete um ou dois erros na tendência e inverte uma troca no momento errado, mesmo por apenas uma barra, geralmente leva a perdas adicionais mais o pagamento de uma comissão sobre o spread cada vez. O modelo só será rentável se abrir o comércio, esperar pelo fim da tendência e se inverter. Sem um único erro dentro de cada tendência.

Se prevê a próxima barra e não a tendência, então cada erro resultará em menos dinheiro perdido.


Eu não faço balanceamento, para a próxima previsão de barra a distribuição de classes é mínima e não acho que +-10% de uma classe influenciará muito o resultado.

Aqui no artigo eles escrevem que o balanceamento pode ser substituído pela estimativa correta do modelo (F-measure ou R-Precision). Este é o análogo russo do artigo que SanSanych ligou anteriormente.

http://bazhenov.me/blog/2012/07/21/classification-performance-evaluation.html

etc., há vários gráficos bonitos no artigo

Um pequeno conselho. Qualquer sistema leva a um único fenómeno. É um sinal!!! A totalidade de todas as condições leva a um facto consumado, que é o ponto de decisão. Portanto, qualquer sistema, por mais complexo que seja, leva a sinais para comprar ou vender. Portanto, é recomendável classificá-los. Travessia das carroças. A travessia ocorreu, há um sinal de compra, há uma travessia no sentido contrário, há um sinal de venda, e não há um terceiro. Assim, para uma classificação correcta, devemos fazê-lo separadamente para vender e separadamente para comprar. Assim, podemos duplicar um intervalo de treino e manter o nível de generalização. No início os meus modelos raramente subiam acima dos 40-50% de generalização, mas depois eu entendi o que fazer com os dados. Qual é o objectivo do modelo obtido após a classificação. Nos mesmos dados eu agora recebo modelos não inferiores a 70% em média 80-90% e no futuro, em dados desconhecidos os erros são de cerca de 1-2 de 10-12. Isto é o suficiente para ganhar dinheiro. Mas eu tomo 30% do intervalo de treino como intervalo de confiança. Ou seja, eu pego 100 sinais de compra e 100 sinais de venda e dentro de 30 ou 50 sinais você pode trabalhar sem re-treinar o modelo. Nas primeiras versões do preditor, 6 entradas foram optimizadas em cerca de 40 minutos, o que não foi muito conveniente, e agora faz 9 entradas em 10 minutos. E isto só tem aumentado a qualidade do modelo. Agora o problema é onde encontrar tantas entradas. Mas nós não estamos no escuro. Ainda temos algo a oferecer ao prognosticador :-)
 
Mihail Marchukajtes:
Tenho uma pergunta para o Yuri. Ao descobrir os resultados de um modelo trinário, quando eu digito os dados manualmente, os resultados às vezes mostram um símbolo de traço. Isto é, eu tenho 0, 1 e um traço. É isso que significa um traço?

O mesmo que a famosa frase socrática "Eu sei o que não sei". O classificador ternário, respondendo com um menos, diz que no conjunto de treinamento não houve exemplos similares ao padrão a ser classificado e, portanto, ele não pode atribuí-lo sem ambigüidade a nenhuma classe, ou seja, ele não pode dar uma resposta afirmativa ao padrão apresentado. Ele honestamente admite que lhe falta competência em algumas áreas do conhecimento, em vez de tentar responder positivamente com um rosto presunçoso a perguntas para as quais não sabe as respostas.

 
Yury Reshetov:

É o mesmo que a famosa frase socrática "Eu sei o que não sei". Um classificador ternário respondendo com um menos nos diz que não houve exemplos na amostra de treinamento similares ao padrão a ser classificado, portanto não pode classificá-lo sem ambigüidade, ou seja, não pode dar uma resposta afirmativa ao padrão apresentado.

Hm. Diga-me, se num futuro previsível existe a possibilidade de descarregar um modelo ternário para um ficheiro, para que possa ser utilizado mais tarde no MKUL? Assim como binário, mas quando se entra à mão, há uma chance de cometer um erro e tudo isso.....
 
Mihail Marchukajtes:
Hm. Bem, eu vejo... Diga-me, existe a possibilidade num futuro previsível de carregar um modelo ternário para um ficheiro, para que possa utilizá-lo no MKUL mais tarde? Assim como o binário, e quando você entra nele à mão, há uma chance de cometer um erro e tudo isso.....
Estou a trabalhar nisso agora. Isto é, o gerador de código ainda não está terminado e neste momento fornece fontes de apenas um dos classificadores binários e não de todo o classificador ternário.
 
Yury Reshetov:

A mesma coisa que a famosa frase de Sócrates "Eu sei o que não sei" significa. O classificador ternário, respondendo com um menos, diz que na amostra de treinamento não houve exemplos similares ao padrão a ser classificado, portanto ele não pode atribuí-lo sem ambigüidade a nenhuma classe, ou seja, ele não pode dar uma resposta afirmativa ao padrão apresentado. Admita honestamente, na ausência da sua própria competência em algumas áreas do conhecimento, em vez de tentar responder positivamente com um rosto presunçoso a perguntas sobre as quais não sabe as respostas.

A julgar pela foto anexa, percebi bem o objectivo? À esquerda é um classificador binário; à direita é um classificador ternário (a zona branca é "menos")

Se sim, acho que a ideia é boa, por alguma razão que nunca a vi antes, pode aconselhar alguns artigos sobre o classificador ternário?



Acabei isto mais tarde:

Intuitivamente, esta tarefa é bastante simples. Suponha que existem 2 preditores (X e Y), isto significa que precisamos trabalhar no espaço bidimensional (como nas figuras acima). Em seguida, precisamos de fechar esse espaço bidimensional que inclui todas as classes "comprar" (preenchimento azul). Em seguida, anexe um segundo espaço que inclua todas as classes "vender" (vermelho). Os dois espaços vedados não devem sobrepor-se. Para classificar novos dados, basta olhar em que espaço vedado cai o ponto desejado. Se não chegar a lugar nenhum (branco na foto certa) - então é claro, que o modelo não pode dizer nada sobre esse ponto e a troca não deve ser executada no momento.

Com 3 preditores haverá um espaço tridimensional onde as classes serão encerradas por algumas formas volumétricas tridimensionais. Etc, quanto mais preditores, mais multidimensionais são as formas.

Esses modelos existem? Normalmente os classificadores encontram algum tipo de hiperplano no espaço que separa as classes. Mas aqui precisamos de duas hiperfigurações fechadas.

 

Mihail Marchukajtes:

...

Nas primeiras versões do preditor, 6 entradas foram otimizadas em cerca de 40 minutos, o que foi extremamente inconveniente, mas agora 9 entradas o fazem em 10 minutos. E isso só aumentou a qualidade do modelo. Agora o problema é onde encontrar tantas entradas. Mas nós não estamos no escuro. Ainda temos algo a oferecer ao prognosticador :-)
Sim, eu também estou a tentar classificar estritamente a compra/venda. Mas como você conseguiu os 6 inputs originais, você os tirou de alguma estratégia conhecida? Uma das coisas mais importantes é a entrada adequada. Pelo contrário, eu tenho milhares de entradas (preços e indicadores acima de cem barras) e preciso peneirá-los deixando uma dúzia, porque em tantas entradas qualquer modelo sobre-treino.
 
Dr. Trader:

A julgar pela foto anexa, percebi bem o objectivo?


Classificador binário à esquerda; classificador ternário à direita (a área branca é "menos")

Se for primitivo para manequins, servirá como auxílio visual.

Dr. Trader:
Se sim, acho que é uma boa ideia, por alguma razão que ainda não a encontrei, pode aconselhar alguns artigos sobre o classificador ternário?

Se o google não for banido, você pode pesquisar pela frase "aprendizagem da máquina classificadora ternária".

 
Yury Reshetov:

Se você não está banido do google, você pode procurar por "aprendizagem de máquinas de classificação ternária".

Em outras palavras, "procure no primeiro link do google que leva ao meu site" :)

Encontrei, você tem um comitê de dois modelos, não é o que eu entendi e escrevi acima.