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

 
Mihail Marchukajtes:

En mélangeant toutes les données, nous essayons de tirer le véritable potentiel de cet ensemble, plutôt qu'une heureuse coïncidence d'ordre. Donc quand vous mélangez les données, vous voyez vraiment ce que les données peuvent faire... So....

Le fait est que le modèle s'adapte trop bien si vous ne séparez pas la formation et le test dans le temps. Un exemple exagéré mais illustratif : des incréments absolus sans transformation sont utilisés comme prédicteurs. Nous utilisons une fenêtre glissante de largeur 15, c'est-à-dire que chaque fois que nous alimentons 15 prédicteurs incrémentaux, nous déplaçons une valeur vers la droite. La classe des chaînes de données voisines a plus de chances de coïncider que de différer, c'est-à-dire que si la nième chaîne a la classe 1, alors la n+1 chaîne aura très probablement la classe 1. Les chaînes ne peuvent différer que légèrement les unes des autres, la n+1 chaîne ne différant de la nième que par une valeur. Il y a 14 valeurs correspondantes. Ainsi, si vous prenez la première ligne de cet ensemble de données pour vous entraîner, et la deuxième pour tester, la troisième pour vous entraîner, etc., alors le modèle fonctionnera très bien, car de nombreuses lignes dans le test coïncident avec les valeurs sur lesquelles le modèle a été entraîné dans l'entraînement. Seule la SO du modèle sera nulle (si vous voulez dire la vraie SO, qui n'inclut pas le test).
 
Vladimir Perervenko:

Lorsqu'il s'agit d'estimer des prédicteurs à l'aide de modèles, je pense que le paquet le plus avancé est RandomUniformForest. Il traite de manière très détaillée l'importance des prédicteurs de différents points de vue. Je vous recommande d'y jeter un coup d'œil. Dans un de mes articles, je l'ai décrit en détail.

J'ai refusé d'utiliser la sélection de modèles de prédicteurs. Limitée aux spécificités du modèle utilisé.

Bonne chance

Je continue à écrire sur quelque chose de complètement différent : je ne suis PAS intéressé par l'intensité de l'utilisation des prédicteurs lors de la construction d'un modèle, car je crois que le prédicteur le plus "commode" pour construire un modèle est celui qui a peu de relation avec la variable cible, car on peut toujours trouver des valeurs "commodes" dans un tel prédicteur et, en fin de compte, l'importance des prédicteurs reflétera la "commodité" du modèle lors de sa construction.

J'écris tout le temps sur la capacité de prédiction, l'impact de ... du prédicteur sur la variable cible. L'une des idées a été exprimée ci-dessus (information mutuelle), j'ai exprimé mon idée à ce sujet à de nombreuses reprises. Ce sont des idées mathématiques. Les idées économiques sont beaucoup plus efficaces, car elles permettent de choisir des prédicteurs de la variable cible qui sont en avance sur celle-ci.


Encore une fois : je ne suis pas intéressé par l'IMPORTANCE de la variable pour le modèle, je suis intéressé par l'IMPACT du prédicteur sur la variable cible.


PS.

J'ai vérifié votre paquet recommandé : le résultat est presque le même.

 
Slasher111:
Le point est que le modèle s'adapte trop si vous ne séparez pas la formation et le test par le temps. Un exemple exagéré mais illustratif : nous avons des incréments absolus comme prédicteurs, sans aucune transformation. Nous utilisons une fenêtre glissante de largeur 15, c'est-à-dire que chaque fois que nous alimentons 15 prédicteurs incrémentaux, nous déplaçons une valeur vers la droite. La classe des chaînes de données voisines a plus de chances de coïncider que de différer, c'est-à-dire que si la nième chaîne a la classe 1, alors la n+1 chaîne aura très probablement la classe 1. Les chaînes ne peuvent différer que légèrement les unes des autres, la n+1 chaîne ne différant de la nième que par une valeur. Il y a 14 valeurs correspondantes. Ainsi, si vous prenez la première ligne de cet ensemble de données pour vous entraîner, et la deuxième pour tester, la troisième pour vous entraîner, etc., le modèle fonctionnera très bien, car de nombreuses lignes dans le test coïncident avec les valeurs sur lesquelles le modèle a été entraîné dans l'entraînement. Seule la SO du modèle sera nulle (si vous voulez dire la vraie SO, qui n'inclut pas le test).

C'est un très bon point. L'étonnant résultat graal que j'ai posté plus haut à propos de l'échantillonnage aléatoire pour les tests d'apprentissage et les validations est exactement ce qui l'explique. Et si vous excluez les observations proches qui se trouvent dans des ensembles différents, vous obtenez tout comme moi - un désastre.

 
Mihail Marchukajtes:

Rappelez-vous que j'ai dit que j'ai reçu un modèle qui a gagné du 01.31.2018 à aujourd'hui, et voici comment ce modèle s'est comporté ces deux semaines du 03.05.2018 à aujourd'hui. Résultat du test.

Plutôt bien pour une vieille dame formée sur 40 points et qui est au chômage depuis un mois et demi maintenant.

Et voici l'intégralité de son OOS du 01.31.2018

Et vous pensez toujours que c'est un ajustement ???? Je vous rappelle que les captures d'écran montrent la section OOS.

où est le backtest normal ? vous avez touché une tendance haussière dans 3 mois, sur les ruptures vous allez souffrir.

Vous devriez prendre une chose simple, comme acheter tous les lundis, et être surpris que cela fonctionne mieux que vous lorsque le marché monte.

 

Vous vérifiez tout pour le surentraînement et pour les erreurs dans l'échantillon lui-même, c'est bien sûr intéressant pour les statistiques et pour comprendre ce que fait l'algorithme. mais l'idée finale est de prendre l'argent. alors pourquoi ne pas vérifier la prévisibilité dans le test ? .... dans mon test, il s'avère que c'est 50/50, mais du fait que j'ai défini la variable cible dans les classes où moose est inférieur à profit, il s'avère que la croissance est assez douce dans le test. et d'ailleurs, dans le test, c'est juste une avance solide, la machine a été entraînée sur des données avant le début de trading..... J'ajouterai que le plus important, ce sont les prédicteurs d'entrée, leur nombre et leur capacité réelle à décrire la cible.

voici une phototest

 
Beaucoup des approches discutées sont terriblement dépassées, elles étaient pertinentes dans les années 80...
 
Anatolii Zainchkovskii:

Vous vérifiez tout pour le surentraînement et pour les erreurs dans l'échantillon lui-même, c'est bien sûr intéressant pour les statistiques et pour comprendre ce que fait l'algorithme. mais l'idée finale est de prendre l'argent. alors pourquoi ne pas vérifier la prévisibilité dans le test ? .... dans mon test, il s'avère que c'est 50/50, mais du fait que j'ai défini la variable cible dans les classes où moose est inférieur à profit, il s'avère que la croissance est assez douce dans le test. et d'ailleurs, dans le test, c'est juste une avance solide, la machine a été entraînée sur des données avant le début de trading..... J'ajouterai que les plus importants sont les prédicteurs d'entrée, leur nombre et leur capacité réelle à décrire la cible.

Cependant, le réentraînement est très important, car, par exemple, dans le boosting (forêts de gradient), vous pouvez obtenir un modèle très performant, mais qui ne servira à rien en aval, comme vous le savez vous-même.

 
Lasélection des prédicteurs est importante, mais l'échafaudage ne sait pas comment modéliser les facteurs de relation entre eux, il s'agit donc d'un ajustement idiot, et une modélisation intelligente avec des variations sous forme de relations entre variables est malheureusement très longue.
 
transcendantal:

le ré-entraînement est toujours un point important, parce que, par exemple dans le boosting (forêts de gradient) vous pouvez obtenir un modèle époustouflant, mais sur le forward vous obtiendrez un fade, mais vous le savez vous-même

personne ne dit qu'il faut utiliser pour toujours, il y a une période où vous pouvez vous recycler et recommencer)))

 
transcendantal:
La sélection des prédicteurs est importante, mais les forêts ne savent pas comment modéliser les facteurs de relation entre eux, c'est donc un ajustement stupide, et la modélisation intelligente avec la variation sous forme de relations variables est malheureusement une affaire très longue.

Et ces connexions ne peuvent pas être trouvées mathématiquement, il faut donc faire du dumb fitting ou des études de marché :)

L'adaptation stupide est aussi une chose cool, en fait, si on utilise la généralisation.

Raison: