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

 
Maxim Dmitrievsky:

Je ne comprends pas vraiment ce que contiennent les chiffres et quel est le problème.

Les figures montrent le résultat financier (axe des y) du modèle en choisissant différentes probabilités pour la classification binaire (axe des x). A l'aide d'un échantillon test, j'ai compris qu'il fallait toujours entrer sur le marché lorsqu'un signal d'activation apparaît (la formation décide d'entrer ou non). Le paradoxe est que l'apprentissage ne provoque qu'une détérioration du signal d'activation de base et je ne l'aurais pas vu, si je n'avais pas décidé de voir comment le résultat financier change en fonction du déplacement du point de classification sur le segment de probabilité.

Maxim Dmitrievsky:

J'ai fait beaucoup de variantes de modèles moi-même, maintenant j'essaie de savoir laquelle choisir pour le suivi :D ou pour l'améliorer encore.

en bref... ces approches n'alimentent pas du tout correctement la sortie, qu'il s'agisse de zigzags ou d'autres absurdités.

car pour chaque dimension de la fenêtre glissante, il devrait y avoir une distribution différente à partir de laquelle les transactions sont effectuées. Ensuite, le modèle s'ajuste mieux, y compris à l'échantillon test. (alors que les sorties en zigzag ou autres sont très déterministes en elles-mêmes, il y a peu de degrés de liberté pour l'ajustement) La dernière est faite et c'est à dire que l'énumération des sorties est plus complète, et ensuite il n'y a vraiment rien d'autre à faire là

aux entrées d'incréments avec différents décalages, à l'ancienne, avec auto-sélection par les importans et peut-être par PCA pour se débarrasser de la corrélation, de telles variantes de bots également faites. Mais en général, l'utilisation de l'ACP est une idée erronée (bien que, là encore, le contraire soit écrit sur Internet). Non seulement les échantillons doivent être centrés, mais avec les nouvelles données, ces composants se transforment lentement en scories.

Nous avons une approche très différente du problème. Je suis étranger à une description purement mathématique du prix sans aucune justification réelle (modèles visuellement observables). Au contraire, j'applique ZZ et j'en vois les bénéfices (les pédicures sur ZZ sont toujours en tête de liste dans tous les paquets MO). Je pense que la combinaison des deux approches pourrait améliorer le résultat.

La sélection des modèles en fonction de leur importance est un non-sens - j'ai déjà montré que la suppression de différents prédicteurs significatifs sur le même modèle peut améliorer les résultats de l'apprentissage et former de nouvelles relations plus productives et plus stables dans les feuilles de l'arbre. Toute cette "importance" est un principe gourmand dans la construction de l'arbre, qui n'est pas a priori correct, donc j'ai besoin de méthodes d'évaluation distinctes et significatives des prédicteurs - je ne les ai pas encore.

 

Maxim Dmitrievsky:

Tout cela donne quelque chose comme ça, à peu près sans histoires, il suffit d'attendre 10 minutes :

la possibilité d'apporter des améliorations supplémentaires semble douteuse, alors que le modèle permet déjà de calculer plus de 100 % des trajets.

peut-être qu'avec un bon matériel graphique/instrument, tu peux en tirer plus.

Cela semble bien, mais la période du modèle est trop courte, comment se comporte-t-il sur des données d'un an ?

 
Aleksey Vyazmikin:

Les figures montrent le résultat financier (axe des y) du modèle en choisissant différentes probabilités pour la classification binaire (axe des x). Sur l'échantillon test, j'en suis arrivé à la conclusion qu'il faut toujours entrer sur le marché lorsque le signal d'activation apparaît (la formation décide d'entrer ou non sur le marché). Le paradoxe qui en résulte est que l'apprentissage n'entraîne qu'une détérioration du signal d'activation de base et je ne l'aurais pas vu, si je n'avais pas décidé de voir comment le résultat financier change en fonction du déplacement du point de classification sur le segment de probabilité.

Nous avons une approche très différente du problème. Je suis étranger à une description purement mathématique du prix sans aucune justification réelle (modèles visuellement observables). Au contraire, j'applique ZZ et j'en vois les bénéfices (les pédicures sur ZZ sont toujours en tête de liste dans tous les paquets MO). Je pense que la combinaison des deux approches pourrait améliorer le résultat.

La sélection des modèles en fonction de leur importance est un non-sens - j'ai déjà montré que la suppression de différents prédicteurs significatifs sur le même modèle peut améliorer les résultats d'apprentissage et former de nouvelles relations plus productives et plus stables dans les feuilles de l'arbre. Toute cette histoire d'"importance" est un principe d'avidité dans la construction des arbres, qui n'est pas correct a priori. Nous avons donc besoin de méthodes distinctes d'estimation des prédicteurs significatifs - je ne les ai pas encore.

comment, l'importance doit être examinée sur l'échantillon de test, et finie sur l'échantillon de formation. Les importations intégrées classiquement comme le gini mentent toujours, nous devons faire une permutation (randomiser chacun des prédicteurs un par un et regarder l'erreur du modèle), puis rejeter les plus mauvais. Vous devez vous débarrasser au préalable des caractéristiques corrélées, sinon les importations par permutation seront également mensongères. Pas de bêtises, vous obtenez le meilleur modèle possible. Pourquoi essayer de réinventer la roue si rien de mieux n'a été inventé jusqu'à présent.

 
Aleksey Vyazmikin:

Il ne semble pas mauvais, mais la période du modèle est trop courte, comment se comporte-t-il sur des données vieilles d'un an ?

15 minutes, je n'enseigne pas plus longtemps parce que l'attente est plus longue.

Quant au graphique 15 minutes, seul fxsaber est assez bon pour le faire tenir pendant quelques années :)

J'ai un effet de levier sans action, c'est-à-dire qu'aucune stratégie n'est intégrée au modèle dès le départ.
 
Aleksey Vyazmikin:

Je regarde un graphique du profit en fonction du nombre d'arbres dans un modèle (512 modèles).

et il semble que les modèles avec plus d'arbres de plus de 60 ans sont moins susceptibles de perdre du terrain ou l'échantillon est petit...

Voici d'autres graphiques avec différents nombres d'arbres.

Echantillon 7400 pour tous, algorithme rf

Nombre d'arbres 50


L'erreur diminue à mesure que le nombre d'arbres augmente. Il semble augmenter, puis soudainement revenir à zéro.

Nombre d'arbres = 150


Avec 150, la précision augmente mais de façon très modeste - de quelques centièmes.

Augmenter le nombre d'arbres




Conclusion : jusqu'à 50 arbres, il est logique d'augmenter le nombre d'arbres, mais au-delà de 100, cela n'a aucun sens.

Je suis trop paresseux pour le faire maintenant, mais je changeais la taille de l'échantillon.

La taille de l'échantillon jusqu'à 1000 observations affecte fortement la précision du modèle. Mais après 5000, la taille de l'échantillon n'affecte PAS la précision du modèle.


J'en conclus donc que l'erreur n'est pas déterminée par le modèle ou ses paramètres, mais par la combinaison "prédicteurs-cible".

 
SanSanych Fomenko:

Augmentons le nombre d'arbres

J'en conclus donc que l'erreur n'est pas déterminée par le modèle ou ses paramètres, mais par le lien "prédicteurs-cible".

50-100 arbres est recommandé au départ, il n'y a aucun sens à élever autant de classificateurs faibles, je n'ai pas vu d'amélioration non plus.

monte carlo et autres pour aider, sanSanSanych... la construction de paquets n'est pas un truc de l'esprit humain, c'est juste une f... cerveaux
 
Maxim Dmitrievsky:

Il faut regarder les importations sur l'échantillon d'essai, et les adapter sur l'échantillon d'entraînement. Les importations intégrées classiquement comme gini mentent toujours, nous devrions faire une permutation (randomiser chacun des prédicteurs un par un et vérifier l'erreur du modèle), puis écarter les plus mauvais. Vous devez vous débarrasser au préalable des caractéristiques corrélées, sinon les importations par permutation seront également mensongères. Pas de bêtises, vous obtenez le meilleur modèle possible. Pourquoi inventer une bicyclette si rien de mieux n'a été inventé jusqu'à présent.

Honnêtement, je ne comprends pas la méthode - s'agit-il d'écarter les prédicteurs de la formation étape par étape et de comparer les résultats avec et sans ce prédicteur ? Alors que signifie "randomiser" ? Comment décider s'il est mauvais ou non - si le prédicteur vous permet de diviser correctement 1% de l'échantillon et se trouve dans la profondeur moyenne de l'arbre - est-il bon ou mauvais ? Il est peut-être nécessaire de considérer la qualité de la construction de l'arbre avec le prédicteur de la racine, comment il coupe l'échantillon à chaque niveau - peut-être qu'une chute douce du gradient est nécessaire... Bicycle doit inventer, car ce qui est dans le domaine public n'est pas le meilleur de ce qui existe. Par exemple, peut-être devrions-nous diviser l'échantillon non pas par le maximum mais par la moyenne ou par le sigma x ou autre - peut-être les règles seront-elles plus complexes, mais plus stables. À propos, je ne comprends pas pourquoi il n'existe pas de méthode d'entraînement qui utiliserait non seulement des compteurs numériques pour les écarts, mais aussi des prédicteurs logiques et comparatifs ?

MaximDmitrievsky:

15 minutes, je ne m'entraîne pas plus longtemps parce que l'attente est plus longue.

Je ne sais pas... je pense que seul fxsaber a été capable de faire un graphique 15 min. aussi fluide depuis quelques années :)

Je dispose d'un leerning sans action, c'est-à-dire qu'aucune stratégie n'est intégrée au modèle dès le départ.

Avez-vous déjà essayé de créer une stratégie primitive et de former des filtres pour celle-ci, qui donneraient ou refuseraient d'entrer sur le marché?

 
Aleksey Vyazmikin:

Honnêtement, je ne comprends pas la méthode - s'agit-il de retirer les prédicteurs de la formation étape par étape et de comparer les résultats avec et sans ce prédicteur ? Alors que signifie "randomiser" ? Comment décider s'il est mauvais ou non - si le prédicteur vous permet de diviser correctement 1% de l'échantillon et se trouve dans la profondeur moyenne de l'arbre - est-il bon ou mauvais ? Il est peut-être nécessaire de considérer la qualité de la construction de l'arbre avec le prédicteur de la racine, comment il coupe l'échantillon à chaque niveau - peut-être qu'une chute douce du gradient est nécessaire... Il faut inventer, parce que ce qui est dans le domaine public n'est pas le meilleur de ce qui existe. Par exemple, nous devrions peut-être diviser l'échantillon non pas par le maximum mais par la moyenne ou par le sigma x ou autre - les règles seront peut-être plus complexes, mais plus stables. À propos, je ne comprends pas pourquoi il n'existe pas de méthode d'entraînement qui utiliserait non seulement des compteurs numériques pour les écarts, mais aussi des compteurs logiques, comparant les prédicteurs ?

Avez-vous déjà essayé de créer une stratégie primitive et de former pour elle des filtres qui permettent ou interdisent l'entrée sur le marché?

Entraînez d'abord le modèle avec toutes les caractéristiques, sauvegardez les erreurs.

puis randomiser chacun des prédicteurs, disons avec une distribution normale, et vérifier à nouveau l'erreur sur toutes les caractéristiques, y compris celle randomisée (modifiée) et la comparer à celle initiale. Il n'est pas nécessaire de réentraîner le modèle. Et ainsi vérifier chacun des prédicteurs. Si le prédicteur était bon, l'erreur sur l'ensemble de l'échantillon (y compris tous les autres prédicteurs originaux) augmentera considérablement par rapport à l'original. Enregistrez les différences d'erreurs et sélectionnez les meilleures fiches en fonction de celles-ci. Puis, à la fin, ne former que les meilleurs et les mettre en production. Les mauvais prédicteurs sont du bruit pour le modèle, nous n'en avons pas besoin avec leur 1%. Les bons restent généralement 5 à 10, l'importance des autres diminue de manière exponentielle (loi de Zipf).

J'ai essayé d'enseigner les filtres, mais pas beaucoup, je n'y vois pas beaucoup de sens, il vaut mieux tout mettre dans un modèle à la fois

Si vous pouvez, juste au sujet de la sélection des prédicteurs TRÈS compétent(déjà jeté plus tôt)

Beware Default Random Forest Importances
Beware Default Random Forest Importances
  • explained.ai
0.995 worst radius 0.995 mean perimeter 0.994 mean area 0.984 worst perimeter 0.983 worst area 0.978 radius error 0.953 mean concave points 0.944 mean concavity 0.936 worst concave points 0.927 mean compactness 0.916 worst concavity 0.901 perimeter error 0.898 worst compactness 0.894 worst texture 0.889 compactness...
 
SanSanych Fomenko:

Voici les autres graphiques avec différents nombres d'arbres.

Echantillon 7400 pour tous, algorithme rf

Nombre d'arbres 50


L'erreur diminue à mesure que le nombre d'arbres augmente. Il semble augmenter, puis soudainement revenir à zéro.

Nombre d'arbres = 150


Avec 150, la précision augmente mais de façon très modeste - de quelques centièmes.

Augmenter le nombre d'arbres




Conclusion : jusqu'à 50 arbres, il est logique d'augmenter le nombre d'arbres, mais au-delà de 100, cela n'a aucun sens.

Je suis trop paresseux pour le faire maintenant, mais je changeais la taille de l'échantillon.

La taille de l'échantillon jusqu'à 1000 observations affecte grandement la précision du modèle. Mais après 5000, la taille de l'échantillon n'affecte PAS la précision du modèle.


D'où ma conclusion : l'erreur n'est PAS déterminée par le modèle ou ses paramètres, mais par la relation prédicteur-cible.


Je pense qu'il peut y avoir un nombre différent d'arbres pour les forêts aléatoires et les différents types de boosting, et le nombre dépend de la qualité des prédicteurs et des situations, qui peuvent être différentes pour le même objectif (à titre d'exemple - objectif 100 points de profit à partir de n'importe quel point). Il est intéressant de voir quelles combinaisons de feuilles et à quelle fréquence elles sont utilisées pour prendre des décisions - je pense que c'est le genre d'information qui permet de mieux estimer le modèle. Un autre problème est qu'il est impossible de soumettre un modèle stationnaire du marché aux tests et à la formation, ce qui signifie que seule une partie du modèle formé sera utilisée dans les tests et que le modèle doit être estimé par cette partie, alors que l'autre partie peut s'avérer bien meilleure. Et si l'erreur de classification n'est pas égale à la classification correcte modulo (on utilise un chalut et on diminue le coût de l'erreur), l'estimation du modèle devient encore plus compliquée.

 
Maxim Dmitrievsky:

Entraînez d'abord le modèle sur toutes les caractéristiques et sauvegardez les erreurs.

Puis, un par un, randomisez chacun des prédicteurs, disons par une distribution normale, et vérifiez à nouveau l'erreur sur toutes les caractéristiques, y compris celle qui a été randomisée (modifiée), et comparez-la à l'erreur initiale. Il n'est pas nécessaire de réentraîner le modèle. Et ainsi vérifier chacun des prédicteurs. Si le prédicteur était bon, l'erreur sur l'ensemble de l'échantillon (y compris tous les autres prédicteurs originaux) augmentera considérablement par rapport à l'original. Enregistrez les différences d'erreurs et sélectionnez les meilleures fiches en fonction de celles-ci. Puis, à la fin, ne former que les meilleurs et les mettre en production. Les mauvais prédicteurs sont du bruit pour le modèle, nous n'en avons pas besoin avec leur 1%. Les bons restent généralement 5 à 10, l'importance des autres diminue de manière exponentielle (loi de Zipf).

J'ai essayé d'enseigner les filtres, mais pas beaucoup, je n'y vois pas beaucoup de sens, il vaut mieux tout mettre dans un modèle à la fois

Si vous pouvez, juste au sujet de la sélection des prédicteurs TRES compétent(déjà jeté plus tôt)

Merci. La randomisation devrait avoir les mêmes valeurs que pour le prédicteur dans l'échantillon, non ?

Dans l'ensemble, je comprends l'approche, merci, je dois réfléchir à la manière de la mettre en œuvre et de l'essayer.

Malheureusement, je ne peux pas le maîtriser, alors j'écouterai votre paraphrase à l'occasion.

Mais encore une fois, je ne pense pas que ce soit tout à fait juste, car cela dépendra de la proximité de la racine du prédicteur dans l'arbre...