L'apprentissage automatique dans la négociation : théorie, modèles, pratique et algo-trading - page 930

 
Aleksey Vyazmikin:

Et si nous trouvons des branches avec une bonne probabilité et que nous les encodons dans un prédicteur, et qu'ensuite nous donnons à nouveau l'arbre à moudre, alors l'arbre pensera comment faire une amélioration à partir des résultats trouvés (prédicteurs qu'il devrait alors aimer, puisqu'ils ont un grand pourcentage de décisions correctes ?

Je ne sais pas :) Je n'ai pas effectué de telles expériences avec l'arbre. Mais par exemple, toutes sortes de modèles GBM fonctionnent de la même manière : ils construisent un arbre, puis un autre arbre qui donne de meilleurs résultats que le précédent, puis un autre arbre et ainsi de suite.

 
Dr. Trader:

Si vous allez plus loin, la précision de ces données augmentera bien sûr. Mais il est plus probable qu'il baisse dans les nouvelles données.

Un certain optimum est atteint ici, lorsque l'arbre a déjà appris quelque chose, mais il n'y a pas encore d'overfit, et nous pouvons nous attendre à des résultats similaires sur de nouvelles données.

Hmm, mais encore une fois, si nous compressons cet arbre en un seul prédicteur et cherchons plus loin une solution ? En fait, mes prédicteurs sont souvent déjà des sortes de précalculs, de classification de valeurs, etc., c'est-à-dire que si je donne des données brutes à l'arbre, la ramification s'arrêtera plus tôt et avec plus d'erreurs... Et sur cette base, se ramifier dans la bonne direction donnera le résultat, mais cette direction est inconnue, et la question est de savoir comment la déterminer.

 
Dr. Trader:

Je ne sais pas :) Je n'ai pas fait de telles expériences avec l'arbre. Mais par exemple, tous les types de modèles GBM fonctionnent de cette manière : ils construisent un arbre, puis un autre qui donnera une amélioration par rapport au précédent, puis un autre, etc.

Apparemment, je dois me renseigner sur ces modèles GBM... mais où les reproduisent-ils (seulement R ?)?

Il reste à essayer les filtres - même mon programme a donné au moins quelques résultats, peut-être que le vôtre donnera quelque chose d'intéressant, car tous les prédicteurs sont en fait utilisés dans TC comme des filtres.

 

Dr. Trader, j'ai découvert que si nous considérons la combinaison deLevl_first_H1, Levl_High_H1, Levl_Low_H1, Levl_Support_H1, Levl_Close_H1 , comme une règle entière séparée, en général comme prévu à l'origine, nous obtenons un tableau curieux


Il ressort de ce tableau :

1. Il a fallu 6088 combinaisons pour décrire deux années pour toutes les barres, en tenant compte de la cible, et si nous ne tenons pas compte de la cible, ce sera encore moins, c'est-à-dire qu'une combinaison en cas de distribution uniforme décrit 86 lignes pour deux années, mais je pense qu'il y a des combinaisons plus fréquentes et moins fréquentes.

2. L'émergence de nouvelles règles uniques de 2015 à 2016 était de 41%, et avec la cible 1 nouvelles règles 55%, c'est-à-dire que 45% des règles de 2015 sont restées et ont continué à être valides, ce qui me semble déjà bien.

3. L'échantillon pour 2015 et 2016 n'utilise que 21% de toutes les combinaisons possibles, donc soit les autres sont extrêmement uniques, soit elles sont sous-échantillonnées.

Ne devrions-nous pas utiliser ces faits d'une manière ou d'une autre pour construire l'arbre ?

Ajouté :

J'ai ensuite fait cette expérience, j'ai ajouté les règles de 2016 cible 0 et 1 à cible 1 et 0 en éliminant les doublons, puis j'ai supprimé les lignes en double, et j'ai obtenu un résultat déprimant, auquel je n'arrive pas à donner un sens

Il s'avère que les règles fausses pour la cible "1" sont de 81% et pour la cible "0" de 38%, bien que je ne sache pas quel pourcentage de lignes contient des erreurs... il est possible que le ratio soit différent, sinon de nouvelles règles auraient été ajoutées exactement autant qu'elles ont été détectées en 2016, ce qui n'est pas le cas, ce qui signifie que les règles ne sont pas toujours remplies et qu'elles ont juste besoin de conditions supplémentaires - des prédicteurs.

 

Aleksey Vyazmikin:


Il découle du tableau :

les règles ne sont pas toujours appliquées et elles ont juste besoin de conditions supplémentaires - des prédicteurs.

Aleksey, je propose de faire un NS-ka mature tout de suite. L'échantillonnage et les forêts seuls ne nous mèneront pas loin (la communauté MQL).

Il est évident qu'une stratégie NS qui fonctionne a besoin d'une plateforme analytique pour prendre une décision en tant que trader - faut-il entrer sur le marché pour acheter, vendre, ou tout simplement ? Est-il utile de fermer des positions pour acheter, vendre ou en général ?

Maxim et moi avons fantasmé sur ce sujet ICI, alors lisez-le et confirmez que cela a du sens.

 
geratdc_:

Alexey, je suggère de faire tout de suite un truc mature de type NS. Nous (la communauté MQL) n'irons pas loin avec les seuls échantillons et échafaudages.

Il est évident qu'une stratégie NS qui fonctionne a besoin d'une plateforme analytique pour prendre une décision en tant que trader - qu'il s'agisse d'entrer sur le marché pour acheter, pour vendre, ou en général ? Est-il utile de fermer des positions pour acheter, vendre ou en général ?

Maxim et moi avons fantasmé à ce sujet ICI, alors je vous invite à vérifier et à confirmer que cela a du sens.

Ici, je ne suis pas sûr qu'il y ait une place pour NS sur le marché...

 

Maintenant, faites attention. J'ai décidé de travailler cette semaine sur le script Dock et le réseau d'emails.

Maintenant, la meilleure partie, et qu'est-ce que ça pourrait être ? ? ????

Avec le nombre maximum de neurones égal à 200 (par défaut), la qualité de l'apprentissage était de 0,6 comme estimé par le R-score. Cependant, en réduisant le nombre maximum de neurones cachés à 30, j'ai augmenté l'estimation à 0,85 (ce qui est très bon). Cependant, j'ai commencé à obtenir des copies des modèles par poids. Je reçois TOUJOURS les mêmes poids. C'est là que la question se pose. La génétique arrive obstinément à la même fonction minimale. Les données sont-elles si peu ambiguës que dans les chiffres réels, nous obtenons le même minimum avec des pondérations identiques. Voyons comment cela fonctionne pendant des semaines...

Pour être exact, l'optimiseur de Reshetov de la semaine dernière a gagné un peu plus que le réseau ELMNN, mais il est beaucoup plus rapide de les installer, donc je vais essayer de passer à eux, si cela fonctionne, j'abandonnerai Reshetov pour le moment à cause de l'installation d'un réseau trop vaste dans work.....

 
Aleksey Vyazmikin:

Apparemment, nous devons nous documenter sur ces modèles GBM... et où les reproduisent-ils (R uniquement ?) ?

Il devrait y en avoir aussi en Python.

Aleksey Vyazmikin:

Il reste à essayer les filtres - même mon programme a donné au moins quelques résultats là, peut-être que le vôtre donnera quelque chose d'intéressant, car tous les prédicteurs sont essentiellement utilisés dans TC comme des filtres.

Je vais exécuter l'algorithme ce soir et montrer les résultats demain.

Aleksey Vyazmikin:

Il ressort de ce tableau :

...

Atteindre une précision de 100 % et espérer que le modèle fonctionnera bien est généralement impossible en forex, il faut des mois pour sélectionner des prédicteurs et même une cible qui s'accorderont bien ensemble. Généralement, après avoir atteint une précision de quelques dizaines de fois supérieure à 50 %, le modèle commence à mémoriser les exemples d'entraînement au lieu de trouver des modèles logiques dans ces derniers. Le résultat sur les nouvelles données sera donc de plus en plus mauvais. Avec vos données, j'ai obtenu cet optimum de 60% - lorsque les résultats sur les données de formation et de test sont approximativement égaux, mais avec un partitionnement plus détaillé de l'arbre et une plus grande précision, la forêt montre des résultats de plus en plus mauvais sur les nouvelles données.

 
Mihail Marchukajtes:

Avec le nombre maximum de neurones égal à 200 (par défaut), la qualité de l'apprentissage était de 0,6 comme estimé par le R-score. Cependant, en réduisant le nombre maximum de neurones cachés à 30, j'ai augmenté ce chiffre à 0,85 (ce qui est très bon).

La génétique essaie de trouver les bons paramètres pour un nombre limité d'appels de fonctions. En réduisant le nombre de variantes de ce paramètre (30 au lieu de 200), la génétique peut étudier plus en détail la région de 1 à 30. Et c'est vrai, si vous connaissez les limites spécifiques pour trouver un paramètre de modèle, il vaut mieux donner cette information à la génétique tout de suite.


Alternativement :

gaResult <- ga(type="real-valued",
               fitness = GaFitness,
               min = c(1,1,0),
               max = c(NHID_MAX, length(ACTFUN_NAMES), 1000),
               popSize = 500,
               monitor=plot)

Ajoutez cette ligne (la verte) au code, alors le généticien aura 500 individus dans la population au lieu des 50 par défaut. Et elle pourra tester 10 fois plus de modèles (mais le temps d'exécution du script sera également multiplié par 10), en étant capable d'essayer autant de combinaisons de paramètres de modèles que possible. Même avec un maximum de 200 neurones, je pense que la génétique pourra également trouver un meilleur résultat avec 0,85, ou du moins s'en rapprocher.

 

Oh, ce sera quelque chose à lire, j'avais oublié ce que c'était. Ou plutôt, a oublié la différence entre GBM et XGboost... ou ne savait pas

gbm peut booster n'importe quel modèle, xgb semble être sur les arbres

Je sais que le boosting est un peu mieux que la mendicité par laquelle la forêt est construite. Je ne sais pas comment c'est avec le surentraînement.

https://habr.com/company/ods/blog/327250/

https://datascienceplus.com/gradient-boosting-in-r/

Открытый курс машинного обучения. Тема 10. Градиентный бустинг
Открытый курс машинного обучения. Тема 10. Градиентный бустинг
  • 2018.05.17
  • habr.com
Всем привет! Настало время пополнить наш с вами алгоритмический арсенал. Сегодня мы основательно разберем один из наиболее популярных и применяемых на практике алгоритмов машинного обучения — градиентный бустинг. О том, откуда у бустинга растут корни и что на самом деле творится под капотом алгоритма — в нашем красочном путешествии в мир...