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

 
elibrarius:

Eu entendi este método de forma diferente.
Para o preditor em estudo, você não quer alimentar valores aleatórios com uma distribuição normal, mas simplesmente embaralhar as linhas naquela coluna.

De qualquer forma, os resultados do artigo são impressionantes. É necessário experimentá-lo na prática.

Mistura-o, que diferença faz?

 
elibrarius:
Alglib passa por todos os restantes 50% preditores, divide cada um em 4 partes por quartis, e escolhe a divisão com o melhor erro entre todas as escolhas.

As divisões aleatórias não são, em princípio, difíceis de arranjar.
Não tenho visto árvores individuais com bons resultados nos testes (45-50%), mas uma floresta delas é mais interessante).


Entendo, foi o que eu pensei, então há uma boa chance de que a raiz se rache na maioria das árvores seja a mesma, o que por si só descarta outras opções.

Presumo que quaisquer folhas são apenas uma tentativa de descrever um padrão, e não podemos saber de antemão se a descrição será correcta ou se é uma coincidência aleatória na amostra. É por isso que estou recrutando folhas diferentes e únicas (não repetindo) e verificando-as individualmente, em vez de toda a árvore.

Alglib tem uma ramificação excessiva, por isso não está a aprender, mas a lembrar-se. Eu acho que andaime é uma boa ideia, mas funcionará correctamente se cada árvore contiver regras (folhas) únicas e o número de rachaduras não for muito grande - 4-10.


elibrarius:
Em termos de importância dos preditores analisados:
Os pacotes xgboost, lightGBM tinham métodos incorporados para estimar a importância dos recursos para "modelos de madeira":

  1. Ganhe
    Esta medida mostra a contribuição relativa de cada característica para o modelo. Para calcular isso, vamos a cada nó de árvore, ver qual característica leva à divisão do nó e quanto a incerteza do modelo é reduzida de acordo com a métrica (impureza de Gini, ganho de informação).
    Para cada característica, a sua contribuição é somada sobre todas as árvores.
  2. Capa
    Mostra o número de observações para cada característica. Por exemplo, você tem 4 características, 3 árvores. Suponha que a ficha 1 tem 10, 5 e 2 observações nos nós de árvore 1, 2 e 3 respectivamente. Então a importância para esta ficha seria de 17 (10 + 5 + 2).
  3. Frequência
    Mostra com que frequência uma determinada característica é encontrada em nós de árvore, ou seja, o número total de nós de árvore divididos para cada característica em cada árvore é contado.
Eles realmente não dividem a importância corretamente.
Eu tenho uma floresta treinada para 5 bares dá melhores resultados no teste do que com 100. Mas quando treinados por 100 os primeiros 5 não são marcados como importantes, mas alguns distantes.
Quando se treina a 100, o erro de cada árvore e floresta é menor - obviamente devido ao sobretreinamento e dando importância a 30-100 barras. Mas obviamente eles não são importantes nem pela lógica convencional, mas pelo fato de que a floresta a 5 bares dá melhores resultados.

Sim, com uma estimativa importante, as abordagens padrão não são muito eficazes. Eu quero tentar algum tipo de pontuação de singularidade, isto é, quando já houver folhas prontas, e nós tentamos mudar cada preditor por sua vez para qualquer outro (levando em conta a divisão da grade), coletar estatísticas, e comparar a melhor variante de substituição com a variante padrão, considerar a precisão ou outra pontuação (conceito é importante), e assim coletar pontuações para cada preditor para todo o modelo.

elibrarius:
Após uma rápida olhada no código, vi uma seleção genética de características para construir uma árvore a partir do pacote rpart. Ou seja, a cada árvore foi oferecido um conjunto diferente de características para a aprendizagem. Devido à genética, tal conjunto de características é mais rápido do que a força bruta completa.
Mas a árvore não é mágica, é a oferecida pelo rpart. Acho que é normal lá.

A árvore em si é completamente padrão, a idéia original do roteiro é encontrar os preditores mais significativos, e a genética parece contribuir para isso.

Eu não entendo como você pode mudar a entropia para qualquer outro indicador (precisão ou completude ou o que quer que seja) para criar uma nova geração.

 

Eu estava assistindo uma palestra sobre EM não faz muito tempo, e havia uma situação em que um modelo opera dentro de uma faixa estreita de probabilidade, e para impulsionar modelos isso é considerado quase a norma, pois o modelo não está essencialmente produzindo probabilidade pura, e por causa disso existe um conceito de calibrar tal modelo para interpretações corretas das previsões. E eu tive uma situação assim no ano passado, quando os modelos estavam dando seus resultados na faixa de 40 a 60, e eu tive a certeza de que era uma variante muito ruim... Eu tinha as minhas dúvidas porque os modelos eram estáveis e davam bons resultados financeiros.

 
Aleksey Vyazmikin:

Eu estava assistindo a uma palestra sobre EM não há muito tempo, e havia uma situação em que um modelo opera dentro de uma faixa estreita de probabilidade, mas para impulsionar modelos isso é considerado quase a norma, pois o modelo não está essencialmente produzindo probabilidade pura, e em conexão com este fato há um conceito de calibrar tal modelo para previsões corretas. E eu tive uma situação assim no ano passado, quando os modelos estavam dando seus resultados na faixa de 40 a 60 e eu tive a certeza de que era uma variante muito ruim... Eu tinha minhas dúvidas, porque os modelos eram estáveis e davam bons resultados financeiros.

Alexei, digamos que a taxa de erro é de 99% - isso é bom ou mau?

Eu entendo que o 1% restante é a probabilidade de sucesso.

Não muito, mas é legal, porque já sabemos onde está o erro e como evitá-lo.

Posto isto, a proporção é de 99k1
 
Renat Akhtyamov:

Alexei, digamos que a probabilidade de erro é de 99% - isso é bom ou mau?

Presumo que o restante um por cento é a probabilidade de sucesso.

É pequeno, mas fixe, porque já sabemos onde está o erro e como evitá-lo.

Uma probabilidade de erro tão elevada diz-nos que não sabemos muito sobre o que se está a passar.

É suficientemente preciso e isso é bom, mas está muito longe do sucesso - 1% pode ser apenas um acaso.

E isso se estivermos a falar especificamente de probabilidade.

 
Aleksey Vyazmikin:

Entendo, foi o que eu pensei, então há uma boa chance de que a raiz se rache na maioria das árvores seja a mesma, o que por si só descarta as outras opções.

Cerca de 50%. Mas este parâmetro pode ser alterado, em qualquer outro fiion de chamada florestal.

Aleksey Vyazmikin:
Quero tentar como uma avaliação de algum tipo de indicador de singularidade, ou seja, quando já existem folhas prontas e tentamos mudar cada preditor um por um para qualquer outro (levando em conta a divisão da grade), coletar estatísticas e comparar a melhor variante de substituição com a variante padrão, considerar a precisão ou outro indicador (o conceito é importante), e assim coletamos pontos para cada preditor para todo o modelo.

Algo parecido com a permutação que Maxim encontrou. Mas faz sentido substituir um preditor com variação de 0,1 a 0,2 por um preditor com variação de 800 a 300000 em vez de um preditor com variação de 0,1 a 0,2? Não!
Mas baralhar as suas linhas faz. O intervalo de números e distribuição de probabilidade permanecerá, mas os valores em cada exemplo se tornarão aleatórios.

Aleksey Vyazmikin:

O que eu não entendo é como você pode transformar a entropia em algum outro valor (precisão ou completude ou o que quer que seja) para criar uma nova geração.

Alguns pacotes R permitem o uso da função de erro deles. Xgboost pode, mas aí você tem que encontrar uma fórmula para a derivada do seu f-fi e alimentá-lo junto com ela. Para mim, a derivação é um problema. Veja a descrição do pacote rpart, talvez você possa usar suas funções lá também, ou mesmo sem derivados.

 
elibrarius:

Algo parecido com a permutação que Maxim encontrou. Mas há algum sentido em substituir um preditor com uma mudança de 0,1 para 0,2 por um preditor com uma mudança de 800 para 300000? Não!
Mas baralhar as suas filas faz. O intervalo de números e distribuição de probabilidade permanecerá, mas os valores em cada exemplo se tornarão aleatórios.

Eu escrevi,"digamosn. espalhar". Encontre a média e a variação e vá em frente. É melhor aleatorizar por ruídos do que apenas baralhar.

Há aqui muitos tolos que gostam de distorcer as palavras e de as filmar, tentando provar o seu valor mais tarde.

 
Maxim Dmitrievsky:

Eu escrevi,"vamos assumirum n. distribuição". Naturalmente faz sentido com traços normalizados. Encontre a média e a variância e vá em frente.

Há aqui muitos tolos que gostam de distorcer as palavras e de as filmar, tentando afirmar-se com elas mais tarde.
A normalização ajudará com o alcance - é isso mesmo.
Mas a distribuição de probabilidade de uma distribuição normal estará no meio (cerca de 0,5), enquanto o preditor real pode ser deslocado para o lado, por exemplo, cerca de 0,8. Ou algum tipo de sela por volta de 0,2 e 0,8, ou outra coisa qualquer...
A agitação irá preservar a distribuição também.
 
elibrarius:
A normalização ajudará com o alcance - isso é um sim.
Mas a distribuição de probabilidade de uma distribuição normal estará no meio (cerca de 0,5), e o preditor real pode ser deslocado para o lado, por exemplo, cerca de 0,8. Ou algum tipo de sela por volta de 0,2 e 0,8, ou outra coisa qualquer...
A agitação irá preservar a distribuição também.

Pegue a média e a variação, rs, e não se preocupe com isso.

 
Maxim Dmitrievsky:

Pegue a média e a variância, rs, e não se preocupe com isso.

é mais fácil de misturar)

E pelo link para o método interessante (permutação) - obrigado!

Razão: