Existe um padrão para o caos? Vamos tentar encontrá-lo! Aprendizado de máquina com o exemplo de uma amostra específica. - página 17

 
Valeriy Yastremskiy #:

Além da hora de início de algo e da hora de término (sessões, calendário), nada me vem à mente. O que você quer dizer com isso?

São apenas os possíveis mais óbvios. A volatilidade estava na figura, mas há outros fatores a serem considerados

A grosso modo, você precisa pegar alguma métrica de mercado e sugá-la, eu acho. Não em uma pilha. Todo mundo queria fazer uma pilha, mas acontece que não é assim que funciona.
 
Maxim Dmitrievsky #:
Ora, é simplesmente o mais óbvio possível. A volatilidade estava na figura, há outros fatores a serem considerados

A grosso modo, deveríamos pegar alguma métrica de mercado e sugá-la, eu acho. Não em uma pilha. Todo mundo queria empilhar, mas acontece que não é assim que funciona.
Com métricas de preço discretas, não é fácil fazer tudo, separadamente, e muitas vezes perde-se a conexão e o significado. Largura do canal ou volatilidade e velocidade da mudança de preço. Parece simples, mas não existe um conceito)))) em minha cabeça).
 
Valeriy Yastremskiy #:
Com métricas de preço discretas, nem tudo é simples e, isoladamente, perde-se a conexão e o significado com frequência. Largura do canal ou volatilidade e velocidade da mudança de preço. Parece simples, mas não há nenhum conceito)))) em minha cabeça))

Primeiro, precisamos definir o que queremos do MO. Apenas classificação ou alguma seleção, ou seja, para criar uma ferramenta como um otimizador padrão, em que diferentes funções de destino são definidas.

Em seguida, usá-lo para manipular indicadores (atributos). Muitas vezes de forma burra, por força bruta, até que algo interessante venha à mente (como o Graal).

Quando aprendemos algo, começamos a nos aprofundar.

Acho que penso que estou escrevendo coisas óbvias, mas elas acabam sendo tão óbvias apenas para mim :D

 
Renat Akhtyamov #:

A questão do ramo é certamente interessante....

É por isso que eu estava me perguntando.

Talvez seja possível identificar um padrão.

Sugiro analisar várias barras em uma linha, por exemplo, 3-4.

Em seguida, mova uma barra do início dessa amostra de 3-4 barras e analise novamente.

Como se estivesse sobrepondo uma amostra a outra.

É possível encontrar um padrão

como este:


O que isso vai fazer? As barras sempre serão diferentes. A menos que você as vincule à escala atual. Acho que uma teoria ligeiramente diferente deveria ser a abordagem, por exemplo, cor (polaridade). A estacionariedade ocorre, mas de uma forma ligeiramente diferente e também é facilmente destruída.
 

Nesse meio tempo, obtive este modelo da primeira amostra deste tópico.

Equilíbrio

Infelizmente, ele falhou na amostra de teste - bem, obviamente as amostras são diferentes.

 

No processo de encontrar uma maneira de treinar um modelo, diferentes abordagens foram testadas, mais de 100 mil modelos foram criados e novas abordagens foram inventadas, as quais já haviam demonstrado bom potencial. Foram usados diferentes métodos de transformação de amostras e seleção de preditores. Esses métodos foram combinados uns com os outros.



Métodos de transformação de amostras e seleção de preditores.

Transformação de amostra:

  • 1. sem transformação.
  • 2. seleção de transações por tipo de direção (vetor) - sem seleção, compra, venda - com gravação em amostras separadas.
  • 3. deslocamento da função de destino dependendo do resultado financeiro.
  • 4. método "Drop" - exclusão de linhas da amostra por quantum forte de preditor do tipo FP - 10-30 iterações consecutivas de estimativa de quantum de amostra com alteração da amostra em cada iteração:

( a) Exclusão pelo melhor quantum sem levar em conta o vetor no trem de amostras se ele for maior que uma determinada porcentagem de desvio da média do alvo na amostra; caso contrário, ele é avaliado adicionalmente nas amostras levando em conta o vetor e a melhor variante é selecionada.

b) Igual a"a", mas os segmentos quânticos que mostraram na amostra de teste desvio na direção da probabilidade decrescente de TN não são considerados.

c) O mesmo que em"a", mas a seleção da estimativa é realizada na amostra de"teste".

Seleção do preditor:

  • 1. Método de quantificação :

(a) Seleção de preditor por estatística com seleção de tabelas de quant para cada preditor.

( b) Seleção de quants por estatística com amostragem binária.

(c) Combinação de segmentos de quantis de subamostras com vetores diferentes para formar uma amostra binária agrupada.

d) Seleção de preditores por estatística com seleção de tabelas quânticas com base em quanta binários.

  • 2)Exclusão de preditores com forte correlação.
  • 3) Agrupamento de preditores por campo de resposta semelhante com seleção de preditor dominante por campo - somente após a conversão de preditores em binários.
  • 4. seleção por frequência média de uso do preditor nos modelos CatBoost na amostra de treinamento dividida em 8 partes. Usamos 5 estratégias de aprendizado e mais de 20 métodos de seleção de preditores com base nas estatísticas obtidas.
  • 5. seleção resumida de preditores para cada amostra após a execução do método"Drop".
 

Um novo recorde, e desta vez a amostra de teste também está no lado positivo.

Equilíbrio

Modelo

 

Escreverei como o modelo foi derivado - provavelmente para mim mesmo, já que ninguém está interessado em saber como obter algo de uma amostra complexa.

Portanto, a primeira coisa que fiz aqui foi mudar a meta de acordo com o princípio de que, se o lucro for inferior a 50 pips, o resultado será negativo, ou seja, "0" em vez de "1" antes. Restam menos de 20% de marcas positivas, mas isso permitiu selecionar movimentos de tendência mais pronunciados.

Em seguida, selecionei divisões das tabelas de quant para cada preditor. Usamos cerca de 900 tabelas para amostragem, selecionamos divisões que mudam a probabilidade de 5% e avaliamos a estabilidade da geração de sinais na divisão quântica.

A próxima etapa é combinar os segmentos quânticos selecionados. Usei a abordagem com elemento aleatório e avaliei o resultado pelo critério "quanto mais segmentos, melhor". Não tenho certeza de que o método seja perfeito e talvez ele deva ser aprimorado.

Dessa forma, obtive uma tabela quântica combinada para os preditores. Os preditores sem segmentos bem-sucedidos receberam apenas um separador "0,5" na tabela de quantum.

Treinei 100 modelos com Seed de 8 a 800 em etapas de 8.

Das variantes obtidas, selecionei o melhor modelo e analisei os preditores que foram usados por ele - descobri que havia 77 deles.

Tentei treinar outros 100 modelos, mas somente com esses preditores, também com Seed de 8 a 800 com etapa 8. O resultado dos melhores modelos foi um pouco pior do que o último modelo. E isso me deixou intrigado, é claro.

Decidi que deveria tentar o Seed com uma etapa menor e em um volume maior, porque seus preditores podem obter melhores resultados - isso é comprovado. Treinei 10.000 modelos, com a Seed de 1 a 10.000 com a etapa 1.

O gráfico abaixo mostra o resultado financeiro dos modelos, ordenados do melhor para o pior.

Cerca de 25% dos modelos não eram lucrativos, o que já não é tão ruim, e o lucro médio é de 2.116,65. 38% dos modelos têm lucro maior ou igual a 3.000 pontos.

Não está totalmente claro por que os resultados da amostra de teste não se correlacionam com as amostras do exame - é uma peculiaridade da subamostra ou pode haver outros motivos?

O gráfico abaixo mostra os resultados da amostra de teste - ordenados da mesma forma que antes - pelo resultado financeiro da amostra de exame.

E, para maior clareza, o gráfico de dispersão parece ser aleatório.

Pensei que se tratava dos indicadores - pontos em vez de estatísticas binárias, mas, como você pode ver no gráfico abaixo, o indicador de precisão entre as duas amostras também é independente.


Sem identificar a dependência dos resultados da amostra do exame em relação às amostras de teste e treinamento, é difícil selecionar um modelo - acho que precisamos desenvolver critérios de avaliação adicionais - métricas que o modelo pode.

O novo modelo (observei dois) usou menos de 50 preditores. Acho que se repetirmos o processo, eventualmente haverá preditores suficientes para criar um modelo.

O que fazer então - podemos treinar o modelo na amostra completa usando apenas os preditores selecionados e, em seguida, ver como seu agregado se comportará em novos dados.

Além disso, eu gostaria de tentar encontrar alguns recursos especiais nos preditores selecionados que aumentem a probabilidade de sua seleção sem treinamento - por analogia, como foi feito com a seleção de segmentos quânticos das tabelas.

 
Aleksey Vyazmikin #:

Em seguida, selecionei divisões de tabelas quânticas para cada preditor. Usamos cerca de 900 tabelas para amostragem, selecionamos divisões deslocando a probabilidade de 5% e avaliamos a estabilidade da geração de sinal na divisão quântica.

A próxima etapa é combinar os segmentos quânticos selecionados. Usei a abordagem com elemento aleatório e avaliei o resultado pelo critério "quanto mais segmentos, melhor". Não tenho certeza de que o método seja perfeito e talvez ele deva ser aprimorado.

Basicamente, ele está selecionando folhas com probabilidade >55%?

Aleksey Vyazmikin #:

Tentei treinar mais 100 modelos, mas somente com esses preditores, também com Seed de 8 a 800 com a etapa 8. O resultado dos melhores modelos foi um pouco pior do que o último modelo. E isso me deixou intrigado, é claro.

Aparentemente, o aleatório do Seed-a não coincidiu completamente com a variante do aleatório da melhor amostra. Daí os resultados diferentes/piores.

Aleksey Vyazmikin #:

Não está claro por que os resultados na amostra de teste não se correlacionam com as amostras de exame - é uma peculiaridade da subamostra ou pode haver outros motivos?

O gráfico abaixo mostra os resultados da amostra de teste - ordenados da mesma forma que antes - pelo resultado financeiro da amostra de exame.

É como um treinamento normal que é retreinado/ajustado ao treinamento. Nesse caso, você fez um ajuste para o exame. Qualquer ajuste, tanto para o teste quanto para o exame, como podemos ver no seu teste, leva a um resultado aleatório.

Não acho que você deva fazer os melhores treinamentos ou exames. Você precisa de algo estável, embora com um resultado muito pior do que o melhor trem ou exame.

Quando eu estava trabalhando com o Darch, havia uma seleção em ambas as amostras err = err_ oob * k+ err_trn * (1 - k); onde k=0,62 (recomendado, mas pode ser alterado)
Ou seja, err = err_ oob * 0,62+ err_trn * 0,38;
Mas esse é um parâmetro desnecessário para a seleção com o aumento do tempo de cálculo.

De acordo com meus experimentos com amostragem no H1, houve algo estável, mas com poucos ganhos. 10000 negociações, mas apenas 0,00005 por negociação. Isso também é desinteressante, pois os spreads/slippages etc. consumirão esses 5 pontos em negociações regulares.

Você tem 400 negociações, mas 40 pontos no exame. E no teste, como eu - perto de 0 (aleatório).

Há muitas abordagens, mas ninguém encontrou uma que funcione.
 
elibrarius #:

Essa é essencialmente uma seleção de folhas com probabilidade >55%?

Não, é, digamos, o intervalo numérico de um preditor que é selecionado. Os 5% são relativos ao valor da porcentagem "1" no trem de amostras.

elibrarius #:

Aparentemente, o randômico do Seed-a não coincidiu completamente com o randômico variante da melhor amostra. Daí os resultados diferentes/piores.

O aleatório é fixo :) Parece que essa semente é calculada de uma maneira complicada, ou seja, todos os preditores permitidos para a construção do modelo provavelmente estão envolvidos e a alteração do número deles também altera o resultado da seleção.

elibrarius #:

É como no aprendizado normal que é retreinado/ajustado à linha. Nesse caso, você fez um ajuste para o exame. Qualquer ajuste, tanto para o teste quanto para o exame, como podemos ver em seu teste, leva a um resultado aleatório.

Por que isso é uma adaptação, ou melhor, o que você vê como uma adaptação? Eu tendo a pensar que a amostra do teste difere do exame mais do que o exame do treinamento, ou seja, há diferentes distribuições de probabilidade dos preditores. E isso pode ser tratado selecionando os preditores mais estáveis, o que dá resultados aceitáveis em todas as amostras, ou alterando a distribuição de probabilidade por um recurso externo (ou seja, outro preditor). Um efeito semelhante poderia ser obtido com o uso de treinamento recorrente em folhas selecionadas de árvores diferentes ou até mesmo em modelos inteiros. Talvez os neurônios recorrentes possam fazer isso - não tenho conhecimento sobre eles.

Até o momento, trato esse método como uma forma de selecionar preditores sobre os quais construir o modelo combinado e como referências para identificar outros preditores eficazes antes do treinamento real.

elibrarius #:

Não acho que você deva fazer os melhores treinamentos ou exames. Você precisa de algo estável, embora com um resultado muito pior do que o melhor treinamento ou exame.

Quando eu estava trabalhando com o Darch, havia uma seleção em ambas as amostras err = err_ oob * k+ err_trn * (1 - k); onde k=0,62 (recomendado, mas você pode alterá-lo)
Ou seja, err = err_ oob * 0,62+ err_trn * 0,38;
Mas é um parâmetro desnecessário para a seleção com o aumento do tempo de cálculo.

Qual é a métrica de err_?

elibrarius #:

Você tem 400 negociações, mas obteve 40 pontos no exame. Bem, no teste, como eu - perto de 0 (aleatório).

Há muitas abordagens, mas ninguém encontrou uma produtiva ainda.

O eixo X é o valor da matriz de expectativa na amostra de teste, ou seja, em geral, sim, mas há alguns casos de sucesso.


Razão: