Y a-t-il un modèle dans ce chaos ? Essayons de le trouver ! Apprentissage automatique sur l'exemple d'un échantillon spécifique. - page 18

 
Aleksey Vyazmikin #:

Random est fixe :) Il semble que cette graine soit calculée d'une manière délicate, c'est-à-dire que tous les prédicteurs autorisés pour la construction du modèle sont probablement impliqués, et le fait de changer leur nombre modifie également le résultat de la sélection.

La graine de départ est fixe. Et un nouveau nombre apparaît à chaque appel du CSH. C'est pourquoi le nombre de prédicteurs et le nombre de DST ne tomberont pas sur le même prédicteur qu'avec le nombre total de prédicteurs.

Aleksey Vyazmikin #:

Pourquoi cet ajustement, ou plutôt dans quoi le voyez-vous ? J'ai tendance à penser que l'échantillon de test diffère de l'examen plus que l'examen du train, c'est-à-dire qu'il y a des distributions de probabilité différentes des prédicteurs.

Vous prenez les meilleures variantes de l'examen, en espérant qu'elles seront bonnes pour le test. Vous sélectionnez les prédicteurs sur la base du meilleur examen. Mais ils ne sont les meilleurs que pour l'examen.

Aleksey Vyazmikin #:

Qu'est-ce que la métrique "err_" ?

err_ oob - erreur sur l'OOB (vous avez l'examen), err_trn - erreur sur le train. La formule permet d'obtenir une erreur commune aux deux sites d'échantillonnage.

D'ailleurs, au cours de la discussion, nous avons interverti le test et l'examen. Au départ, nous avions prévu des contrôles intermédiaires sur le test et des contrôles finaux sur l'examen. Mais le contexte indique clairement de quoi il s'agit, même si les noms ont été changés.

 
elibrarius #:

Le numéro de départ est fixe. Un nouveau numéro apparaît ensuite à chaque appel du DST. Par conséquent, à différents nombres de prédicteurs et nombres de DST, le prédicteur ne tombera pas sur le même prédicteur qu'à un nombre complet de prédicteurs.

Nah, les variantes sont reproduites si les prédicteurs utilisés pour l'entraînement sont laissés au même nombre.

elibrarius #:

Eh bien, vous prenez les meilleures variantes de l'examen, en espérant qu'elles seront bonnes pour le test. Les prédicteurs sont sélectionnés par le meilleur examen. Mais ils ne sont les meilleurs que pour l'examen.

Il se trouve que cette variante était la plus équilibrée - avec un bénéfice décent sur le test et l'examen. L'image ci-dessous montre le modèle initialement sélectionné - "Was" et le modèle le plus équilibré après 10 000 entraînements - "Became". En général, le résultat est meilleur et moins de prédicteurs sont utilisés, ce qui permet d'éliminer le bruit. La question qui se pose ici est de savoir comment éviter ce bruit avant l'entraînement.


La logique est donc telle que la formation s'arrête sur le test, de sorte qu'il devrait y avoir plus de chances d'obtenir un résultat positif que dans l'échantillon qui ne participe pas du tout à la formation, de sorte que l'accent est mis sur ce dernier.

elibrarius #:

err_ oob - erreur sur OOB (vous avez l'examen), err_trn - erreur sur trn. La formule permet d'obtenir une erreur commune aux deux sites d'échantillonnage.

Enfin, je ne sais pas comment "err" est compté - est-ce la précision ? Et pourquoi un examen et non un test, parce que dans l'approche de base, l'examen ne permet pas de savoir.

elibrarius #:

D'ailleurs, nous avons échangé test et examen dans la discussion. Au départ, il était prévu d'avoir des tests intermédiaires sur le test et des tests finaux sur l'examen. Mais le contexte montre clairement ce qu'il en est, même si les noms ont été changés.

Je n'ai rien changé (peut-être me suis-je décrit moi-même quelque part ?) - c'est juste comme ça - on train - formation, test - contrôle de l'arrêt de la formation, et exam - section qui n'est pas impliquée dans un type de formation.

J'évalue simplement l'efficacité de l'approche par la moyenne de tous les modèles, y compris le bénéfice moyen - il est plus probable d'obtenir que les bords avec un bon résultat.

 
Aleksey Vyazmikin #:
Et puis il y a la question de savoir comment éviter ce bruit avant de commencer à s'entraîner.

Apparemment, c'est impossible. Il s'agit de filtrer le bruit et d'apprendre à partir des données correctes.

Aleksey Vyazmikin #:

Je veux dire que je ne sais pas comment "err" est considéré - est-ce la précision ?

C'est un moyen d'obtenir une erreur combinée/résumée sur un parcours avec un test. Tout type d'erreur peut être additionné. Et (1-précision) et RMS et AvgRel et AvgCE etc.

Aleksey Vyazmikin #:

Je n'ai rien changé(peut-être me suis-je décrit quelque part?) - c'est ainsi que les choses se passent - sur le train - formation, sur le test - contrôle de l'arrêt de la formation, et sur l'examen - section non impliquée dans un quelconque type de formation.

Il m'a semblé, d'après les photos, qu'examen signifiait test
Par exemple ici.

Et dans le tableau ci-dessus, les résultats de l'examen sont meilleurs que ceux du test. C'est certainement possible, mais ce devrait être l'inverse.

 
elibrarius #:

Apparemment, non. C'est là que réside le défi : il s'agit de se débarrasser du bruit et d'apprendre à partir des bonnes données.

Non, il doit y avoir un moyen, sinon tout cela est inutile/aléatoire.

elibrarius #:

Il s'agit d'un moyen d'obtenir l'erreur combinée/résumée sur un parcours avec un test. N'importe quel type d'erreur peut être additionné. Et (1-précision) et RMS et AvgRel et AvgCE etc.

J'ai compris, mais cela ne fonctionne pas avec mes données - il devrait y avoir une certaine corrélation au moins :)

elibrarius #:

Il m'a semblé, d'après les images, que l'examen signifiait le test
Par exemple ici

Et dans le tableau ci-dessus, les résultats de l'examen sont meilleurs que ceux du test.

Oui, il s'avère que l'examen est plus susceptible de rapporter plus d'argent aux modélistes - je ne comprends pas tout à fait la situation moi-même.

Malheureusement, j'ai remarqué qu'à un moment donné, j'ai mélangé l'échantillon total (lignes) et maintenant les exemples de 2022 sont dans le train :(.

Je vais tout refaire - je pense que j'aurai le résultat dans quelques semaines - voyons si l'image globale change.

 
Aleksey Vyazmikin #:
Malheureusement, j'ai remarqué qu'à un moment donné, j'ai mélangé l'échantillon total (lignes), et maintenant le train comprend des exemples de 2022 :(

Je vais le refaire - je pense que j'aurai le résultat dans quelques semaines - pour voir si l'image globale change.

Cela ne fait aucune différence que l'évaluation ait été faite par examen ou par test. L'essentiel est que le site d'évaluation n'ait été utilisé ni dans la formation ni dans l'évaluation initiale.

2 semaines. Je suis étonné de votre endurance. Trois heures de calculs m'ennuient trop..... Et j'ai déjà passé 5 ans au total sur le MO, soit à peu près autant que vous.

Bref, nous commencerons à gagner quelque chose à la retraite )))) Peut-être.

 
Aleksey Vyazmikin #:

Malheureusement, j'ai remarqué qu'à un moment donné, j'ai mélangé l'échantillon global (lignes) et maintenant le train est peuplé d'exemples de 2022 :(

J'ai tout collé dans un tableau séquentiel. Et ensuite je sépare la bonne quantité de ce tableau. De cette façon, rien n'est mélangé.

 
elibrarius #:

Peu importe que l'évaluation se soit faite par examen ou par test. L'essentiel est que le site d'évaluation n'ait été utilisé ni dans la formation ni dans l'évaluation initiale.

Je me demande s'il vaut mieux faire la formation finale comme Maxim - en prenant un échantillon préhistorique comme contrôle, ou s'il vaut mieux prendre tout l'échantillon disponible et limiter le nombre d'arbres, comme c'est le cas en moyenne dans les meilleurs modèles.

elibrarius #:

2 semaines... Je suis étonné de votre endurance. Je trouve 3 heures de calculs ennuyeux aussi..... Et j'ai déjà passé un total de 5 ans sur le MO, à peu près autant que vous.

Bien sûr, on veut toujours obtenir des résultats plus rapidement. J'essaie de charger le matériel de manière à ce que mes calculs n'interfèrent pas avec d'autres choses - je n'utilise souvent pas l'ordinateur de travail principal. En parallèle, je peux mettre en œuvre d'autres idées dans le code - je trouve des idées plus rapidement que je n'ai le temps de les vérifier dans le code.

elibrarius #:

En bref, nous commencerons à gagner quelque chose à la retraite )))) Peut-être.

Je suis d'accord - la perspective est triste. Si je ne voyais pas de progrès dans mes recherches, même s'ils sont lents, j'aurais probablement déjà terminé mon travail.

 
elibrarius #:

J'ai tout collé dans un tableau séquentiel. Puis, à partir de ce tableau, je sépare la bonne quantité. Ainsi, rien ne se mélange.

Oui, j'ai converti l'échantillon en fichier binaire, et dans le script j'ai mis une case à cocher par accident, apparemment, responsable du mélange de l'échantillon - ce n'est donc pas un problème, et CatBoost exige 3 échantillons séparés - ils n'ont pas fait la sélection sur la gamme de lignes, bien qu'ils aient une validation croisée intégrée.

 
Aleksey Vyazmikin #:

Je me demande également s'il est préférable de procéder à l'entraînement final comme Maxim - en prenant un échantillon préhistorique comme contrôle - ou s'il est préférable de prendre tout l'échantillon disponible et de limiter le nombre d'arbres, comme c'est le cas en moyenne dans les meilleurs modèles.

Pour moi, le pré-entraînement et les tests sont l'occasion de sélectionner en moyenne les meilleurs hyperparamètres (nombre d'arbres, etc.) et prédicteurs. Et même sans test, on peut s'entraîner sur ces modèles en formation et passer immédiatement au trading.

L'idée de l'échantillonnage préhistorique fonctionnera si les modèles ne changent pas, peut-être. Mais il y a un risque qu'ils changent. Je préfère donc ne pas prendre de risques et tester les échantillons futurs.

Une autre question est de savoir à quand remonte cet échantillon préhistorique : à six mois ou à 15 ans ? Il y a six mois, cela pourrait fonctionner, mais le marché d'il y a 15 ans n'est pas le même que celui d'aujourd'hui. Mais ce n'est pas certain. Il existe peut-être des modèles qui fonctionnent depuis des décennies.
 

Je décrirai les résultats obtenus en utilisant le même algorithme que celui que j'ai décrit ici, mais avec l'échantillon non mélangé, c'est-à-dire en restant dans l'ordre chronologique.

La seule chose que j'ai changée est que l'entraînement de 10000 modèles a été effectué non pas sur l'échantillon entier avec les prédicteurs exclus, mais sur un échantillon reformé dans lequel les colonnes avec les prédicteurs exclus ont été supprimées, ce qui a accéléré le processus d'entraînement (apparemment, le pompage d'un grand fichier prend beaucoup de temps). Grâce à ces changements, j'ai pu effectuer de manière cohérente 6 étapes de sélection des prédicteurs.

Figure 1 : Histogramme du bénéfice sur l'examen de l'échantillon après l'entraînement de 100 modèles sur tous les prédicteurs de l'échantillon.


Figure 2 : Histogramme du bénéfice sur l'échantillon d'examen après l'entraînement de 10 000 modèles sur les prédicteurs sélectionnés de l'échantillon - étape 1.


Figure3 : Histogramme des bénéfices sur l'échantillon d'examen après l'entraînement de 10 000 modèles sur les prédicteurs sélectionnés de l'échantillon - étape 2.


Figure 4 : Histogramme des bénéfices pour l'échantillon d'examen après l'entraînement de 10 000 modèles sur les prédicteurs sélectionnés pour l'échantillon - étape 3.

Figure 5 : Histogramme des bénéfices pour l'échantillon d'examen après l'entraînement de 10 000 modèles sur les prédicteurs de l'échantillon sélectionné - étape 4.

Figure 6 : Histogramme des bénéfices pour l'échantillon d'examen après l'entraînement de 10k modèles sur les prédicteurs d'échantillons sélectionnés - étape 5.


Figure 7 : Histogramme de profit pour l'échantillon d'examen après l'entraînement de 10k modèles sur les prédicteurs d'échantillons sélectionnés - étape 6.



Figure 8 : Tableau des caractéristiques des modèles sélectionnés pour former les échantillons suivants avec un nombre décroissant de prédicteurs (caractéristiques).


Considérons le modèle présentant les caractéristiques suivantes, obtenu à la sixième étape de la sélection des prédicteurs.


Figure 9 : Caractéristiques du modèle.

Figure 10. Visualisation du modèle sur l'échantillon d'examen sous la forme d'une distribution de la probabilité de classification - axe x - probabilités obtenues à partir du modèle, et axe y - pourcentage de tous les échantillons.

Figure 11. Bilan du modèle sur l'échantillon d'examen.


Comparons maintenant les prédicteurs des modèles raisonnablement bons et extrêmement mauvais obtenus à l'étape 6 de la sélection des prédicteurs.


Figure 12. Comparaison des caractéristiques des modèles.

Pouvons-nous maintenant voir quels prédicteurs ont un si mauvais effet sur le résultat financier et gâchent la formation ?

Figure 13. Pondération des prédicteurs dans les deux modèles.


La figure 13 montre que presque tous les prédicteurs disponibles sont utilisés, à l'exception d'un seul, mais je doute que ce soit là l'origine du problème. Ce n'est donc pas tant une question d'utilisation, mais plutôt de séquence d'utilisation dans la construction du modèle ?

J'ai comparé deux tableaux, en attribuant un nombre ordinal de signification au lieu d'un indice, et j'ai vu comment cette signification est classée différemment dans les modèles.

Figure 14 : Tableau comparant l'importance (l'utilisation) des prédicteurs dans les deux modèles.

Puits et histogramme pour une meilleure visualisation - les écarts en moins signifient que le prédicteur du second modèle (non rentable) a été utilisé plus tard, et en plus - plus tôt.


Figure 15. Écarts de signification des prédicteurs dans les modèles.

On peut voir qu'il y a de fortes déviations, c'est peut-être le cas, mais comment le découvrir/le prouver ? Une approche complexe de comparaison des modèles avec la référence est peut-être nécessaire - des idées ?

Existe-t-il une sorte d'indice de confusion pour décrire le biais global, peut-être en tenant compte de l'importance des prédicteurs pour le premier modèle - c'est-à-dire avec un coefficient décroissant ?


Quelles conclusions peut-on tirer ?

Voici ce que je pense :

1. Les résultats étaient bien meilleurs dans l'échantillon passé, je suppose que cela est dû aux informations qui ont "fuité" sur les événements futurs en mélangeant la chronologie de l'échantillon. La question est de savoir si les modèles seront plus stables avec un échantillon mélangé ou un échantillon normal.

2. Il est nécessaire de construire une structure de signification des prédicteurs pour leur application ultérieure dans les modèles, c'est-à-dire qu'en plus des chiffres, il est nécessaire d'établir une logique, sinon la dispersion des résultats des modèles est trop importante, même pour un petit nombre de prédicteurs.