L'Apprentissage Automatique dans le trading : théorie, modèles, pratique et trading algo - page 3

 

Vous pouvez choisir de jeter les mêmes entrées. Pour chaque colonne par rapport aux autres, calculez l'écart moyen. De cette façon, on peut trouver les deux colonnes les plus similaires, dont l'une peut être écartée. Lequel des deux, peut être compté par l'écart moyen sur l'ensemble des colonnes, etc.

 
Dr. Trader:

Visuellement, tous les poids sont divisés en deux groupes. Si vous voulez les diviser en fonction de leur importance ou de leur non-significativité, 5, 11, 7, 1, 3, 9 se détachent clairement, cet ensemble est suffisant je pense.

C'est la bonne décision !

Je ne savais pas que le NS pouvait faire ça. C'est une révélation pour moi.

Il s'avère que NS peut simuler des interactions.

Je te dois un prix. Merci !

 

Il est vrai que les NS ne donnent pas une idée du type de motif. C'est-à-dire que l'interprétabilité du modèle est remise en question.

Je posterai la logique de création de l'ensemble de données plus tard et je parlerai du type de dépendance.

 
Dr. Trader:

Visuellement, tous les poids sont divisés en deux groupes. Si vous voulez les diviser en fonction de leur importance ou de leur non-significativité, 5, 11, 7, 1, 3, 9 se détachent clairement, cet ensemble est suffisant je pense.

Si vous êtes intéressé, essayez de supprimer tout prédicteur significatif de l'ensemble de données, réentraînez le NS et produisez l'image avec les poids. Je pense qu'il y aura une surprise.

Cela fait déjà partie de la mission. Pour développer le sujet.

 
Alexey Burnakov:

Si cela vous intéresse, essayez de retirer un prédicteur significatif de l'ensemble de données, de réentraîner le NS et d'afficher une image des poids. Je pense qu'il y aura une surprise.

C'est déjà hors de question. Pour développer le sujet.

Le poêle est une partie très importante de l'intérieur dans le sens où vous devriez toujours danser de ne pas le faire.

Dr. Trader

Votre exemple avec NS dit seulement que NS a préféré les prédicteurs que vous avez mentionnés et n'a pas aimé les autres. Les algorithmes qui font ce genre de choses se comptent sur les doigts d'une main.

Tout cela serait parfait si une telle sélection était faite parmi des prédicteurs pertinents, ayant un pouvoir prédictif, une capacité de prédiction pour la variable cible.

Dans ma pratique, il y a toujours, parmi un ensemble arbitraire de prédicteurs, des prédicteurs qui n'ont aucune (ou très faible) relation avec la variable cible. Le piège est donc que, étant donné un certain nombre de prédicteurs de bruit ou une sélection aléatoire de leurs valeurs, la plupart des algorithmes, y compris NS, ne parviennent pas à distinguer les prédicteurs informatifs parmi les prédicteurs de bruit.

Par conséquent, le "stove-piping" est défini comme une action qui débarrasse d'abord l'ensemble initial de prédicteurs des prédicteurs sans espoir et bruyants, puis...

PS.

Je n'ai pas travaillé avec NS, mais les forêts aléatoires, avec une certaine quantité de prédicteurs de bruit, ont tendance à écarter les prédicteurs informatifs selon leur algorithme intégré. En conséquence, sur le bruit, ils donnent des performances extraordinaires avec une erreur de moins de 5% !

SARP

La présence de prédicteurs de bruit conduit nécessairement à un réentraînement du modèle avec tout ce que cela implique pour le monde réel.

 
SanSanych Fomenko:

Le poêle est une partie très importante de l'intérieur dans le sens où vous devez toujours danser autour de lui.

Dr. Trader

Votre exemple avec NS dit seulement que NS a préféré les prédicteurs que vous avez mentionnés et n'a pas aimé les autres. Les algorithmes qui font ce genre de choses se comptent sur les doigts d'une main.

Tout cela serait parfait si une telle sélection était faite parmi des prédicteurs pertinents, ayant un pouvoir prédictif, une capacité de prédiction pour la variable cible.

Dans ma pratique, il y a toujours, parmi un ensemble arbitraire de prédicteurs, des prédicteurs qui n'ont aucune (ou très faible) relation avec la variable cible. Le piège est donc que, étant donné un certain nombre de prédicteurs de bruit ou une sélection aléatoire de leurs valeurs, la plupart des algorithmes, y compris NS, ne parviennent pas à distinguer les prédicteurs informatifs parmi les prédicteurs de bruit.

Par conséquent, le "stove-piping" est défini comme une action qui débarrasse d'abord l'ensemble initial de prédicteurs des prédicteurs sans espoir et bruyants, puis...

PS.

Je n'ai pas travaillé avec NS, mais les forêts aléatoires, avec une certaine quantité de prédicteurs de bruit, ont tendance à écarter les prédicteurs informatifs selon leur algorithme intégré. En conséquence, sur le bruit, ils donnent des performances extraordinaires avec une erreur de moins de 5% !

SARP

La présence de prédicteurs de bruit conduit nécessairement à un réentraînement du modèle avec tout ce que cela implique pour le réel.

NS a très bien fait.

Random Forest ne pouvait pas gérer une telle tâche avec l'interaction d'un ensemble de variables. Et la signification individuelle de chaque prédicteur était intentionnellement nulle.

 

Content que ça ait marché :) Merci pour le prix.

J'ai essayé d'enlever une entrée (4 cas) - si j'enlève l'entrée_5 ou l'entrée_9 alors rien d'autre ne fonctionne, la neuronique avec la même configuration n'apprend même pas à une erreur inférieure à 50%, commence juste à donner soit 0 ou 1 dans un cas plus large.

Si je supprime input_20, tout va bien, le résultat est correct. Mais ce qui est amusant avec l'entrée_15, c'est que si je la supprime, le neurone ne s'entraîne même pas correctement, les problèmes sont les mêmes que lorsque je supprime l'entrée_5 ou l'entrée_9. Je ne l'ai pas testé davantage.

J'ai joint un fichier avec le code R pour la formation des neurones, si vous êtes intéressé. Il s'agit en fait d'un code légèrement modifié du journal de Rattle.

Dossiers :
r_nnet.zip  3 kb
 
Dr. Trader:

Content que ça ait marché :) Merci pour le prix.

J'ai essayé d'enlever une entrée (4 cas) - si j'enlève l'entrée_5 ou l'entrée_9 alors rien d'autre ne fonctionne, la neuronique avec la même configuration n'apprend même pas à une erreur inférieure à 50%, commence juste à donner soit 0 ou 1 dans un cas plus large.

Si je supprime input_20, tout va bien, le résultat est correct. Mais ce qui est amusant avec l'entrée_15, c'est que si je la supprime, le neurone ne s'entraîne même pas correctement, les problèmes sont les mêmes que lorsque je supprime l'entrée_5 ou l'entrée_9. Je ne l'ai pas testé davantage.

J'ai joint un fichier avec le code R pour la formation des neurones, si vous êtes intéressé. Il s'agit en fait d'un code légèrement modifié du journal de Rattle.

Envoyez-moi par SMS votre numéro de carte ou de porte-monnaie électronique.
 

En général, le processus est clair : le neurone essaie simplement d'intégrer les données disponibles dans une certaine logique et, si certaines entrées n'apportent pas de nouvelles informations, il minimise leur impact afin qu'elles ne nuisent pas. Il est peu probable que l'on trouve des interrelations complexes entre les entrées, j'en conviens.

En outre, le paquet nnet de R n'est pas exactement un réseau neuronal conventionnel. D'après la description, il devrait utiliser l'apprentissage de second ordre. Habituellement, dans les neurones, les poids changent en fonction des dérivés, mais ici ils changent en fonction des dérivés des dérivés. Et pendant l'apprentissage, une sorte de matrice "hessienne" est construite qui stocke des données importantes sur tous les poids pour tous les exemples d'apprentissage à la fois. Ils disent que c'est très cool, ce paquet doit être fort.https://ru.wikipedia.org/wiki/Алгоритм_Бройдена_-_Флетчера_-_Гольдфарба_-_Шанно - Je n'ai pas compris, mais c'est si quelqu'un est mathématicien alors trouvez la solution.

Алгоритм Бройдена — Флетчера — Гольдфарба — Шанно — Википедия
  • ru.wikipedia.org
Алгоритм Бройдена — Флетчера — Гольдфарба — Шанно (BFGS) (англ. Broyden — Fletcher — Goldfarb — Shanno algorithm) — итерационный метод численной оптимизации, предназначенный для нахождения локального максимума/минимума нелинейного функционала без ограничений. BFGS — один из наиболее широко применяемых квазиньютоновских методов. В...
 
A propos des résultats étranges :
Si vous supprimez tout prédicteur significatif, rien ne fonctionnera. Voici l'interaction.

Chacun des prédicteurs ne dit rien sur l'état de la sortie. Les algorithmes qui tiennent compte de la signification individuelle ne fonctionnent donc pas. De même, les arbres de décision et les forêts aléatoires ne fonctionneront certainement pas, car ils examinent également les prédicteurs individuellement. Mais une immense forêt de dizaines de milliers d'arbres peut accidentellement fusionner des prédicteurs importants dans une seule branche et tout se passera bien. Mais c'est peu probable.

Pourquoi pas ?

L'interaction est l'information qui circule entre de nombreux prédicteurs et la sortie. L'algorithme de dépendance est tel que la somme des prédicteurs significatifs peut être 50/50 paire ou impaire. S'il est pair, le résultat est 1, sinon il est 0. C'est pourquoi la suppression d'au moins un des prédicteurs significatifs brise la dépendance. Et l'ajout de prédicteurs supplémentaires peut rendre la situation bruyante, de sorte que le test statistique ne montre aucune signification.

Je suis vraiment surpris que le SN conventionnel ait pu détecter une telle relation. Maintenant, je commence à croire en la capacité des MLP à détecter des entrées significatives. Yay.

Dans l'ensemble, vous avez mis le doigt sur le problème. Si vous essayez de former une forêt aléatoire, il est presque certain que cela ne fonctionnera pas.

Je suis aussi presque sûr que la régression logistique échouera.

En bref, vous avez besoin d'une énumération stochastique de différents sous-ensembles de prédicteurs avec la bonne fonction de fitness pour ce problème. Ou NS :))

Je posterai ma méthode plus tard.

Peut-être que quelqu'un d'autre essaiera une autre façon de sélectionner les prédicteurs et nous pourrons alors comparer les résultats.