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

 
mytarmailS:

Alexei, tu devrais apprendre python ou r-cu, essayer d'y construire quelque chose... croyez-moi, un millier de questions disparaîtraient...

Quel bon souhait, et il serait utile d'apprendre quelques langues étrangères, et de maîtriser toutes les autres compétences, qui ne dépendraient pas des autres. Cependant, je ne suis pas doué pour tout, et je me rends compte que je n'obtiendrai pas de résultats élevés en codage, et que je dépenserai trop d'efforts.

mytarmailS:

Quel est l'intérêt de vérifier l'efficacité des méthodes de sélection des caractères si elles ont déjà fait leurs preuves et qu'elles fonctionnent ?

La question ici portait plutôt sur l'efficacité de la méthode, c'est-à-dire de combien elle peut finalement améliorer le résultat par rapport à l'alimentation de l'échantillon sans exclure les prédicteurs. C'est-à-dire l'expérience réelle.


mytarmailS:

Le problème n'est pas dans le rejet des traits, il est dans les traits eux-mêmes, si vous nourrissez 10 indicateurs, puis sélectionnez jusqu'à ce que le visage soit bleu et vous obtiendrez le même résultat de N'IMPORTE QUEL algorithme de sélection...

J'ai environ 5 prédicteurs pour le moment, c'est pourquoi cette approche est intéressante.

mytarmailS:

Vous avez entendu dans la vidéo qu'ils sélectionnent parmi des dizaines de milliers de caractéristiques, et ils mentionnent même MSUA où ils parlent de créer et d'énumérer des milliards de caractéristiques.

C'est de cela que nous devrions parler - des systèmes qui génèrent des millions d'idées et les vérifient automatiquement, c'est ça l'essence, ce sont des décisions individuelles, et la sélection des caractéristiques est la petite partie finale du processus et il n'y a rien d'intéressant là-dedans, vous prenez n'importe quel algorithme et vous allez de l'avant, il n'y a rien à dire, ce n'est tout simplement pas intéressant.

Je travaille simplement avec un grand nombre de caractéristiques, et je développe des méthodes pour les générer à partir d'un modèle. Le processus de binarisation des caractéristiques, éventuellement en conservant différents indicateurs dans le nouveau prédicteur, ce qui donnerait 50000 caractéristiques sur 5000, et elles doivent être examinées pour les relations mutuelles afin de créer de nouvelles caractéristiques saturées à partir desquelles le modèle sera déjà construit.

En somme, je ne sais pas pourquoi une vision aussi primitive de mon activité...

 
Aleksey Vyazm

Quoi qu'il en soit, je ne sais pas pourquoi vous avez une vision si primitive de mes performances...

Alexey, ne comprends-tu pas que tous tes 5k signes binaires peuvent être remplacés par 2-3 composants principaux, c'est-à-dire 2-3 signes et tout)) mais il faut le faire pour savoir...

Vous ne comprenez pas non plus que votre modèle cool avec 5 000 caractéristiques peut n'être qu'une caractéristique parmi des centaines d'autres pour un modèle mieux classé, qui à son tour sera une caractéristique pour un modèle encore mieux classé...

Ce sont les catégories auxquelles je pense actuellement.


Regardez Ivakhnenko MHUA, comme les concepts sont très élaborés et profonds, quand je le lis, je me sens comme un élève de première année en MO...

 
mytarmailS:
Alexei, comment ne peux-tu pas comprendre que tous tes 5k attributs binaires peuvent être remplacés par 2-3 -composants majeurs, c'est-à-dire 2-3 attributs et tous)) mais il faut le faire pour savoir...

D'où tirez-vous de telles conclusions sur ma compréhension ou non ? Le sujet des MGUA n'a pas été abordé par moi car il n'y a pas d'expérience réelle de son application. Êtes-vous prêt à condenser mes signes en 2-3 ? Je serais intéressé de le voir et de le comparer à mon approche. Comme vous avez déjà tout prévu, je ne pense pas que ce soit un problème, n'est-ce pas ?

mytarmailS:
De plus, ne comprenez-vous pas que votre modèle tout à fait cool avec 5k attributs peut n'être qu'un attribut parmi des centaines d'autres pour un modèle mieux classé, qui à son tour sera un attribut pour un modèle encore mieux classé....

Ce sont les catégories auxquelles je pense maintenant.

Je l'ai mis en pratique depuis longtemps, en retirant les feuilles des modèles - elles sont un composant saturé pour les modèles plus globaux.

Une grande partie de ce que j'ai inventé porte d'autres noms et est implémenté pour un usage général, mais quand vous faites tout à partir de zéro, il y a une compréhension sous-jacente de comment et pourquoi cela fonctionne, pas seulement de la théorie.

 
mytarmailS:
J'ai lu le même Ivakhnenko MSUA, à quel point les concepts sont élaborés et profonds, quand je le lis je me sens comme un élève de première année en MO...

Je dois faire des choses - j'ai déjà assez de pensées à vérifier, je dois coder et vérifier.

 
mytarmailS:

Vous ne vous rendez pas compte non plus que votre modèle tout à fait cool avec 5 000 caractéristiques peut n'être qu'une caractéristique parmi des centaines d'autres pour un modèle mieux classé, qui à son tour sera une caractéristique pour un modèle encore mieux classé...

Fan du film Matrix ?

 

J'ai réfléchi à la manière d'améliorer la méthode de sélection des prédicteurs/attributs/caractéristiques par l'analyse du modèle résultant.

J'ai quelques idées pour la mise en œuvre de l'algorithme, mais j'ai décidé de les partager avec la communauté respectée, peut-être y aura-t-il des critiques constructives ou des ajouts/affinements à l'algorithme avant que nous commencions à travailler sur la mise en œuvre de cet algorithme. C'est intéressant de penser que rien ne fonctionnera avec la justification.


Sélection des prédicteurs par fréquence d'utilisation (importance des caractéristiques) lors de la création d'un modèle CatBoost
.

L'idée est que chaque algorithme a ses propres particularités de construction d'arbre et nous allons sélectionner les prédicteurs qui sont utilisés plus souvent par l'algorithme, dans ce cas CatBoost.

Cependant, pour estimer l'uniformité sur l'échelle de temps, nous utiliserons plusieurs échantillons et agrégerons leurs données dans un seul tableau. Cette approche permet d'éliminer les événements aléatoires qui ont une forte influence sur le choix du prédicteur dans l'un des modèles. Les régularités sur lesquelles le modèle est construit doivent apparaître dans tout l'échantillon, ce qui peut faciliter une classification correcte sur les nouvelles données. Cette caractéristique est applicable aux données du marché, c'est-à-dire aux données non complètes, y compris la cyclicité cachée, c'est-à-dire non temporelle, mais événementielle. Ce faisant, il est souhaitable de pénaliser les prédicteurs qui ne se trouvent pas dans les 30-50% supérieurs dans l'un des graphiques, ce qui permettra de sélectionner les prédicteurs les plus fréquemment demandés pour les modèles sur différents horizons temporels.

De plus, pour réduire le facteur aléatoire, nous devrions utiliser des modèles avec différentes valeurs Seed. Je pense qu'il devrait y avoir entre 25 et 100 modèles de ce type. Je ne sais pas encore si le coefficient doit être ajouté en fonction de la qualité du modèle obtenu ou simplement pour faire la moyenne de tous les résultats par prédicteurs, mais je pense que nous devrions commencer par le plus simple, c'est-à-dire faire la moyenne.

La question de l'utilisation d'une table de quantification est importante, elle peut être cruciale dans la sélection des prédicteurs. Si la table n'est pas fixe, chaque modèle créera sa propre table pour le sous-échantillon, ce qui rendra impossible la comparaison des résultats. La table doit donc être commune à tous les échantillons.

Il est possible d'obtenir une table de quantification :

  1. En définissant des hyperparamètres pour CatBoost sur le type et le nombre de partitions en quanta de l'ensemble de l'échantillon d'entraînement, et en enregistrant les résultats en csv.
  2. Définir les hyperparamètres pour CatBoost par type et nombre de partitions en quanta en sélectionnant une des zones d'échantillonnage, disons la meilleure, et enregistrer les résultats en csv.
  3. Obtenez un tableau en utilisant un script séparé qui sélectionne les meilleurs choix à partir d'un ensemble de tableaux.
Les tables obtenues précédemment sont utilisées pour chaque échantillon par le biais d'un chargement forcé des tables pendant la formation.
 
Vous pouvez connecter des valeurs de shap à la botte et voir l'interaction des caractéristiques dans la sortie sur n'importe quelles données, c'est pour ceux qui aiment creuser dans les sous-vêtements, comme Alexei :) Il existe également des bibliothèques similaires, semblables à Lime et indépendantes du modèle. Bien sûr, si vous analysez des centaines de signes sans signification, alors toute entreprise de ce type est vouée à l'échec. C'est une tâche simple et personne ne vous la fera gratuitement, parce que c'est une incroyable perte de temps dont le résultat est connu.
 
Maxim Dmitrievsky:
Vous pouvez connecter les valeurs shap à bootstrap et voir l'interaction des caractéristiques dans la sortie sur n'importe quelles données, c'est pour ceux qui aiment creuser dans les sous-vêtements, comme Alexey :)

La question de la métrique est ouverte, il y a différentes variantes - nous devrions essayer, laquelle est la meilleure - l'impact sur le modèle, le nombre de fractionnements, le nombre d'exemples corrects après fractionnement - les métriques sont différentes. La question est de savoir si leur utilisation est correcte pour la tâche à accomplir. D'ailleurs, si je me souviens bien, lesvaleurs shap ne pouvaient pas être utilisées dans les premières versions de la ligne de commande, mais de cette façon, vous pouvez créer un script pour la visualisation.

 
Maxim Dmitrievsky:
Bien sûr, si vous analysez des centaines de signes sans signification, alors toute tentative de ce genre est vouée à l'échec. Il s'agit d'une corvée simple, et il est peu probable que quelqu'un la fasse gratuitement pour vous, car c'est un incroyable facteur de perte de temps dont le résultat est connu.

Pourquoi ce pessimisme - le but est précisément de générer un ensemble d'attributs, en théorie adaptés à n'importe quelle cible/stratégie de base et de sélectionner les meilleurs d'entre eux pour une cible particulière.

Vous doutez de l'augmentation de la qualité de la classification après manipulation ?
 
Aleksey Vyazmikin:

Pourquoi ce pessimisme - le but est précisément de générer un ensemble d'attributs, en théorie adaptés à n'importe quelle cible/stratégie de base et de sélectionner les meilleurs d'entre eux pour une cible particulière.

Vous doutez du gain de qualité de la classification après manipulation ?
Je ne vois pas très bien pourquoi cela pourrait fonctionner.