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

 
elibrarius:
Copiez-le sur votre blog, quelqu'un pourrait en avoir besoin. Il n'est pas réaliste de chercher quelque chose ici.

Le blog a aussi ce code. Mais il s'agit d'un travail de base sur la fabrication de kfold, il y a beaucoup de choses à retravailler pour vos tâches spécifiques. De plus, si vous activez le multithreading dans la génétique, elmnn ignorera le grain de gpsfold installé et chaque thread obtiendra quelque chose de différent et non reproductible, pour un tel cas (multithreading dans la génétique) voir les articles de Vladimir Perervenko et sa façon de contrôler gpsfold.

 
Maxim Dmitrievsky:

il y a toujours une dimension supplémentaire et vous devez dessiner une courbe à travers elle d'une manière ou d'une autre, peut-être avec une grande erreur.

Le décrochage augmente l'erreur, non ?

Le décrochage équivaut à la désactivation d'un neurone. Si c'est bruyant, c'est bon.
Et pourquoi inventeraient-ils une chose qui augmente l'erreur - tout est logique, tant que cela contribue à réduire l'erreur.
 
elibrarius:
Le décrochage équivaut à l'arrêt d'un neurone. Si c'est bruyant, c'est bon.
Et pourquoi penser à quelque chose qui augmente les erreurs - tout a un sens si cela contribue à réduire les erreurs.

Ahem... augmenter l'erreur est censé supprimer le surentraînement. Pas toujours, mais comment faire autrement ?

C'est pourquoi on dit que 0,5 est un bon shiba en forex. Pour moi, à partir de 0.3 0.4, ça commence à fonctionner plus ou moins, si c'est moins, ça s'adapte trop en général.

je veux dire, j'ai compris la blague, non ? ils pensent qu'ils sont cool, en fait ils forment juste le modèle de façon médiocre, et il n'y a plus ou moins aucune fuite parce qu'il est négocié à moitié.

 
Dr. Trader:

Python devrait l'être aussi.

Je vois, python est loin de moi du tout... Personne n'a fait un wrapper GUI pour travailler avec NS ?

Dr. Trader:

Je vais lancer l'algorithme ce soir et je vous montrerai ce qu'il en ressort demain.

Merci, ce sera éducatif.

Dr. Trader:

Atteindre une précision de 100 % et espérer que le modèle fonctionne bien est généralement impossible en forex, il faut des mois pour sélectionner des prédicteurs et même une cible qui s'accordent bien ensemble. Habituellement, après avoir atteint une précision de quelques dizaines de fois supérieure à 50 %, le modèle commence à mémoriser des exemples d'entraînement au lieu de trouver des modèles logiques dans ces exemples. Le résultat sur les nouvelles données sera donc de plus en plus mauvais. Sur vos données, j'ai obtenu cet optimum de 60% - lorsque les résultats sur les données d'entraînement et de test sont approximativement égaux, mais avec un partitionnement plus détaillé des arbres et une précision plus élevée, la forêt montre des résultats de plus en plus mauvais sur les nouvelles données.

Quelle est l'urgence, il y a du temps si on ne veut pas le gaspiller.

Cependant, je ne comprends pas bien la différence entre la mémorisation et l'apprentissage, à mon avis, tout ce MO devrait trouver des caractéristiques dans l'ensemble de données et vérifier le résultat attendu avec le résultat mémorisé, mais en tenant compte de la déformation des données, et en conséquence donner sa prédiction en fonction de la déformation. C'est ce que j'avais en tête jusqu'à ce que je commence à m'amuser avec tout ça.

Je suis simplement surpris que l'arbre soit résolu avec différents ensembles de prédicteurs, ce qui signifie qu'il n'est pas construit avec toutes les données et connaissances, et c'est cette circonstance qui me permet de faire une hypothèse sur la possibilité d'une ramification supplémentaire.

 
Maxim Dmitrievsky:

Ahem... en augmentant l'erreur, le surentraînement semble être supprimé. Pas toujours, mais comment pourrait-il en être autrement ?

Ça aussi. Plus précisément, il s'agit de la tâche principale. J'ai l'association de la suppression des neurones avec la suppression des entrées. Peut-être que ce n'est pas bien.

Oui, plutôt dropconnect dans la première couche revient à supprimer des entrées.

 
Elibrarius:

Ça aussi. Plus précisément, il s'agit de la tâche principale. J'associe la suppression des neurones à la suppression des entrées. Il se peut que ce ne soit pas correct.

la suppression des neurones correspond à la suppression des degrés de liberté = augmentation de l'erreur, grossièrement.

Si vous supprimez quelques termes d'une régression, cela équivaut à supprimer des entrées, et dans une SN pleinement cohérente, pourquoi

dropconnect, d'après le nom, oui, il semble que

 
Maxim Dmitrievsky:

la suppression des neurones correspond à la suppression des degrés de liberté = augmentation de l'erreur, grossièrement.

si, à partir de la régression, on retire certains membres, cela équivaut à retirer des entrées, et dans une NS entièrement connectée, pourquoi ?

dropconnect, d'après le nom, - oui, il semble.

Mais aussi avec dropconnect la tâche est compliquée... Par exemple, 50 entrées, 50 neurones.
En supprimant 1 entrée, on supprime 50 connexions pour 50 neurones.
Et il est 50 fois plus difficile de supprimer les 50 connexions pour supprimer une entrée. Et de cette façon, pour passer par les 50 entrées... ça fait 50^50 variations. De toute évidence, c'est une tâche sans espoir. C'est plus facile de traiter les entrées - nous n'avons que 2^50 ))).
 
elibrarius:

La question ne s'adresse pas seulement à vous, mais à tout le monde.

En pratique, c'est le cas, c'est-à-dire que s'il y a des prédicteurs de bruit, NS ne peut pas sortir de 50-55%. S'il est ramassé, il peut même donner 70%.

Mais pourquoi en est-il ainsi ?
1) Eh bien, NS devrait automatiquement sélectionner des poids proches de 0 pour les prédicteurs de bruit pendant la formation (cela équivaut à leur exclusion de la sélection). Nous l'avons vu dans le problème du début de la branche.
2) Si ce n'est pas en s'entraînant à sous-estimer les poids, alors au moins l'abandon devrait les trier...

Cela a été écrit à maintes reprises : les prédicteurs de bruit sont beaucoup plus conviviaux pour les modèles - il y a toujours des valeurs dans le bruit qui améliorent le résultat de l'apprentissage. Le processus est donc inversé - les prédicteurs de bruit ont plus de poids, pas comme vous le suggérez. Ceci est particulièrement visible dans les petits échantillons, qui comptent moins de 1000 observations. Les échantillons de plus de 5000 observations ne sont pas aussi affectés, mais vous devez toujours présélectionner les prédicteurs de bruit.

 
elibrarius:
Mais aussi avec dropconnect la tâche est difficile... Par exemple, 50 entrées, 50 neurones.
En supprimant une entrée, nous supprimons également 50 connexions pour 50 neurones.
Et il est 50 fois plus difficile de supprimer les 50 connexions pour le plaisir de supprimer une entrée. Et de cette façon, pour supprimer les 50 entrées... Apparemment, c'est une tâche sans espoir. Il est plus facile de s'occuper des entrées.
Les entrées sont plus importantes de toute façon, jouer avec les modèles n'est que du chamanisme et ne devrait pas donner de grands gains dans le cas général. J'ai fait un ensemble d'échafaudages, après avoir laissé tomber les échafaudages individuels, je peux améliorer de 0,05, parfois de 0,1 l'erreur (différence entre le stage et le test). Cela ne résout pas le problème principal. Dans les réseaux neuronaux avancés, je ne sais pas comment.
 
SanSanych Fomenko:

Cela a été écrit à maintes reprises : les prédicteurs de bruit sont beaucoup plus conviviaux pour les modèles - il y a toujours des valeurs dans le bruit qui améliorent le résultat de l'apprentissage. Le processus est donc inversé - les prédicteurs de bruit ont plus de poids, pas comme vous le suggérez. Ceci est particulièrement visible dans les petits échantillons, qui sont inférieurs à 1000 observations. Les échantillons de plus de 5000 observations ne sont pas aussi affectés, mais vous devez toujours présélectionner les prédicteurs de bruit.

Peut-être existe-t-il une technologie qui permet de hiérarchiser les prédicteurs à utiliser dans NS/Tree/Forest en fonction de leur importance du point de vue de l'analyste ?