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

 
Andrey Dik:

Eu descrevi anteriormente a minha abordagem para dividir em 3 classes (vender, cercar, comprar). A classe "cerca" inclui todos os casos que se contradizem ou não podem ser divididos em classes de compra e venda. Acontece que apenas 3-10% caem nas aulas de compra e venda. A beleza desta abordagem é que trabalhando com dados desconhecidos (reais) com o tempo a rede pára de reconhecer situações de mercado e começa a atribuí-las cada vez mais à "cerca", ou seja, gradualmente pára de negociar. Isto é cem vezes melhor do que começar a errar no lado da entrada mais e mais ao longo do tempo.

Mas tudo em vão, ninguém quer, ninguém ouve.

Qual é a cerca? Quando a rede para comprar diz comprar e a rede para vender diz vender?

É o mesmo Reshetov ternary.

 
Andrey Dik:

Eu descrevi anteriormente a minha abordagem para dividir em 3 classes (vender, cercar, comprar).

Isto já está implementado no jPrediction. É por isso que se chama classificador ternário, em vez de classificador binário.

Implementado de uma forma muito trivial:

  1. Treinamento: treinar dois classificadores binários em duas partes não sobrepostas da amostra.
  2. Crossvalidation: teste de classificadores binários nas partes da amostra em que não foram treinados.
  3. Classificação: se as leituras de ambos os classificadores binários coincidirem, então tomamos como resultado o valor de saída de qualquer um deles. Se as leituras dos classificadores binários forem diferentes, a saída é: "sente-se na cerca e fume bambu".

Anteriormente, era para usar o método "bicicleta":

  1. Treinar um classificador binário em uma metade da amostra
  2. Teste-o na segunda metade da amostra
  3. Usando a análise ROC, aumentar um dos limiares para aumentar a sensibilidade e diminuir o segundo limiar para aumentar a especificidade.
  4. Classificação: Se o padrão a ser classificado estiver acima do limiar de sensibilidade - comprar. Se o padrão estiver abaixo do limiar de especificidade - vender. Se o padrão estiver entre ambos os limiares - sentar-se na cerca e fumar bambu.

No entanto, a "roda" acima produz mais sinais falsos em comparação com a classificação por dois binários devido à falta de validação cruzada, mas é mais fácil de implementar.

O binário ternário mais burro e fútil, embora o mais primitivo na implementação: é uma ANN com três outputs. Se cada uma dessas saídas tem seu próprio limiar de classificação, elas produzem não três, mas oito estados potencialmente possíveis, dos quais apenas três são inequívocos (um valor acima do limiar em apenas uma das três saídas), e cinco não são claros como interpretar (valores acima do limiar em mais de uma das saídas, ou abaixo do limiar em todas as três saídas).

 
mytarmailS:

Qual é a cerca? Quando a rede para comprar diz comprar e a rede para sentar diz sentar?

Este é o mesmo Reshetov ternary

Não. Eu não vou dar uma ligação, procure.
 
Yury Reshetov:

Isto já está implementado no jPrediction. É por isso que se chama classificador ternário, em vez de classificador binário.

Implementado de uma forma muito trivial:

  1. Treinamento: treinamos dois classificadores binários em duas partes não sobrepostas da amostra.
  2. Crossvalidation: teste de classificadores binários nas partes da amostra em que não foram treinados.
  3. Classificação: se as leituras de ambos os classificadores binários coincidirem, então tomamos como resultado o valor de saída de qualquer um deles. Se as leituras dos classificadores binários forem diferentes, a saída é: "sente-se na cerca e fume bambu".

Anteriormente, era para usar o método "bicicleta":

  1. Treinar um classificador binário em uma metade da amostra
  2. Teste-o na segunda metade da amostra
  3. Usando a análise ROC, aumentar um dos limiares para aumentar a sensibilidade e diminuir o segundo limiar para aumentar a especificidade.
  4. Classificação: Se o padrão a ser classificado estiver acima do limiar de sensibilidade - comprar. Se o padrão estiver abaixo do limiar de especificidade - vender. Se o padrão estiver entre os limites - sente-se na cerca e fume bambu.

No entanto, a "bicicleta" acima mencionada produz mais sinais falsos em comparação com a classificação por dois binários, mas é mais fácil de implementar.

O binário ternário mais burro e fútil e o mais primitivo em implementação: é uma ANN com três outputs. Se cada uma dessas saídas tem seu próprio limiar de classificação, então elas têm não três, mas oito estados potenciais, dos quais apenas três são inequívocos (um valor acima do limiar em apenas uma das três saídas), e cinco não são claros como interpretar (valores acima do limiar em mais de uma das saídas, ou abaixo do limiar em todas as três saídas).

Há outra maneira que você não considerou. A saída é uma do neurônio, mas a área de valores é dividida condicionalmente em três áreas. Fi-lo como [-1,5...1,5]. A área do valor médio [-1.0...1.0] é a "cerca". Acontece que quanto mais familiarizada a situação é para a rede neural, mais excitada fica e os valores se inclinam mais para os valores extremos. Valores fora da faixa [-1.0....1.0] são sinais apropriados para Compra e Venda.

Mas as pessoas ainda estão a lutar com a classificação binária.

 
Andrey Dik:

Há outra maneira, que você não considerou. A saída é a mesma do neurônio, mas a área de valores é dividida condicionalmente em três áreas. Fi-lo como [-1,5...1,5]. A área do valor central [-1.0...1.0] é a "cerca".

Eu não o ignorei, tu não o leste com atenção. Veja o método "bicicleta" de dois braços com um n binário. 3 e par. 4, e passo a citar:

Yury Reshetov:
...

Antes disso, o método "bicicleta" era para ser aplicado:

  1. Treinar um classificador binário em uma metade da amostra
  2. Teste-o na segunda metade da amostra.
  3. Usando a análise ROC, aumentar um dos limiares para aumentar a sensibilidade e diminuir o segundo limiar para aumentar a especificidade.
  4. Classificação: Se o padrão a ser classificado estiver acima do limiar de sensibilidade - comprar. Se o padrão estiver abaixo do limiar de especificidade - vender. Se o padrão estiver entre os limites - sente-se na cerca e fume bambu.
...
 
Yury Reshetov:

O problema com a sua abordagem é que inicialmente (antes da filtragem ternária dos sinais de compra/venda) os seus MOs são treinados em dados que podem explicar mais de 5% de todos os dados, está a ver?

Andrey Dik:

Acho que é a mesma história aqui...

==================================

A minha maneira não usa MO de todo na tomada de decisões e não tenta explicar toda a amostra, mas apenas o que considera uma forte regularidade estatística, e se tais dados são apenas 0,01% de todos os dados, então apenas eles ficarão...

 
Andrey Dik:

...

Mas as pessoas ainda estão a mexer com a classificação binária.

Porque a maioria das pessoas acha mais fácil pegar um pacote pronto com classificação binária já implementada do que experimentar com um ternário. Nem todos gostam de "reinventar a roda", porque nem todas as ideias dão bons resultados. Algumas pessoas acham mais fácil andar de bicicleta, mesmo que ela tenha rodas quadradas.

Se for utilizada a classificação ternária, a maioria das fontes na aprendizagem de máquinas sugere o método mais pouco promissor: treinar uma ANN com três saídas, que é fácil de implementar mas completamente inadequada na prática.

 
Yury Reshetov:

Porque a maioria das pessoas acha mais fácil obter um pacote pronto com classificação binária já implementada do que experimentar com o ternário. Nem todos gostam de reinventar "bicicletas", porque nem todas as ideias dão bons resultados. Algumas pessoas acham mais fácil andar numa bicicleta já existente, mesmo que ela tenha rodas quadradas.

Se for utilizada a classificação ternária, a maioria das fontes na aprendizagem de máquinas sugere o método mais pouco promissor: treinar uma ANN com três saídas, que é fácil de implementar mas completamente inadequada na prática.

Bem, sim, eu concordo, é.

Mas uma coisa é certa (perdoe a taftalogia) - um binário é a pior coisa que pode ser usada para o mercado.

 
mytarmailS:

O problema com a sua abordagem é que inicialmente (antes da filtragem ternária dos sinais de compra/venda) os seus MOs são treinados em dados que podem explicar talvez 5% de todos os dados, está a ver? antes da filtragem ternária os MOs já são treinados em ruído e as suas saídas são correspondentemente

Não digas disparates. No jPrediction, um algoritmo é implementado para reduzir as entradas para que não se obtenha um modelo na saída que tenha sido treinado em preditores ruidosos ou sem importância. Ou seja, a escolha é feita a partir de uma variedade de modelos com diferentes combinações de preditores, dos quais resta apenas aquele com a melhor generalização.
 
mytarmailS:

Vê, tentamos dividir toda a amostra em compra e venda e queremos prever cada movimento no mercado, mas os nossos preditores são tão merdosos que só conseguem prever objectivamente~3% de todos os movimentos, por isso o que precisamos? precisamos de tentar tirar pelo menos esses3% e deitar fora o resto das coisas inseparáveis porque é o mesmo lixo na entrada/ruído que deve ser peneirado/razo para a requalificação, etc... Chama-lhe o que quiseres, está tudo bem...

Posso ver que compreende a causa dos problemas. Mas estou a tentar resolver isto de forma diferente do que sugere.

Eu tendo a seguir as palavras de SanSanych - você precisa recrutar preditores e alvos que não sejam lixo. Com bons preditores você terá um gráfico de exemplos de treinamento, não como eu fiz no meu último post, mas como Vizard_. É muito mais difícil do que eliminar exemplos de treinamento conflitantes, mas acho que uma seleção adequada de preditores será mais confiável no final.

Não posso dizer nada sobre o teu método, não sou bom nisso, mas espero que o consigas fazer.