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

 
Yury Reshetov:
Eh bien, la durabilité est obtenue en empêchant un éventuel sur-apprentissage. Et un échantillon d'entraînement déséquilibré est une cause potentielle de surentraînement pour les classes peu représentatives. Après tout, l'algorithme d'apprentissage essaie d'agir comme il l'entend, et non comme il le doit pour augmenter la généralisabilité. Si l'échantillon n'est pas équilibré, il minimisera les erreurs d'apprentissage sur les classes les moins représentatives, car les exemples pour ces classes sont peu nombreux et il est plus facile de les apprendre par cœur plutôt que de généraliser. Après un tel apprentissage par cœur, il n'y a rien d'étonnant à ce qu'en dehors de l'échantillon d'entraînement, les erreurs de l'algorithme aient le plus de chances de se produire dans des classes qui ne sont pas représentatives.
Je n'ai rien contre le fait d'équilibrer l'échantillon de formation. Je n'ai rien contre le fait de prendre un sous-échantillon aléatoire pour la validation sans couper par les dates. Cela surestimerait la métrique de la validation.
 
Alexey Burnakov:

Le raisonnement est simple. Dans la vie réelle, personne ne vous autorisera à prendre un échantillon mixte contenant des observations du futur pour évaluer la qualité des transactions réelles. Toutes les observations iront après le jour X.

Par conséquent, en prenant un échantillon mixte en validation (sans séparation des dates), vous surestimez la métrique de qualité en validation. C'est tout. Il y aura alors des surprises désagréables.

Qu'est-ce que la pensée a à voir avec ça ? La pensée est subjective. La pensée peut être à la fois correcte et délibérément fausse. Parce que l'imagination est problématiquement limitée. Le critère de vérité est toujours l'expérience.

Prenez deux échantillons d'entraînement, l'un pré-équilibré et l'autre fortement déséquilibré. Entraînez l'algorithme sur les deux échantillons et mesurez la capacité de généralisation sur les parties test. Ensuite, comparez la capacité de généralisation. Celui qui donne la meilleure capacité de généralisation sera le critère de vérité.

Sinon, nous ne ferons que penser et spéculer au point de perdre le pouls. Après tout, le désaccord naît du débat, la vérité naît de l'expérience.

J'en ai donc fini avec la discussion sur le sujet de l'échantillon de formation équilibré. Sinon, ce refrain peut continuer indéfiniment, car il y a deux opinions différentes et continuer à mesurer qui de nous pense le plus correctement est une perte de temps.

 
Yury Reshetov:
Eh bien, la stabilité est obtenue en évitant le surentraînement. Et un échantillon de formation déséquilibré est une raison potentielle de surentraînement pour les classes peu représentatives. Après tout, l'algorithme d'apprentissage essaie d'agir comme il l'entend, et non comme il le doit pour augmenter la généralisabilité. Si l'échantillon n'est pas équilibré, il minimisera les erreurs d'apprentissage sur les classes les moins représentatives, car les exemples pour ces classes sont peu nombreux et il est plus facile de les apprendre par cœur plutôt que de généraliser. Après un tel apprentissage par cœur, il n'est pas surprenant qu'en dehors de l'échantillon d'entraînement, les erreurs de l'algorithme dans les classes les moins représentatives soient les plus probables.

1. Sur des classes déséquilibrées, c'est le bordel : l'erreur entre les classes peut diverger de plusieurs fois. Et laquelle est la bonne ?

2. Il est loin d'être toujours possible d'équilibrer les classes.

Votre exemple avec BUY|SELL. Lorsque le nombre d'observations (barres) est supérieur à 3000, la différence de déséquilibre sera de 10% au maximum 20%. Il est tout à fait possible de trouver un équilibre.

Et ici leDr. Trader a suggéré la variable cible "Pivot/Non Pivot". Je pense qu'il l'a pris de ZZ. Ainsi, dans cette variable cible, les classes déséquilibrées varieront d'un ordre de grandeur. Si nous augmentons la classe au maximum, pouvons-nous enseigner sur un échantillon aussi équilibré ? Il me semble que non.

Ce n'est donc pas si simple avec l'équilibrage.

D'après ma propre expérience :

  • si le déséquilibre n'est pas important (pas plus de 20 %), l'équilibrage est obligatoire.
  • Si le déséquilibre est important (multiple), alors vous ne pouvez pas équilibrer et vous ne devez pas du tout utiliser cette variable cible.

Je n'ai pas trouvé d'autres solutions.

 
Yury Reshetov:
Je vais tout laisser tomber et devenir un adepte du R pour pouvoir jouer aux chiffres avec un visage sérieux.
Jusqu'à présent, je n'ai pas remarqué que tu jouais des numéros, mais je ne sais pas pour ton visage.
 
SanSanych Fomenko:
Jusqu'à présent, je n'ai pas remarqué que vous jouiez des numéros, mais je ne sais pas pour votre visage - je ne le vois pas.
J'ai un visage assez sérieux sur mon avatar, n'est-ce pas ? Au moins, j'ai essayé de faire en sorte que ce soit aussi sérieux que possible. Mais apparemment, ça ne s'est pas très bien passé, n'est-ce pas ?
 
Yury Reshetov:

Qu'est-ce que la pensée a à voir avec ça ? La pensée est subjective. La pensée peut être à la fois correcte et délibérément fausse. Parce que l'imagination est problématiquement limitée. Le critère de vérité est toujours l'expérience.

Prenez deux échantillons d'entraînement, l'un pré-équilibré et l'autre fortement déséquilibré. Entraînez l'algorithme sur les deux échantillons et mesurez la capacité de généralisation sur les parties test. Ensuite, comparez la capacité de généralisation. Celui qui donne la meilleure capacité de généralisation sera le critère de vérité.

Sinon, nous ne ferons que penser et spéculer au point de perdre le pouls. Après tout, le désaccord naît de l'argumentation et la vérité naît de l'expérience.

Je vais donc cesser d'aborder le sujet de l'équilibrage de l'échantillon d'entraînement. Sinon ce cholivar peut continuer indéfiniment car il y a deux opinions différentes et continuer à mesurer à qui de nous pense correctement - une perte de temps.

Je veux dire une chose, tu en veux une autre. Je dis que nous devrions diviser le jeu strictement par dates. Et vous parlez d'équilibre.
 
Alexey Burnakov:
Je veux dire une chose, tu en veux une autre. Je dis que vous devez diviser l'ensemble strictement par des dates. Et vous parlez d'équilibre.

Je suis désolé, mais j'ai déjà dit que je ne voyais pas l'intérêt de continuer ce refrain. J'ai déjà essayé d'expliquer les défauts de l'équilibre à l'aide d'exemples. Probablement pas très convaincant, n'est-ce pas ? Je ne suis pas doué pour la rhétorique noire, donc je ne peux pas transformer le noir en blanc sans sourciller. Alors ne soyez pas trop dur avec moi.

Est-il plus probable que vous essayiez de me convaincre que vous essayez soi-disant de vous "forcer" à équilibrer la réalité ? Mais je n'ai pas cette intention. Je sais que la réalité est, malheureusement pour moi, souvent déséquilibrée et que les occasions de l'équilibrer ne sont pas toujours disponibles. C'est pourquoi, dans mes posts, j'ai essayé de vous expliquer qu'il n'est pas nécessaire d'essayer d'équilibrer la réalité en dehors de l'échantillon d'entraînement, mais qu'il est nécessaire et suffisant d'équilibrer l'échantillon d'entraînement, afin que le modèle obtenu à partir de celui-ci ne soit pas biaisé dans la direction des classes hautement représentatives. Lorsque l'on divise l'échantillon général en parties par dates, il est également souvent impossible d'atteindre un équilibre. C'est pourquoi j'équilibre l'échantillon de formation non pas en fonction des dates, mais de la représentativité égale des classes qui le composent.

Je ne vais pas répondre à d'autres questions sur l'équilibrage des ensembles d'entraînement. Ce refrain a donc déjà traîné en longueur.

 
Yury Reshetov:

Je suis désolé, mais j'ai déjà dit que je ne voyais pas l'intérêt de continuer ce refrain. J'ai déjà essayé d'expliquer les défauts de l'équilibre à l'aide d'exemples. Probablement pas très convaincant, n'est-ce pas ? Je ne suis pas doué pour la rhétorique noire, donc je ne peux pas transformer le noir en blanc sans sourciller. Alors ne soyez pas trop dur avec moi.

Est-il plus probable que vous essayiez de me convaincre que vous essayez soi-disant de vous "forcer" à équilibrer la réalité ? Mais je n'ai pas cette intention. Je sais que la réalité est, malheureusement pour moi, souvent déséquilibrée et que les occasions de l'équilibrer ne sont pas toujours disponibles. C'est pourquoi, dans mes posts, j'ai essayé de vous expliquer qu'il n'est pas nécessaire d'essayer d'équilibrer la réalité en dehors de l'échantillon d'entraînement, mais qu'il est nécessaire et suffisant d'équilibrer l'échantillon d'entraînement, afin que le modèle obtenu à partir de celui-ci ne soit pas biaisé dans la direction des classes hautement représentatives. Lorsque l'on divise l'échantillon général en parties par dates, il est également souvent impossible d'atteindre un équilibre. J'équilibre donc l'échantillon de formation non pas en fonction des dates, mais en fonction de la représentativité égale des classes qui le composent.

Je ne répondrai pas à d'autres questions sur l'équilibrage de l'ensemble d'entraînement. Donc, on est déjà dans le brouhaha.

OK . Je ne vous convaincrai pas.
 

Je veux intervenir pour compléter le tableau et réitérer mon opinion au-dessus du fil.

1. Vous devez disposer de deux ensembles de données : le second est une extension du premier dans le temps.

2. Balancez le premier ensemble de données. Nous l'équilibrons définitivement.

3. Nous divisons aléatoirement le premier ensemble de données en trois parties : formation, test et validation.

  • Nous apprenons le modèle en utilisant la validation croisée sur l'ensemble de données d'entraînement.
  • Nous exécutons le modèle formé sur les ensembles de test et de validation.
  • Si l'erreur dans les trois ensembles est à peu près égale, on passe au point 4. Sinon, on procède à la recherche de prédicteurs plus décents car une différence significative dans l'erreur prouve que le modèle est surentraîné en raison de la présence de prédicteurs de bruit (ayant une faible relation avec la variable cible).

4. Nous obtenons une erreur sur la deuxième série, qui est une continuation de la première série dans le temps.

Si l'erreur sur les QUATRE ensembles est à peu près la même, alors le modèle n'est pas réentraîné. Si l'erreur a une valeur décente, nous pouvons sans risque aller plus loin, c'est-à-dire la faire passer au testeur.

S'il y a une différence significative (plus de 30 %), l'ensemble de prédicteurs d'origine conduit à un réentraînement du modèle et, d'après mon expérience personnelle, le remplacement du type de modèle ne peut rien arranger, en termes de réentraînement. Nous devons nous débarrasser des prédicteurs de bruit. Il peut facilement arriver qu'il n'y ait AUCUN prédicteur de bruit parmi les prédicteurs.

 
Je soutiendrai votre conversation messieurs, car j'utilise l'optimiseur de Yuri depuis plus d'un an maintenant et je suis absolument d'accord avec lui sur l'échantillonnage avec le générateur HSPF. L'idée est que la tâche consiste à identifier les informations contenues dans les données d'entrée concernant les informations de sortie. En d'autres termes, l'optimiseur vous indique dans quelle mesure les données d'entrée sont informatives pour notre sortie (qui est idéale). C'est-à-dire que l'optimiseur répond à cette question. Et si les données donnent un mauvais résultat, cela signifie qu'elles ne portent pas d'information sur la sortie ou plutôt qu'elles portent à ce niveau de généralisation que le prédicteur donne. Et maintenant, imaginez le cas suivant : supposons que nous ayons 10 entrées. Question, combien d'entrées (stroi) devons-nous avoir afin de diviser l'échantillon à zéro ????. Je vais vous donner un indice. 100 entrées avec 10 entrées devraient s'optimiser à zéro. Parce qu'à 100 entrées, ce sera une énumération totale de données. Je n'ai peut-être pas été assez clair, je m'en excuse. Yuri n'en parle certainement pas, mais il y a une nuance dans l'utilisation d'un prédicteur, qui n'est pas annoncée, mais qui augmente la généralité de toute donnée. C'est-à-dire que pour 10 entrées, étant donné 100 lignes, même complètement sans rapport avec les données du système. L'algorithme construira un modèle dont le caractère généralisable est élevé. Dans la fourchette de 90% et plus. Il n'est pas certain que ce modèle fonctionnera correctement à l'avenir, car les données proviennent du plafond et ne sont pas liées au système de quelque manière que ce soit. Mais le Predictor est capable de scier un espace multidimensionnel avec une erreur minimale. Mais pour cela, vous devez effectuer une manipulation délicate des données. Mais je suis tout à fait d'accord avec Yuri. La tâche consiste à identifier l'informativité des entrées par rapport aux sorties et, dans ce cas, l'ordre des données ne joue aucun rôle. HSPF est une option dans ce cas....