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

 

Nous avons parlé précédemment de la possibilité théorique de supprimer les valeurs bruitées d'un tableau, voici le modèle original

et ici j'ai supprimé le bruit de 0,01 à -0,01 d'un tableau avec des poids de réponse d'arbre binaire

Le gain est légèrement inférieur, mais la performance relative s'est améliorée.

 

Hm, supprimé (valeurs nulles) déjà des arbres binaires de -0.02 à 0.02

il semble qu'il n'y ait pas de progrès faible, ce qui signifie qu'il y a un noyau de rationalité dans tout cela - des recherches supplémentaires sont nécessaires.

 
Aleksey Vyazmikin:

En termes très primitifs, le premier arbre n'a aucune réponse à l'échantillon, il renvoie zéro, et le quatrième arbre a cette réponse et compte une "probabilité" de 0,6 - techniquement, il a corrigé l'erreur du premier arbre, mais il a en fait révélé une connexion qui n'existait pas du tout auparavant.

L'erreur du premier arbre peut être non seulement 0, mais aussi 1.

C'est-à-dire que si le premier arbre a prédit 1, mais qu'en fait il était 0, alors les arbres suivants devraient diminuer le total de 1 à 0. Donc 2,3 etc. arbres feront une prédiction négative afin de diminuer 1 du premier arbre à 0 après N étapes par plusieurs soustractions.

 
elibrarius:

L'erreur du premier arbre peut être non seulement 0, mais aussi 1.

C'est-à-dire que si le premier arbre a prédit 1, mais qu'en fait il y a 0, alors les arbres suivants devraient réduire le total de 1 à 0. C'est-à-dire que les arbres 2,3 etc. donneront une prédiction négative pour réduire 1 du premier arbre à 0 après N étapes par plusieurs soustractions.

Bien sûr, je suis d'accord. Mais cela ne change rien à l'essentiel : l'important est le modèle que l'arbre va trouver, et l'interprétation de ce modèle est le travail d'un algorithme distinct.

 
Aleksey Vyazmikin:

Et je ne connais pas la communauté, c'est-à-dire que je ne sais pas comment font les autres personnes dans d'autres régions ?

L'extraction de données me semble logique, car je cherche un modèle de comportement humain (ou un algorithme) à l'aide du MO, il peut y avoir de nombreux modèles de comportement de ce type et ils peuvent être indépendants, il est donc logique d'en extraire autant que possible, car il est impossible de les généraliser tous ensemble. Et pour ceux qui considèrent le marché comme un tout, le résultat d'un travail collectif, une sorte d'organe de vote sans règles, ils cherchent probablement le bon modèle pour décrire le comportement du marché en tant qu'organisme distinct.

Comment pouvez-vous ne pas savoir quand vous en faites partie ?)

Je partage peut-être, car le but initial était de faire quelque chose comme une IA qui ramasse tout elle-même, sans routine manuelle. Routine uniquement lors de la conception d'une telle chose

Je ne peux pas m'imaginer parcourir manuellement des centaines ou des milliers de modèles et y sélectionner quelque chose. Au contraire, je veux oublier l'"invention" des CT comme un mauvais rêve.

 
Maxim Dmitrievsky:

Comment pouvez-vous ne pas savoir quand vous en faites partie ?)

Je partage peut-être, car le but initial était de faire quelque chose comme une IA qui abat tout elle-même, sans corvée manuelle. Routine uniquement lors de la conception d'une telle chose

Je ne peux pas m'imaginer parcourir manuellement des centaines ou des milliers de modèles et y sélectionner quelque chose. Au contraire, je veux oublier "l'invention" du TC comme un mauvais rêve.

Et je n'ai aucune idée de la façon d'analyser chaque modèle séparément - c'est pourquoi j'ai mis l'accent sur le traitement par lots. Les modèles individuels doivent être analysés en détail pour améliorer l'algorithme global du cycle de création de modèles, pour trouver de nouvelles idées.

Le problème est que lorsque vous avez des centaines de milliers de variantes de modèles qui donnent des résultats totalement différents, il est difficile de comprendre ce qu'il faut faire pour améliorer les résultats - c'est là que je rencontre le plus gros problème. Au début, j'obtiens un modèle intéressant avec 4 prédicteurs et il me semble qu'il n'y a aucun sens à ajouter plus de prédicteurs et seulement plus de modèles devraient être générés, puis au contraire j'utilise beaucoup de prédicteurs et l'influence de l'échantillon d'entraînement a plus, plus beaucoup de paramètres pour l'entraînement avec CatBoost lui-même. C'est pourquoi je suis enclin à générer de nombreux modèles et à en conserver 2 ou 3 sur 100 000 pour les étudier de manière plus approfondie.

 
Aleksey Vyazmikin:

Je n'ai aucune idée de la manière d'analyser chaque modèle séparément - d'où l'importance du traitement par lots. Le problème est que lorsque vous avez des centaines de milliers de variantes de modèles qui donnent des résultats complètement différents, il est difficile de savoir quoi en faire.

Le problème est que lorsque vous avez des centaines de milliers de variantes de modèles qui donnent des résultats totalement différents, il est difficile de comprendre ce qu'il faut faire pour améliorer les résultats - c'est là que je rencontre le plus gros problème. Au début, j'obtiens un modèle intéressant avec 4 prédicteurs et il me semble qu'il n'y a aucun sens à ajouter plus de prédicteurs et seulement plus de modèles devraient être générés, puis au contraire j'utilise beaucoup de prédicteurs et l'influence de l'échantillon d'entraînement a plus, plus beaucoup de paramètres pour l'entraînement avec CatBoost lui-même. C'est pourquoi je suis enclin à penser qu'il est nécessaire de générer de nombreux modèles et d'en sauvegarder 2-3 pour chaque 100k, et il y a déjà plus de détails à étudier.

Oui, comme ça, il est souhaitable d'automatiser autant que possible, qu'ensuite il reste un choix banal qui est plus préférable, prendre une tasse de café

C'est difficile à faire, j'en conviens, mais il s'agira d'une IA et non d'un classificateur ordinaire.

Quant au dernier point, il existe une librairie AutoML - un réseau neuronal sélectionne le meilleur réseau neuronal ou ensemble de modèles pour une tâche particulière, c'est cool aussi. Pas encore utilisé.
 
Maxim Dmitrievsky:

Oui, quelque chose comme ça, de préférence automatisé autant que possible, de sorte qu'après, il y ait un choix trivial de celui que vous préférez, autour d'une tasse de café.

difficile à faire, je suis d'accord, mais alors ce serait une IA, pas un classificateur ordinaire.

Maintenant, après l'entraînement, les résultats sont traités par le script (sans interprète du modèle - par le calcul de CatBoost), et sur 100k modèles, je récupère ceux qui répondent aux critères définis (critères de modèle et de transaction) pour les trois échantillons, nous obtenons environ 50-100 modèles, je les convertis pour les afficher dans le terminal et je fais un nouveau passage pour une sélection plus détaillée. En fait, il se peut que je ne les lance même pas dans le terminal, si je sais exactement ce que je veux, mais pour l'instant je cherche des critères de sélection et je pense qu'il est utile de regarder visuellement différents modèles. Je peux enregistrer les courbes d'équilibre avec le script, mais je ne sais pas comment travailler avec les graphiques - je n'arrive toujours pas à comprendre.

Je ne sais pas si en Python on peut créer plusieurs modèles à la fois, mais si cela vous intéresse, je peux vous envoyer les bâtons, que j'utilise pour le faire.

 
Aleksey Vyazmikin:

Maintenant, après l'entraînement, les résultats sont traités par le script (sans l'interpréteur de modèle - basé sur les résultats de CatBoost), et sur 100k modèles, j'obtiens ceux qui répondent aux critères (critères de modèle et de transaction) pour les trois échantillons, j'obtiens environ 50-100 modèles, je les convertis pour la lecture dans le terminal et je fais un deuxième passage là pour une sélection plus détaillée. En fait, il se peut que je ne les lance même pas dans le terminal, si je sais exactement ce que je veux, mais pour l'instant je cherche des critères de sélection et je pense qu'il est utile de regarder visuellement différents modèles. Je peux enregistrer les courbes d'équilibre avec le script, mais je ne sais pas comment travailler avec les graphiques - je n'arrive toujours pas à les comprendre.

Je ne sais pas si en python on peut créer plusieurs modèles à la fois, mais si cela vous intéresse, je peux vous envoyer les bâtons, que j'utilise pour le faire.

vous pouvez tout faire en python et plus encore.

Pas encore, non merci... Je suis juste en train de lire des livres intéressants. J'ai aussi utilisé catbust en python, je l'ai comparé à forest, je n'ai pas vu de grandes améliorations, mais il est configurable et fonctionne bien tout seul. En fait, en quelques lignes.

 
Maxim Dmitrievsky:

AutoML - un réseau neuronal sélectionne le meilleur réseau neuronal ou ensemble de modèles pour une tâche particulière, également cool. Je ne l'ai pas encore utilisé.

J'ai fait quelque chose de similaire - la question porte à nouveau sur les prédicteurs et les critères de sélection (cible). Maintenant (plusieurs mois plus tard), finalisez toutes les idées avec des prédicteurs et revenez à ce sujet. Et le résultat est là en général, j'ai posté précédemment comment de tels modèles fonctionnent, mais j'ai besoin de différents échantillons avec une dispersion différente, de préférence à partir de différents modèles.

Et qu'utilise AutoML comme prédicteurs et comme cible ?