Régression bayésienne - Est-ce que quelqu'un a fait un EA en utilisant cet algorithme ? - page 51

 
Дмитрий:
Et comment déterminer la "meilleure" combinaison ?
Validation croisée avec 5 itérations. Mais pas le modèle habituel qui sélectionne des exemples de manière aléatoire, mais un modèle adapté aux séries temporelles - avec isolement des exemples dans le temps. Le blog décrit tout cela.

La valeur moyenne de la métrique cible sur les 5 fautes de test indique la meilleure combinaison de paramètres d'entraînement.

Le modèle est ensuite entraîné sur l'ensemble de l'échantillon d'entraînement et validé sur un autre échantillon.
 
  • Je me demande ce que je devrais changer dans l'expérience. J'ai essayé de changer la logique d'indexation des cas pour la validation croisée, sans amélioration.
  • Je pense amener les entrées à une forme discrète.
  • Une autre option consiste à passer d'un modèle complexe à un modèle plus simple. Un modèle complexe est une forêt de décisions accélérées. Le plus simple est celui des modèles de régression linéaire accélérée, où les paramètres de régularisation peuvent également être ajustés.
  • Mais le fait est qu'il est difficile d'améliorer la précision de 55 % à 60 % en changeant simplement quelque chose au niveau de la conception.
  • La construction de modèles de comité ne donnera au mieux qu'une fraction de pourcentage d'amélioration. Il faut plus de temps pour développer et former l'architecture.
  • L'idée est d'examiner les prédicteurs importants et s'ils se trouvent souvent à la limite de la fenêtre (724 minutes), alors vous pourriez étendre la fenêtre à 1440 minutes par jour. Mais le nombre d'échantillons sera alors divisé par deux, car je les prendrai par tranches de 1440 +- termes aléatoires.
  • Il est également possible de prédire un autre objectif, par exemple la ventilation du niveau de prix (Take Profit / Stop Loss) ou la "direction" générale, par exemple le coefficient de régression linéaire.
Tout prend du temps. Mais je consacrerai certainement deux mois de plus à cette expérience. Peut-être que quelque chose en sortira.
 
Le problème de base est celui de la liste des prédicteurs. Après avoir justifié la liste des prédicteurs, nous pouvons passer au reste.
 
СанСаныч Фоменко:
Le problème de base est celui de la liste des prédicteurs. Après avoir justifié la liste des prédicteurs, nous pouvons passer au reste.
Merci. Moi aussi, je penche pour l'ajout de plus de prédicteurs.
 
Alexey Burnakov:
Merci. Je penche également pour l'ajout de plus de prédicteurs.
Pensez-vous que le nombre de prédicteurs que vous utilisez n'est pas suffisant ?
 
Алексей Тарабанов:
Pensez-vous que le nombre de prédicteurs que vous utilisez est insuffisant ?
Je n'en suis pas sûr.

Ou bien les prédicteurs disponibles n'apportent pas assez d'informations,
Soit les relations changent beaucoup avec le temps et la généralisabilité diminue.
Soit les prédicteurs eux-mêmes modifient les paramètres de distribution au fil du temps.

Pour le premier point, on peut en ajouter d'autres, et il est toujours possible de sélectionner les meilleurs.
D'autre part, le traitement des données peut aider, mais pas à 100 %.

Je penche pour une combinaison de tous ces facteurs. Le fait est que, toujours en validation croisée, la précision est de 55-60% et qu'elle diminue à mesure que l'horizon de prévision augmente. Les prédicteurs ne donnent donc pas beaucoup d'informations sur l'échantillon d'entraînement non plus.

C'est le cas si je constate une grande précision lors du test et qu'elle chute brutalement lors de la validation, avec une expérience correctement construite, de sorte que les dépendances ne sont pas stationnaires.
 
Alexey Burnakov:
Je n'en suis pas sûr.

Soit les prédicteurs disponibles n'apportent pas assez d'informations,
Soit les relations changent beaucoup avec le temps et la généralisabilité diminue.
Soit les prédicteurs eux-mêmes modifient les paramètres de distribution au fil du temps.

Pour le premier point, on peut en ajouter d'autres, et il est toujours possible de sélectionner les meilleurs.
D'autre part, le traitement des données peut aider, mais pas à 100 %.

Je penche pour une combinaison de tous ces facteurs. Le fait est que, toujours en validation croisée, la précision est de 55-60% et qu'elle diminue à mesure que l'horizon de prévision augmente. Les prédicteurs ne donnent donc pas beaucoup d'informations sur l'échantillon d'entraînement non plus.

En d'autres termes, si je constate une précision élevée lors du test et qu'elle chute brutalement lors de la validation, avec une expérience correctement construite, alors les dépendances sont non stationnaires.
C'est très probable.
 
Alexey Burnakov:
Je n'en suis pas sûr.

Soit les prédicteurs disponibles ne portent pas suffisamment d'informations,
Soit les relations changent beaucoup avec le temps et la généralisabilité diminue.
Soit les prédicteurs eux-mêmes modifient les paramètres de distribution au fil du temps.

Pour le premier point, on peut en ajouter d'autres, et il est toujours possible de sélectionner les meilleurs.
Quant aux autres points, le traitement des données peut aider, mais pas à cent pour cent.

Je penche pour une combinaison de tous ces facteurs. Le fait est que, toujours en validation croisée, la précision est de 55-60% et qu'elle diminue à mesure que l'horizon de prévision augmente. Les prédicteurs ne donnent donc pas beaucoup d'informations sur l'échantillon d'entraînement non plus.

C'est si je devais voir qu'il y a une grande précision sur le test et qu'elle chute dramatiquement sur la validation, alors que l'expérience est construite correctement, donc les dépendances sont non-stationnaires.

Je l'ai déjà écrit, je le répète.

J'ai effectué le travail sur la sélection des prédicteurs plusieurs fois, y compris sur demande. Les résultats sont donnés ci-dessous

Donc.

Prenons un ensemble de prédicteurs, pas moins de 50, et mieux qu'une centaine.

Tous les ensembles de prédicteurs que j'ai traités (c'est-à-dire que je ne prétends pas généraliser) peuvent être divisés en deux parties :

  • la partie des prédicteurs qui sont pertinents pour la variable cible
  • la partie des prédicteurs qui n'a rien à voir avec la variable cible - le bruit

J'écris "relation" très soigneusement et, délibérément, je n'utilise aucun terme.

Exemple de prédicteurs :

  • ondulation - ne concerne PAS la variable cible ZZ
  • l'écart de prix par rapport à raspka est pertinent pour la variable cible ZZ

Veuillez noter que je spécifie la variable cible. Pour l'autre variable cible, ce peut être l'inverse.

Le problème que pose la présence de ces deux groupes de prédicteurs dans l'ensemble initial de prédicteurs est que les outils standard pour déterminer l'IMPORTANCE ne fonctionnent pas. Il faut donc des outils, que j'ai développés et que j'utilise, qui permettent de faire un tri grossier des prédicteurs de bruit. Il convient de noter qu'il n'y a pas d'ambiguïté ici. L'algorithme quantifie séparément pour les prédicteurs valides et nominaux. Moins de 2 (une certaine valeur relative) est du bruit, c'est certain. Entre 2 et 3 : peut être utilisé, mais mieux vaut ne pas le faire....

Le problème avec le bruit est que les prédicteurs pertinents pour le bruit écrasent les prédicteurs non pertinents pour eux. Par exemple, les algorithmes randomforest, ada et svm, pour une raison quelconque, construisent le modèle davantage sur ces prédicteurs de bruit.

Après avoir éliminé les prédicteurs bruyants, et dans mes ensembles il y en avait environ 80%( !), nous prenons le reste de la liste des prédicteurs et commençons à appliquer les outils de R pour déterminer l'importance des variables. Le nombre réel de prédicteurs utilisés pour entraîner le modèle est environ la moitié des prédicteurs NON bruyants, c'est-à-dire environ 10% de l'ensemble original.

Je détermine l'importance des prédicteurs dans la fenêtre. Au fur et à mesure que la fenêtre se déplace, la liste des prédicteurs des 20% de base change tout le temps. C'est-à-dire que 12 à 15 prédicteurs sont utilisés pour construire le modèle, mais ils sont différents au fur et à mesure que la fenêtre se déplace après la citation.

Quelle est la raison ?

Le fait est que le fait de débarrasser l'ensemble des prédicteurs du bruit entraîne la création de modèles qui ne sont PAS réentraînés.

En chiffres.

Sur un ensemble complet de prédicteurs, il est possible de construire des modèles avec une erreur de prédiction de 3 à 5 % ! Et tous les algorithmes qui divisent l'échantillon en parties, dites "hors échantillon" - OOV, confirment ce résultat. On le voit très bien chez raatle, qui divise toujours l'échantillon original en plusieurs parties et est très satisfait des résultats.

Mais.

Si l'échantillon initial contient des prédicteurs de bruit, alors si on prend un véritable "hors échantillon", c'est-à-dire par exemple l'échantillon pour l'entraînement du 01.06.2015 au 01.01.2016, et qu'on calcule ensuite sur l'échantillon après le 1er janvier, on peut facilement obtenir une erreur de 50% et 70% au lieu de 3%-5% ! En outre, plus on s'éloigne du 1er janvier, plus le résultat est mauvais.

LE MODÈLE EST RÉENTRAÎNÉ

Si je nettoie l'ensemble original de prédicteurs de bruit, les résultats sont les suivants et il en est de même pour randomforest, ada SVM ainsi que plusieurs autres modèles - c'est-à-dire que le modèle n'a rien résolu dans mes cas, les résultats sont les suivants : l'erreur de prédiction est d'environ 30% sur n'importe quel ensemble. En appliquant les outils d'importance des prédicteurs de R, nous pouvons encore réduire l'erreur à environ 25%. Il n'a pas été possible d'améliorer ce résultat pour la variable cible ZZ.

 
СанСаныч Фоменко:

Je l'ai déjà écrit, je le répète.

J'ai fait le travail de sélection des prédicteurs à plusieurs reprises, y compris sur commande. Les résultats sont donnés ci-dessous

Donc.

Prenons un ensemble de prédicteurs, pas moins de 50, et de préférence plus d'une centaine.

Tous les ensembles de prédicteurs que j'ai traités (c'est-à-dire que je ne prétends pas généraliser) peuvent être divisés en deux parties :

  • la partie des prédicteurs qui sont pertinents pour la variable cible
  • la partie des prédicteurs qui n'a rien à voir avec la variable cible - le bruit

J'écris "relation" très soigneusement et, délibérément, je n'utilise aucun terme.

Exemple de prédicteurs :

  • ondulation - ne concerne PAS la variable cible ZZ
  • l'écart de prix par rapport à raspka est pertinent pour la variable cible ZZ

Veuillez noter que je spécifie la variable cible. Pour l'autre variable cible, ce peut être l'inverse.

Le problème que pose la présence de ces deux groupes de prédicteurs dans l'ensemble initial de prédicteurs est que les outils standard pour déterminer l'IMPORTANCE ne fonctionnent pas. Il faut donc des outils, que j'ai développés et que j'utilise, qui permettent de faire un tri grossier des prédicteurs de bruit. Il convient de noter qu'il n'y a pas d'ambiguïté ici. L'algorithme quantifie séparément pour les prédicteurs valides et nominaux. Moins de 2 (une certaine valeur relative) est du bruit, c'est certain. Entre 2 et 3 : peut être utilisé, mais mieux vaut ne pas le faire....

Le problème avec le bruit est que les prédicteurs pertinents pour le bruit écrasent les prédicteurs non pertinents pour eux. Par exemple, les algorithmes randomforest, ada et svm, pour une raison quelconque, construisent le modèle davantage sur ces prédicteurs de bruit.

Après avoir éliminé les prédicteurs bruyants, et dans mes ensembles il y en avait environ 80%( !), nous prenons le reste de la liste des prédicteurs et commençons à appliquer les outils de R pour déterminer l'importance des variables. Le nombre réel de prédicteurs utilisés pour entraîner le modèle est environ la moitié des prédicteurs NON bruyants, c'est-à-dire environ 10% de l'ensemble original.

Je détermine l'importance des prédicteurs dans la fenêtre. Au fur et à mesure que la fenêtre se déplace, la liste des prédicteurs des 20% de base change tout le temps. C'est-à-dire que 12 à 15 prédicteurs sont utilisés pour construire le modèle, mais ils sont différents au fur et à mesure que la fenêtre se déplace après la citation.

Quelle est la raison ?

Le fait est que le fait de débarrasser l'ensemble des prédicteurs du bruit entraîne la création de modèles qui ne sont PAS réentraînés.

En chiffres.

Avec un ensemble complet de prédicteurs, il est possible de construire des modèles avec une erreur de prédiction de 3 à 5 % ! Et tous les algorithmes qui divisent l'échantillon en parties, dites "hors échantillon" - OOV, confirment ce résultat. On le voit très bien chez raatle, qui divise toujours l'échantillon original en plusieurs parties et est très satisfait des résultats.

Mais.

Si l'échantillon initial contient des prédicteurs de bruit, alors si on prend un véritable "hors échantillon", c'est-à-dire par exemple l'échantillon pour l'entraînement du 01.06.2015 au 01.01.2016, et qu'on calcule ensuite sur l'échantillon après le 1er janvier, on peut facilement obtenir une erreur de 50% et 70% au lieu de 3%-5% ! En outre, plus on s'éloigne du 1er janvier, plus le résultat est mauvais.

LE MODÈLE EST RÉENTRAÎNÉ

Si je nettoie l'ensemble original de prédicteurs de bruit, les résultats sont les suivants et il en est de même pour randomforest, ada SVM ainsi que plusieurs autres modèles - c'est-à-dire que le modèle n'a rien résolu dans mes cas, les résultats sont les suivants : l'erreur de prédiction est d'environ 30% sur n'importe quel ensemble. En appliquant les outils d'importance des prédicteurs de R, nous pouvons encore réduire l'erreur à environ 25%. Il n'a pas été possible d'améliorer ce résultat pour la variable cible ZZ.

Merci.

Je vois ce que vous pensez. De tout ce qui précède, j'ai vu une possibilité de calculer l'importance des prédicteurs sur plusieurs parties de l'échantillon d'entraînement, puis de comparer les listes et de sélectionner les doublons.

Je ne peux rien dire sur la sélection manuelle, je préfère utiliser la machine tout de suite.

SZZ : Je vais essayer d'appliquer ma méthode maison, basée sur la fonction d'information mutuelle, en plus de l'importance des variables de la forêt de décision. Je vous montrerai les résultats plus tard.

 
СанСаныч Фоменко:


Le problème du bruit est que les prédicteurs relatifs au bruit encombrent les prédicteurs qui n'y sont pas liés. Par exemple, les algorithmes randomforest, ada et svm, pour une raison quelconque, construisent le modèle davantage sur ces prédicteurs de bruit.


Question : le SVM tient-il compte des interactions entre les variables ou est-il simplement la somme des composantes individuelles pondérées ?