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

 
Aleksey Nikolayev #:

En général, une fois formé (sur train), il n'y a pas un seul modèle, mais un ensemble de modèles définis par des méta-paramètres. Par exemple, différents degrés de polynôme d'interpolation ou différents coefficients de régularisation dans la régression lasso, etc. Ensuite, la meilleure valeur du métaparamètre est déterminée (le meilleur modèle de l'ensemble est pris par test). À son tour, l'optimisation du méta-paramètre sur l'examen peut également être déterminée par certains paramètres (méta-paramètres), pour l'optimisation desquels l'examen peut être appliqué. Par exemple, dans quelles proportions diviser l'échantillon original en train et test.

Mais il est fort probable que je ne comprenne pas votre idée).

La meilleure façon de choisir les méta-paramètres n'est pas de faire une seule section de test, mais plusieurs sections collées ensemble par validation croisée ou rolling forward. On en a parlé récemment.
 
elibrarius #:
Il est préférable de sélectionner les méta-paramètres non pas sur une seule parcelle de test, mais sur plusieurs collées ensemble par validation croisée ou rollicking forward. On en a parlé récemment.

Je suis d'accord. En fait, je voulais juste dire que la validation croisée peut aussi être organisée de manière compliquée et être définie avec des paramètres propres (méta-paramètres) qui peuvent aussi être optimisés par un échantillon supplémentaire (et non pas les prendre au plafond).

 
Aleksey Nikolayev #:

Je suis d'accord. En fait, je voulais simplement exprimer l'idée que la validation croisée peut également être organisée de manière compliquée et être définie avec certains de ses propres paramètres (méta-paramètres), qui peuvent également être optimisés en utilisant un autre échantillon (plutôt que de les prendre dans le plafond).

Bien compris - effectuez toutes les actions nécessaires pour que l'échantillon ressemble davantage à un échantillon d'examen.

La question est de savoir quelle est la meilleure façon de le faire.

Une option, qui est souvent utilisée, l'énumération des prédicteurs - mais avec un grand ensemble d'entre eux, c'est trop. Et pouvons-nous, disons, comparer des chaînes (ensemble de prédicteurs) pour la similarité et la robustesse du résultat cible dans les deux échantillons ? Nous pouvons alors éliminer les chaînes anormales (disons, rares ou non trouvées dans l'échantillon) de l'échantillon de formation et, grâce à cela, améliorer considérablement l'apprentissage, en théorie.

 
Aleksey Vyazmikin #:

Bien compris - effectuer toute action visant à rendre l'échantillon de train plus semblable à un échantillon d'examen.

La question est donc de savoir quelle est la meilleure façon de procéder.

Une option souvent utilisée consiste à énumérer les prédicteurs - mais avec un grand ensemble, ils sont trop nombreux. Et pouvons-nous, disons, comparer des chaînes (ensemble de prédicteurs) pour la similarité et la robustesse du résultat cible dans les deux échantillons ? Nous pouvons alors éliminer les chaînes anormales (disons, rares ou non trouvées dans l'échantillon) de l'échantillon de formation et, grâce à cela, apprendre beaucoup mieux, en théorie.

Vladimir a publié un article à ce sujet, je ne me souviens plus du nom du paquet, mais il expulse des chaînes de caractères imprévisibles de l'échantillon.
 
mytarmailS #:
Vladimir avait un article à ce sujet, je ne me souviens pas du nom de ce paquet, mais il laissait tomber des chaînes imprévisibles de l'échantillon

Intéressant, je vais devoir le chercher. Mais je veux écarter non pas les chaînes prévisibles, mais celles qui n'apparaissent pas dans l'échantillon en dehors de la formation. Il est même intéressant de les marquer, bien sûr, et de ne pas simplement les jeter - de les identifier.

 
Aleksey Vyazmikin #:

Intéressant, je vais devoir le regarder. Mais, je ne veux pas rejeter celles qui ne sont pas prévisibles, mais celles qui ne se produisent pas dans l'échantillon en dehors de la formation. Il est même intéressant de les marquer d'une manière ou d'une autre, bien sûr, plutôt que de simplement les jeter - pour les identifier.

Il s'agit peut-être d'éliminer les observations aberrantes, qui peuvent être de deux types - par la taille de la réponse et par la taille du prédicteur (les deux peuvent être combinées dans la même observation). Les valeurs aberrantes proprement dites sont appelées les premières, tandis que les secondes sont généralement appelées autrement. Cette science est bien développée pour la régression linéaire. Vous pouvez probablement vérifier chaque observation de test pour voir s'il s'agit d'une aberration dans un certain sens par rapport à un examen.

 
Aleksey Vyazmikin #:

Intéressant, je vais devoir le regarder. Mais, je ne veux pas rejeter celles qui ne sont pas prévisibles, mais celles qui ne se produisent pas dans l'échantillon en dehors de la formation. Il est même intéressant de les marquer, bien sûr, et de ne pas simplement les jeter - de les identifier.

Vous pouvez utiliser des modèles en bois...
Décomposer le modèle en règles, analyser les règles pour les bonnes statistiques (la répétabilité est autre chose...), voir si la règle apparaît sur les nouvelles données...

Le paquet "intrees" est 5 lignes de code et va
 
mytarmailS #:
Vladimir avait un article à ce sujet, je ne me souviens pas du nom du paquet, mais il laissait tomber des chaînes de caractères imprévisibles de l'échantillon.

PaquetNoiseFiltersR. Jetez un coup d'œil à l'article.

 
elibrarius #:
Il est préférable de sélectionner les méta-paramètres non pas sur une seule parcelle de test, mais sur plusieurs collées ensemble par validation croisée ou rollicking forward. Ce point a été discuté récemment.

Et comment utiliser correctement les résultats de l'évaluation continue ? Prendre les meilleurs paramètres du modèle et les appliquer à l'ensemble des données, ou les utiliser uniquement pour sélectionner les bons ensembles de données.

Par exemple, la sortie est le tableau suivant

        iterations      test-Logloss-mean       test-Logloss-std        train-Logloss-mean      train-Logloss-std
0       0       0.689013        0.005904        0.681549        0.007307
1       1       0.685340        0.011887        0.660894        0.001061
2       2       0.685858        0.012818        0.641069        0.004738
3       3       0.685975        0.023640        0.629656        0.000656
4       4       0.686613        0.024923        0.612977        0.002072
...     ...     ...     ...     ...     ...
95      95      0.863043        0.402531        0.123702        0.028628
96      96      0.866321        0.406193        0.122224        0.028623
97      97      0.869681        0.409679        0.120777        0.028611
98      98      0.873030        0.413121        0.119361        0.028595
99      99      0.874569        0.419064        0.117974        0.028572
 
Vladimir Perervenko #:

PaquetNoiseFiltersR. Jetez un coup d'œil à l'article.

Si les prédicteurs de bruit sont plus ou moins clairs, les exemples de bruit ne le sont pas. J'aimerais en savoir plus sur la façon de les définir (en termes de théorie, pas de noms de paquets/fonctions utilisés, même si bien sûr R a toujours des liens vers des articles). Il est clair qu'il devrait y avoir une classe "ne pas trader" lors de la classification, puisque s'efforcer d'être sur le marché en permanence est considéré comme une erreur. Mais il n'est pas tout à fait clair comment cette classe peut être décrite correctement de manière plus ou moins formelle.