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

 
Maxim Dmitrievsky #:

Como uma folha de madeira às vezes funciona melhor do que a madeira?

tc pronto no mínimo

Com relação aos novos dados, sim. É que um padrão consistente foi atingido, e o restante das folhas da árvore é apenas ruído do vento. O ruído está lá por forçar a árvore a dar respostas a todas as perguntas, ou seja, a classificar a amostra completamente.

 
Você precisa dormir à noite.
 
Aleksey Vyazmikin #:

Nos novos dados, sim. É que um padrão estável foi atingido, e o restante da árvore deixa apenas o ruído do vento. O ruído está lá por forçar a árvore a dar respostas a todas as perguntas, ou seja, a classificar toda a amostra.

Eu faço isso (seleção de folhas) automaticamente, alterando o nível de ativação das folhas. Classicamente, 0,5 é usado para classificação. Todas as folhas com probabilidade maior que 0,5 são ativadas, as demais ficam em silêncio (o que equivale à sua remoção da árvore). Esse método foi descrito em mais de um artigo neste site e no fórum.

Além disso, você pode definir o nível como 0,9 ou 0,95 para que apenas folhas superlimpas com 95% de exemplos da classe correta funcionem. Para a regressão, da mesma forma, apenas o nível não é de 0 a 1, mas em valores abs. As imagens acima mostram o mesmo modelo, mas com diferentes níveis de ativação. A primeira com 0,00020, a segunda com 0,00040pts. O segundo pulou os intervalos de negociação não lucrativos e trabalhou apenas nos mais lucrativos e mostrou lucro, embora tenha trabalhado com pausas de 1 a 2 anos. A ativação ocorreu em 70000 casos de 400000, ou seja, cerca de 17% das melhores folhas funcionaram.

O resultado é semelhante, obtido com apenas um comando no código if(leaf_value>0.00040){...}. sem todo o trabalho de seleção de folhas e, agora, também de clusters.

Mas você já sabe tudo isso....

 
Aleksey Vyazmikin #:

Nos novos dados, sim. É que um padrão consistente foi atingido, e o restante da árvore deixa apenas o ruído do vento. O ruído está lá por forçar a árvore a dar respostas a todas as perguntas, ou seja, a classificar toda a amostra.

O problema é que a árvore é construída não pela condição de maximização do lucro, mas por uma função de perda conveniente para a programação do pacote.

Portanto, você tem que fazer uma escolha desagradável: tentar reconfigurar um pacote complexo e complicado ou construir uma bicicleta apertada. Também é possível combinar "com sucesso" essas duas opções.)

Na minha opinião, se você optar por mexer em um pacote existente em árvores, deve tentar usar a poda (poda) - com a condição de maximização do lucro no futuro, por exemplo. Talvez seja possível evitar a manipulação manual das regras.

 
Maxim Dmitrievsky #:
Não tenho muita esperança, apenas dou uma olhada de vez em quando. Depois de todo o gpt, prevejo estagnação e estagnação nesse tópico. Não há avanços visíveis. É puramente um flash de propaganda, como acontece com as criptomoedas. Agora eles ganharão dinheiro e se acalmarão.
Estou com você!

Toda a minha vizinhança elogia as redes neurais propagandeadas, mas quando você as coloca em tarefas simples, elas não dão conta do recado
 
Stanislav Korotky #:

O exemplo que dei é apenas da seção de entropia cruzada categórica (e você provavelmente não prestou atenção ao fato de que a soma dos valores é 1 em cada instância). O fato de não funcionar como no Keras é um indicador para mim, o que significa que a implementação ou a descrição do CCE na MQL5 não corresponde ao esperado. Então, é necessária uma descrição detalhada. A propósito, no pytorch, o CrossEntropyLoss inclui um softmax preliminar em seu interior. Mas, em geral, como a documentação sobre matrizes em MQL5 contém a ideia de que a interface é semelhante à do python, a coincidência de comportamento está implícita. E se não houver coincidência, isso causa problemas e perplexidade.

Ter muitas classes implica trabalhar com matrizes (quando temos um monte de amostras/linhas, cada uma das quais tem classes), portanto, seu exemplo com um vetor ainda não responde à pergunta.

Eu entendi. As funções de perda funcionam com matrizes, assim como funcionam com vetores. Nesse lugar, não terminamos (não adicionamos o parâmetro de eixo)

Ou seja, no seu exemplo, precisamos resolvê-lo linha por linha.

Obrigado por sua atenção

 
Aleksey Vyazmikin #:

Nos novos dados, sim. É que um padrão consistente foi atingido, e o restante da árvore deixa apenas o ruído do vento. O ruído está lá por forçar a árvore a dar respostas a todas as perguntas, ou seja, a classificar toda a amostra.

E se você a retirar da floresta, haverá uma média das regras de todas as árvores, de acordo com o número de árvores

 
Forester #:

Eu faço isso (seleção de folhas) automaticamente, alterando o nível de ativação das folhas. Classicamente, 0,5 é usado para classificação. Todas as folhas com probabilidade maior que 0,5 são ativadas, as demais ficam em silêncio (o que equivale a removê-las da árvore). Esse método foi descrito em mais de um artigo neste site e no fórum.

Além disso, você pode definir o nível como 0,9 ou 0,95 para que somente folhas superlimpas com 95% de exemplos da classe correta funcionem. Para a regressão de forma semelhante, apenas o nível não é de 0 a 1, mas em valores abs. As imagens acima mostram o mesmo modelo, mas com diferentes níveis de ativação. A primeira com 0,00020, a segunda com 0,00040pts. O segundo pulou os intervalos de negociação não lucrativos e trabalhou apenas nos mais lucrativos e mostrou lucro, embora tenha trabalhado com pausas de 1 a 2 anos. A ativação ocorreu em 70000 casos de 400000, ou seja, cerca de 17% das melhores folhas funcionaram.

O resultado é semelhante, obtido com apenas um comando no código if(leaf_value>0.00040){...}. sem todo o trabalho que você faz com a seleção de folhas e, agora, de clusters.

Mas você já sabe tudo isso....

Você tem uma floresta, você não repondera o modelo depois de construí-lo? Ou você simplesmente tira a média das folhas ativadas?

Essa é a questão: ao selecionar uma folha, levo em conta a estabilidade e a uniformidade da distribuição de respostas ao longo do histórico. Faço indicadores bidimensionais e os avalio de forma agregada. Portanto, folhas sem respostas são extremamente raras para mim.

Parece-me que você poderia facilmente salvar as folhas, criando milhares de árvores, e trabalhar somente com elas.

 
Aleksey Nikolayev #:

O problema é que a árvore não é construída de acordo com uma condição de maximização de lucro, mas de acordo com uma função de perda conveniente para a programação de pacotes.

Portanto, você tem uma escolha desagradável: ou tenta reconfigurar um pacote complexo e complicado ou constrói uma bicicleta apertada. Também é possível combinar "com sucesso" essas duas opções)

Na minha opinião, se você optar por mexer em um pacote existente em árvores, deve tentar usar a poda (poda) - com a condição de maximização do lucro no futuro, por exemplo. Talvez seja possível evitar a manipulação manual das regras.

A variante que usei para construir a árvore não constrói árvores profundas - a poda pode ser desnecessária nesse caso.

Sim, quase todos os ajustes são automatizados, e o que não é é baseado em minha ignorância do R.

Estou falando de ruído, porque o preditor raiz pode conter probabilidade de predisposição a classes específicas na região de 10% ou menos, e o restante da probabilidade é distribuído uniformemente, e o restante do resíduo é usado para cortar as folhas restantes.

 
Maxim Dmitrievsky #:

e se você retirá-lo da floresta, haverá uma média de todas as árvores, de acordo com o número de árvores

As árvores são construídas de forma independente e, em seguida, ponderadas pelas respostas nas folhas. Eu não trabalhei com uma floresta, mas com uma única árvore. Nunca ouvi falar de uma floresta em genética.