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

 
SanSanych Fomenko:

J'ai des chiffres similaires pour Forest et Ada.

Maintenant, pour en revenir à nos "béliers", comment puis-je éliminer le bruit d'une liste arbitraire de prédicteurs ? J'ai un algorithme empirique qui a sélectionné mes 27 prédicteurs parmi 170. Je l'ai également utilisé pour analyser les ensembles de prédicteurs d'autres personnes, avec succès également. Sur la base de cette expérience, je soutiens que toutes les méthodes de R qui utilisent des variables "d'importance" dans leurs algorithmes ne peuvent pas débarrasser l'ensemble des prédicteurs du bruit.

Je lance un appel à tous les lecteurs du fil de discussion : je suis prêt à effectuer l'analyse appropriée si les données brutes sont présentées sous forme de RData ou de fichier Excel ne nécessitant pas de traitement.

A part ça.

Je joins un certain nombre d'articles qui sont censés résoudre le problème de la suppression du bruit de l'ensemble original de prédicteurs, et ce avec une bien meilleure qualité. Malheureusement, je n'ai pas le temps de l'essayer pour le moment. Peut-être que quelqu'un fera un essai et postera le résultat ?


J'ai décidé de lire le sujet avant (il s'avère que je ne l'ai pas fait). Et puis un certain nombre de questions se sont posées, telles que :

1. L'apprentissage de l'échafaudage se fait sur un sous-ensemble aléatoire de caractéristiques, cela signifie-t-il que les caractéristiques qui ne sont pas sélectionnées au hasard pour l'apprentissage seront étiquetées comme "non importantes" ?

2. que faire ou comprendre lorsqu'il y a des caractéristiques catégorielles et que l'échafaudage leur accordera moins d'importance qu'aux caractéristiques avec plus de catégories ?

3. L'ACP sur chaque nouvel échantillon n'allouera pas de "nouvelles" composantes, qui seront très différentes des composantes de l'échantillon d'entraînement, comment gérer cela ?

Et une dernière chose : une méthode d'élimination récursive des caractéristiques légèrement différente: http://blog.datadive.net/selecting-good-features-part-iv-stability-selection-rfe-and-everything-side-by-side/.

L'article contient des liens vers des articles antérieurs décrivant également les échafaudages.

Selecting good features – Part IV: stability selection, RFE and everything side by side
  • 2014.12.20
  • blog.datadive.net
In this post, I’ll look at two other methods: stability selection and recursive feature elimination (RFE), which can both considered wrapper methods. They both build on top of other (model based) selection methods such as regression or SVM, building models on different subsets of data and extracting the ranking from the aggregates. As a wrap-up...
 
Maxim Dmitrievsky:

J'ai décidé de lire le sujet avant (il s'avère que je ne l'ai pas fait). Et puis un certain nombre de questions se sont posées, telles que :

1. la forêt est entraînée sur un sous-ensemble aléatoire de caractéristiques, cela signifie-t-il que les caractéristiques qui ne sont pas aléatoirement dans la formation seront étiquetées comme "non importantes" ?

2. que faire ou comprendre lorsqu'il y a des caractéristiques catégorielles et que l'échafaudage leur accordera moins d'importance qu'aux caractéristiques avec plus de catégories ?

3. L'ACP sur chaque nouvel échantillon n'allouera pas de "nouvelles" composantes, qui seront très différentes des composantes de l'échantillon d'entraînement, comment gérer cela ?

Et une dernière chose : une méthode d'élimination récursive des caractéristiques légèrement différente: http://blog.datadive.net/selecting-good-features-part-iv-stability-selection-rfe-and-everything-side-by-side/.

L'article comporte des liens vers les parties précédentes de l'article qui décrivent également les échafaudages.


Malheureusement, ma réponse personnelle n'ajoutera rien à ce qui est écrit ici ou dans d'autres ouvrages sur le sujet.

Il existe un certain nombre d'algorithmes permettant de déterminer l'"importance" des caractéristiques (régression ou catégorie, peu importe) - tous sont en R.

J'ai passé beaucoup de temps à les maîtriser, et à la fin j'ai découvert que la chose PRIMAIRE à faire est de se débarrasser des attributs bruyants, non pertinents pour la variable cible, et ensuite d'utiliser de R, ce qui donnera une réduction d'erreur de 5-7%. Une erreur inférieure à 20% n'a pas pu être obtenue.

Une fois de plus, je note que je fais une sélection des composants importants sur chaque barre, et sur l'ensemble résultant, je réentraîne la forêt.


Les chiffres sont les suivants.

  • Sur plusieurs centaines de prédicteurs, j'ai sélectionné 27 prédicteurs par critère de bruit, c'est-à-dire "pertinents" pour la variable cible.
  • J'ai sélectionné parmi 27 sur chaque barre par critère d'importance (RFE)
  • sur les attributs obtenus 5-15 j'apprends la forêt. Cette liste change constamment au sein des 27 utilisés.


Le critère de qualité de cette approche : je prends deux fichiers, sur le premier j'enseigne, train, validation = environ la même erreur. Je vérifie le modèle obtenu sur le second fichier = approximativement la même erreur que sur le premier fichier. J'en conclus que le modèle n'est pas surentraîné et qu'à l'avenir, au moins une barre, se comportera de la même manière que lors de l'entraînement.

Toute autre approche ne fonctionne pas pour moi, et le remplacement d'un type de modèle par un autre n'apporte aucune amélioration en termes de recyclage.



Concernant le PCA. J'ai obtenu un résultat négatif, en ce sens que l'utilisation des composantes principales n'a pas réduit l'erreur par rapport à l'ensemble original. Je ne comprends pas pourquoi il en est ainsi, bien que théoriquement cela devrait réduire les erreurs.

 
SanSanych Fomenko:

L'ACP est généralement inutile lorsqu'on utilise le modèle sur des traits hétérogènes, par exemple le forex... à mon avis. Je pense qu'il est inutile d'utiliser un modèle pour des traits hétérogènes, par exemple en forex.

si on retourne à l'échafaudage.

Il faudra que j'aille voir le code source, semble-t-il, pour comprendre comment sont évalués les traits qui n'ont pas été retenus dans l'échantillon d'entraînement, ce n'est pas mentionné là (très probablement évalué comme mauvais).

+ le processus d'apprentissage par échafaudage est aléatoire, avec plusieurs formations consécutives nous pouvons obtenir des résultats différents, parfois significativement différents... il n'est pas non plus très clair comment travailler avec cette astuce. D'accord, si nous avons affiné le modèle, l'avons sauvegardé et l'utilisons plus tard... mais si le modèle est auto-formateur... nous devons l'entraîner plusieurs fois de suite, choisir l'erreur minimale, quelque chose comme ça... sinon les exécutions multiples dans le testeur produisent des résultats différents, selon mes observations jusqu'à 5 ou plus, puis ils se répètent pour les exécutions suivantes

 
Maxim Dmitrievsky:

L'ACP est généralement inutile lorsqu'on utilise le modèle sur des caractéristiques hétérogènes, par exemple le forex... à mon avis. Parce que nous nous sommes entraînés sur certains composants, et dans le test est apparue une autre combinaison de composants, qui n'a pas été prise en compte par le modèle en aucune façon.

Si nous revenons à l'échafaudage.

Il faudra que j'aille voir le code source, semble-t-il, pour comprendre comment sont évalués les traits qui n'ont pas été retenus dans l'échantillon d'entraînement, ce n'est pas mentionné là (très probablement évalué comme mauvais).

+ le processus d'apprentissage par échafaudage est aléatoire, avec plusieurs formations consécutives nous pouvons obtenir des résultats différents, parfois significativement différents... il n'est pas non plus très clair comment travailler avec cette astuce. Très bien, si nous avons affiné le modèle, l'avons sauvegardé et l'utilisons plus tard... mais si le modèle est auto-formateur... nous devons l'enseigner plusieurs fois de suite, sélectionner l'erreur minimale, etc... sinon, lors de plusieurs exécutions dans le testeur, nous obtenons des résultats différents, selon mes observations jusqu'à 5 ou plus, puis ils se répètent lors des exécutions suivantes


Je ne me souviens pas des passions que vous avez décrites. Avec la même semence, les résultats sont toujours les mêmes.

 
SanSanych Fomenko:

Je ne me souviens pas des passions que vous décrivez. Avec la même semence, le résultat est toujours le même.


Que fait seed ? Je ne me souviens pas... le nombre de fonctionnalités, non ? J'utilise alglib forest

 
revers45:
Un enseignant qui ne connaît pas la table de multiplication et un développeur de NS qui ne l'impose pas, des solutions aléatoires et correctes - plus de coulage !

Je suis d'accord.

C'est juste une légère agitation de l'air. Postez un exemple, des données de plafond, pour que vous puissiez vérifier.

Il existe trois grandes méthodes d'apprentissage : sans professeur (la cible n'est pas présentée), avec un professeur (la cible est entièrement marquée) et semi-supervisée (je ne sais pas comment traduire correctement). C'est le cas lorsque le modèle se voit présenter une cible qui n'est pas entièrement (partiellement) marquée. Tous les autres sont du malin.

Bonne chance

 
Maxim Dmitrievsky:

De quoi seed est-il responsable ? Je ne me souviens pas... du nombre de fonctionnalités, non ? J'utilise la forêt alglib.

Allez...

set.seed place un générateur de nombres aléatoires dans un certain état et obtient un résultat reproductible lorsque le calcul est répété.

Apprenez vos maths.

 
Vladimir Perervenko:

Allez...

set.seed règle le générateur de nombres aléatoires sur un certain état et obtenir un résultat reproductible lorsque le calcul est répété.

Apprenez les mathématiques.


Je ne dispose pas d'un tel paramètre, c'est pourquoi j'ai demandé.

Je peux le faire dans MT5 aussi, merci.

 
Vladimir Perervenko:

Je suis d'accord.

C'est juste une légère agitation de l'air. Postez un exemple, des données de plafond, pour que vous puissiez vérifier.

Il existe trois grandes méthodes d'apprentissage : sans professeur (la cible n'est pas présentée), avec un professeur (la cible est entièrement marquée) et semi-supervisée (je ne sais pas comment traduire correctement). C'est le cas lorsque le modèle se voit présenter une cible qui n'est pas entièrement (partiellement) marquée. Tous les autres sont du malin.

Bonne chance

Bien, bien.)) Si vous connaissez parfaitement l'algorithme et que vous pouvez trouver la cible, alors pourquoi avez-vous besoin de NS ? Vous pouvez tout faire sans elle).

Les NS et autres DM sont nécessaires précisément lorsque vous ne savez pas.

Quant aux algorithmes d'apprentissage, ils sont développés et modifiés pour chaque tâche spécifique. Principalement basé sur les principes de base.

Et ce que vous dites ne fait qu'agiter l'air. Ne rien lire au-delà de l'introduction. )

Bonne chance.

 
Yuriy Asaulenko:

Bien, bien.)) Si vous connaissez parfaitement l'algorithme et pouvez trouver la cible, pourquoi avez-vous besoin de NS ? Vous pouvez tout faire sans elle).

Avez-vous compris ce que vous avez écrit ? La cible n'est pas trouvée, elle est prédéfinie comme quelque chose que le modèle doit apprendre. De quel algorithme parlez-vous ?

Les NS et autres DM sont nécessaires précisément lorsque vous ne savez pas.

Qu'est-ce qu'on ne sait pas ?

Quant aux algorithmes d'apprentissage, ils sont développés et modifiés pour chaque tâche spécifique. Ils sont pour la plupart basés sur ceux de base.

Nous parlons ici de deux tâches à résoudre : la régression et la classification (en omettant le regroupement et le classement). Quelles autres "tâches spécifiques" avez-vous en tête ?

Et ce dont vous parlez, c'est de secouer l'air. Ne rien lire au-delà de l'introduction. )

? ??

Bonne chance.