Discussão do artigo "Aprofundando na "memória" do mercado através da diferenciação e do análise de entropia" - página 10

[Excluído]  
Олег:

Se pegarmos seu livro especificamente, a diferenciação fracionária não é muito agradável (na prática), além disso, ela tem cem anos, começando com as modificações ARIMA. Se você pegar essas séries de forma autônoma, sem outros recursos, não obtive resultados satisfatórios.

Gostei de suas considerações sobre metamarcação, ou seja, treinar o segundo modelo para corrigir os resultados do primeiro, melhorando os resultados da matriz. Há muito poucas negociações perdidas no Train Sabesta. Novamente, essa não é uma abordagem puramente dele, é bem conhecida. Mas somente eu a vi aplicada a linhas finas. Ela não elimina o retreinamento, mas cria uma bela imagem na bandeja.

Você pode ver aqui, na seção Meta-Labeling: https: //towardsdatascience.com/financial-machine-learning-part-1-labels-7eeed050f32e.

Mais aqui: https: //www.quantopian.com/posts/meta-labeling-advances-in-financial-machine-learning-ch-3-pg-50

__________________________________________________________________________________________________________________

Quanto ao problema de treinamento excessivo, estou procurando por Meta-aprendizagem, mecanismos de atenção na aprendizagem de máquina.

Você pode dar uma olhada em:

1. https://medium. com/towards-artificial-intelligence/a-simple-neural-attentive-meta-learner-snail-1e6b1d487623

2. https://stats. stackexchange.com/questions/344508/what-are-attention-mechanisms-exactly

Financial Machine Learning Part 1: Labels
Financial Machine Learning Part 1: Labels
  • Maks Ivanov
  • towardsdatascience.com
In the previous post, we’ve explored several approaches for aggregating raw data for a financial instrument to create observations called bars. In this post, we will focus on the next crucial stage of the machine learning pipeline — labeling observations. As a reminder, labels in machine learning denote the outcomes of the random variable that...
 
Obrigado por sua resposta detalhada, .....
[Excluído]  
Олег:
Obrigado pela resposta detalhada, estou analisando-a....

Esqueci de acrescentar que a meta-rotulagem de seu livro é um caso especial de empilhamento, se você aplicar o metamodelo não a um único modelo primário, mas a uma suspensão de vários modelos treinados em diferentes sabres. Isso poderia dar mais espaço para pesquisa, conforme aplicado à série tafm.

Aqui está um artigo muito bom.

Além disso, os mecanismos de atenção + empilhamento estão igualmente bem integrados à meta-aprendizagem. Portanto, há muito o que tentar.

Tudo isso deve levar a alguma generalização global e ajudar a combater o ajuste excessivo.

Em minha biblioteca de RL multiagente do artigo, há um boleto para multiagentes, mas seus resultados são calculados pela média e não são ponderados de forma alguma. Eu mesmo faço todo tipo de variação sobre o tema.

How to Develop a Stacking Ensemble for Deep Learning Neural Networks in Python With Keras
How to Develop a Stacking Ensemble for Deep Learning Neural Networks in Python With Keras
  • Jason Brownlee
  • machinelearningmastery.com
Model averaging is an ensemble technique where multiple sub-models contribute equally to a combined prediction. Model averaging can be improved by weighting the contributions of each sub-model to the combined prediction by the expected performance of the submodel. This can be extended further by training an entirely new model to learn how to...
 

Maxim Dmitrievsky:

Em minha biblioteca de RL multiagente do artigo, há um boleto para multiagentes, mas seus resultados são calculados pela média e não são ponderados de forma alguma. Para mim, faço todo tipo de variação sobre o tema.

Na discussão de seu primeiro artigo sobre RL, levantei a questão da substituição da média por um método mais complexo, então você o pegou na baioneta, em princípio, quando todos os agentes são criados por um algoritmo de floresta aleatória, isso realmente não é relevante, com um grau de convencionalidade pode ser considerado que 2 agentes dão na floresta de união com um grande número de árvores. É necessário apenas dar mais um passo na biblioteca RL e colocar as árvores em uma classe separada e padronizada, para a possibilidade de substituição simples do agente por outro algoritmo.

Com base em sua biblioteca, tentei criar uma biblioteca ampliada com a seguinte estrutura: classe de preparação de dados primários (séries de pares, séries adicionais - o euro-dólar afeta muitos pares, um conjunto de leituras de indicadores, parâmetros adicionais como dia do mês, dia da semana etc.) - preparação de dados para todas as cadeias de algoritmos.

A cadeia em si: várias classes de pré-processamento padrão, classe de método

No final, uma classe de tomada de decisão (combinando os resultados das cadeias), em uma forma simples - média

Eu tenho 4 classes-bases-wrappers: dados, pré-processamento, processamento, tomada de decisão.

Nessa forma, é possível misturar métodos diferentes e um método em dados diferentes, provavelmente algo não foi levado em conta, mas esse é o mínimo obtido

[Excluído]  
Олег:

Na discussão do seu primeiro artigo sobre RL, levantei a questão da substituição do cálculo da média por um método mais complexo, e você a considerou irrelevante. Em princípio, quando todos os agentes são criados por um algoritmo de floresta aleatória, isso não é realmente relevante; com um certo grau de convencionalidade, podemos considerar que dois agentes geram uma floresta com um grande número de árvores. É necessário apenas dar mais um passo na biblioteca de RL e colocar as árvores em uma classe separada e padronizada, para a possibilidade de substituição simples do agente por outro algoritmo.

Com base em sua biblioteca, tentei criar uma biblioteca ampliada com a seguinte estrutura: classe de preparação de dados primários (um número de pares, uma linha adicional - euro-dólar afeta muitos pares, um conjunto de leituras de indicadores, parâmetros adicionais - como dia do mês, dia da semana etc.) - preparação de dados para todas as cadeias de algoritmos.

A cadeia em si: várias classes de pré-processamento padrão, classe de método

No final - uma classe de tomada de decisão (combinando os resultados das cadeias), em uma forma simples - média

Eu tenho 4 classes-base-classes de invólucro: dados, pré-processamento, processamento, tomada de decisão.

Nessa forma, é possível misturar métodos diferentes e um método em dados diferentes, provavelmente algo não foi levado em conta, mas esse é o mínimo obtido.

Mas onde obter outros algoritmos? Não há mais nada na alglib, teremos que adicionar alguns algoritmos de terceiros. Nessa biblioteca do artigo, é possível alterar os parâmetros de cada agente, ou seja, você pode adicionar outros recursos, número de árvores e outras configurações, ou seja, você pode obter, digamos, muitos classificadores fracos com um pequeno número de árvores treinadas em diferentes recursos. A única coisa que falta, como você notou, é substituir o cálculo da média por um metamodelo. Bem, também é possível dividir o treinamento em dobras, de modo que cada agente seja treinado em sua própria subamostra. Ainda não experimentei o empilhamento.

 
Maxim Dmitrievsky:

Mas onde obter outros algoritmos? Não há mais nada na alglib, portanto, teremos que adicionar alguns algoritmos de terceiros. Nessa biblioteca do artigo, você pode alterar os parâmetros de cada agente, ou seja, pode adicionar outros recursos, número de árvores e outras configurações, ou seja, você pode obter, digamos, muitos classificadores fracos com um pequeno número de árvores, que são treinadas em diferentes recursos. A única coisa que falta, como você notou, é substituir o cálculo da média por um metamodelo. Bem, também é possível dividir o treinamento em dobras, de modo que cada agente seja treinado em sua própria subamostra. Ainda não experimentei o empilhamento.

Foi aí que me queimei... Decidi mudar o algoritmo de bousting, estou disperso e não consigo fazer tudo junto. As bibliotecas C++ são muito pesadas em modelos e sobrecarga de funções, porque no MQL nem todas as sobrecargas são suportadas, o algoritmo voa e é mais fácil escrever novamente, para algoritmos python é necessária uma biblioteca de matrizes normal (o que está no AlgLib é truncado, algumas coisas são simplesmente fechadas com plugues, o que não é bom para a base), foi mais fácil transferir do C#, parece que os desenvolvedores do MQL se concentram mais nele do que no C++, até a coincidência de métodos e nomes. Tentei usar as árvores do alglib como base, mas lá as árvores são feitas em matrizes, é difícil lidar com a indexação e a exclusão é difícil. Agora vou terminá-lo e publicá-lo, ou espero que alguém se interesse e o compartilhe....

[Excluído]  
Олег:

Foi aí que fiquei preso... Decidi mudar o algoritmo de busting, estou disperso e não consigo juntar tudo. As bibliotecas C++ são muito pesadas em modelos e sobrecarga de funções, porque no MQL nem todas as sobrecargas são suportadas, o algoritmo voa e é mais fácil escrever novamente, para algoritmos python é necessária uma biblioteca de matrizes normal (o que está no AlgLib é truncado, algumas coisas são simplesmente fechadas com plugues, o que não é bom para a base), a coisa mais fácil foi transferir do C#, parece que os desenvolvedores do MQL são mais orientados a ele do que ao C++, até a coincidência de métodos e nomes. Tentei usar as árvores do alglib como base, mas lá as árvores são feitas em matrizes, é difícil lidar com a indexação e a exclusão é difícil. Agora vou terminá-lo e publicá-lo, ou espero que alguém se interesse e o compartilhe....

Ou fazer isso em python, mas depois sofrer com o MT5 :) Tenho o desejo de criar uma biblioteca semelhante em python, pois as possibilidades são imensas em termos de modelos. Há algum sentido em se preocupar com o artigo?

O único problema é que desenvolvi muito essa biblioteca, que parece muito mais complicada do que no artigo... bem, ou apenas diferente, embora o conceito permaneça o mesmo.
 
Maxim Dmitrievsky:

Ou fazer em python, mas depois sofrer com os vínculos do MT5 :) Tenho o desejo de fazer uma biblioteca semelhante em python, pois as possibilidades em termos de modelos são imensas. Há algum sentido em se preocupar com o artigo?

O único problema é que desenvolvi muito essa biblioteca, que parece muito mais complicada do que no artigo... bem, ou apenas diferente, embora o conceito seja o mesmo

O ARTIGO TEM, SEM DÚVIDA, UM OBJETIVO.

O Python se tornou um padrão de ML, os desenvolvedores de MQL também se moveram nessa direção, você precisa dominar o Python de qualquer forma. Minha tentativa de transferir algoritmos está relacionada à recusa de DLLs para negociação automática em MQL, mas essa não é uma exigência estrita e, se os algoritmos forem mais fáceis de usar em python, por que não?


Sem bajulação - leio seus artigos com prazer, podemos discutir até ficarmos com o rosto azul sobre o conteúdo, mas o fato de que eles definem novas direções é inequívoco.

Sou a favor de um novo artigo.

[Excluído]  
Олег:

O ARTIGO TEM DEFINITIVAMENTE UM OBJETIVO.

O Python se tornou um padrão de ML, os desenvolvedores de MQL também seguiram nessa direção, portanto, você precisa dominar o Python de qualquer forma. Minha tentativa de transferir algoritmos está relacionada à recusa de DLLs para negociação automática em MQL, mas essa não é uma exigência estrita e, se os algoritmos forem mais fáceis de usar em python, por que não?


Sem bajulação - leio seus artigos com prazer, podemos discutir até ficarmos com o rosto azul sobre o conteúdo, mas o fato de que eles definem novas direções é inequívoco.

Sou a favor de um novo artigo.

Proponho criar um análogo da biblioteca RL em Python como um artigo, só que não com floresta aleatória, mas com bousting, por exemplo, CatBoost.

e desenvolver o tópico mais tarde. Para começar, é simples.
 
Maxim Dmitrievsky:

Proponho criar um análogo da biblioteca RL em Python como um artigo, só que não com floresta aleatória, mas com bousting, por exemplo, CatBoost.

e desenvolver o tópico mais tarde. Para começar, é simples.

Como opção, XGBoost - biblioteca com código-fonte ou até mesmo simplificada:

https://habr.com/ru/company/mailru/blog/438562/

A propósito, o artigo descreve bousting, bousted backing
Пишем XGBoost с нуля — часть 2: градиентный бустинг
Пишем XGBoost с нуля — часть 2: градиентный бустинг
  • habr.com
Всем привет! В прошлой статье мы разбирались, как устроены решающие деревья, и с нуля реализовали алгоритм построения, попутно оптимизируя и улучшая его. В этой статье мы реализуем алгоритм градиентного бустинга и в конце создадим свой собственный XGBoost. Повествование будет идти по той же схеме: пишем алгоритм, описываем его, в заверешение...