Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 1277
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Eu entendi este método de forma diferente.
De qualquer forma, os resultados do artigo são impressionantes. É necessário experimentá-lo na prática.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.
Mistura-o, que diferença faz?
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.
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":
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.
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).
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.
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.
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.
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 99k1Alexei, 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.
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.
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.
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.
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.
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.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.
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.
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!