Discussion de l'article "Les forêts aléatoires prédisent les tendances" - page 10
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Le surentraînement est un terme bien établi et très spécifique. Non seulement vous le remplacez, mais vous n'expliquez pas non plus ce que vous entendez par là.
Cela me rappelle beaucoup Sulton dans la manière de communiquer.
L'entraînement du modèle consiste à extraire l'essence du processus, dans le jargon local, les "modèles", qui se produisent non seulement dans l'échantillon d'entraînement, mais aussi en dehors de celui-ci.
On parle de sur-entraînement (overfitting) lorsque le modèle commence à sélectionner des éléments aléatoires qui n'existent pas en dehors de l'échantillon d'entraînement et que, de ce fait, le modèle donne une valeur d'erreur très différente de l'erreur d'entraînement.
De nombreuses personnes sur ce forum ont été confrontées au surentraînement (peut-être sans s'en rendre compte), car il est très facile d'obtenir un EA surentraîné à l'aide de l'optimisation dans le testeur.
Mais tout ceci n'est que de la philosophie.
La réalité réside dans les compétences spécifiques, dans les outils utilisés dans ce processus.
Avec mon article et mon livre, je n'essaie pas de résoudre le problème du surentraînement, mais seulement d'ouvrir la porte au monde des modèles prédictifs, qui (les modèles) enseignent à prédire des choses de qualité dans le futur. Si l'estimé gpwr avaitparcouru Rattle après y avoir passé quelques heures, ses questions auraient beaucoup plus de contenu sans démontrer qu'il n'a pas pris la peine de lire mon article mais qu'il a une opinion sur son contenu. Mais surtout, Rattle couvre l'ensemble du processus de création de modèles très complexes, y compris l'estimation de la performance des modèles hors échantillon, la liste des prédicteurs significatifs, le nombre de modèles trouvés ..... J'utilise toujours Rattle, bien que les modèles réels soient différents. Juste pour comprendre, tester une idée..... 20-30 minutes et l'orientation du développement peut changer radicalement.
Un objectif très limité.
En plus de l'article et du livre, je propose des services payants. Et c'est à chacun de décider si j'ai les qualifications nécessaires pour effectuer la liste de travaux annoncée. Et moi, avant d'accepter une commande particulière, je décide si le client est capable de comprendre le résultat de mon travail.
1. former un ensemble de prédicteurs assez important, par exemple 50 pièces avec un nombre de barres de 15 000
2. En utilisant l'un des algorithmes ci-dessus, nous sélectionnons des prédicteurs sur ces 15 000 barres - nous obtenons généralement 15 à 20 pièces, qui sont utilisées dans la construction du modèle plus souvent que dans 20 % des cas.
3. Nous prenons ensuite une fenêtre plus petite, par exemple 2000 barres, et commençons à la déplacer une barre à la fois, en sélectionnant des prédicteurs significatifs parmi les 20 prédicteurs sélectionnés précédemment sur 50.
4. La liste spécifique des prédicteurs significatifs change en permanence.
1. comment ? Avez-vous besoin de 60 ans d'historique quotidien ?
2. Vous vous projetez dans l'avenir, cher collègue. Vous sélectionnez 15 à 20 prédicteurs sur l'ensemble de l'historique, puis vous les vérifiez sur l'échantillon "non entraîné" des mêmes 15 000 mesures ? Si quelqu'un me disait aujourd'hui quels 15-20 prédicteurs seront "échantillonnés" dans le futur, je n'aurais besoin de rien d'autre pour devenir milliardaire.
J'utilise MatLab. Il existe de nombreuses boîtes à outils différentes. Vous ne devez donc pas supposer que je ne connais pas vos méthodes. Vous ne devez pas non plus supposer que j'ai une approche superficielle ou diligente (ce qui est exactement ce que je pense de votre approche). Tout le monde peut utiliser différents paquets et boîtes à outils. Mais tout le monde ne peut pas en comprendre l'essence. Et vous n'avez pas besoin de faire la publicité de vos services et de votre livre pour moi. Mes problèmes sont bien plus complexes que la définition du surentraînement. J'ai 10 000 indicateurs-prédicteurs économiques et il est très difficile de choisir ceux qui influencent le marché. Si je passe en revue chaque prédicteur individuellement, je passerai à côté de situations comme mon exemple ci-dessus, lorsque la série cible ne correspond pas à l'un des prédicteurs, mais que ce prédicteur est inclus dans le modèle de la série cible. Si vous passez en revue toutes les combinaisons possibles de variables prédicteurs différentes, vous n'aurez pas assez de temps pour le faire. Même la recherche de deux prédicteurs sur 10 000 prend plus d'une semaine. Jusqu'à présent, j'ai mis au point un réseau biologique auto-élagueur pour sélectionner N variables pertinentes (c'est long à expliquer, il faut un peu d'entraînement pour comprendre). Ce réseau est plus rapide que la recherche de toutes les combinaisons possibles de prédicteurs, mais reste lent. Donc si vous avez une idée brillante pour déterminer que x1 fait partie du modèle y en regardant seulement y et x1 dans mon exemple, je vous donnerai une médaille d'or.
1) Comment cela se fait-il ? Il faut 60 ans d'histoire quotidienne ?
2. Vous vous projetez dans l'avenir, cher collègue. Vous sélectionnez 15 à 20 prédicteurs sur l'ensemble de l'historique et vous les vérifiez ensuite sur l'échantillon "non entraîné" des mêmes 15 000 mesures ? Si quelqu'un me disait aujourd'hui quels 15-20 prédicteurs seront "échantillonnés" dans le futur, je n'aurais besoin de rien d'autre pour devenir milliardaire.
J'utilise MatLab. Il existe de nombreuses boîtes à outils différentes. Vous ne devez donc pas supposer que je ne connais pas vos méthodes. Vous ne devez pas non plus supposer que j'ai une approche superficielle ou diligente (ce qui est exactement ce que je pense de votre approche). Tout le monde peut utiliser différents paquets et boîtes à outils. Mais tout le monde ne peut pas en comprendre l'essence. Et vous n'avez pas besoin de faire la publicité de vos services et de votre livre pour moi. Mes problèmes sont bien plus complexes que la définition du surentraînement. J'ai 10 000 indicateurs-prédicteurs économiques et il est très difficile de choisir ceux qui influencent le marché. Si je passe en revue chaque prédicteur individuellement, je passerai à côté de situations comme mon exemple ci-dessus, lorsque la série cible ne correspond pas à l'un des prédicteurs, mais que ce prédicteur est inclus dans le modèle de la série cible. Si vous passez en revue toutes les combinaisons possibles de variables prédicteurs différentes, vous n'aurez pas assez de temps pour le faire. Même la recherche de deux prédicteurs sur 10 000 prend plus d'une semaine. Jusqu'à présent, j'ai mis au point un réseau biologique auto-élagueur pour sélectionner N variables pertinentes (c'est long à expliquer, il faut un peu d'entraînement pour comprendre). Ce réseau est plus rapide que la recherche de toutes les combinaisons possibles de prédicteurs, mais reste lent. Donc, si vous avez une idée brillante pour déterminer que x1 fait partie du modèle y en regardant seulement y et x1 dans mon exemple, je vais vous donner une bonne idée.
1) Comment cela se passe-t-il ? 60 ans d'histoire quotidienne sont nécessaires ?
N'exagérons rien.
Je travaille dans le forex. Je prédis les tendances et je suis assez satisfait des tendances qui ont des renversements de 50-100 pips. Je n'ai pas besoin d'un historique journalier pour cela. Dans mes exemples, il s'agit de H1, 18000 c'est trois ans.
2. Vous vous projetez dans l'avenir, cher collègue. Est-ce que vous sélectionnez 15-20 prédicteurs sur l'ensemble de l'historique et les testez ensuite sur un échantillon "non entraîné" des mêmes 15000 barres ?
Je l'ai déjà expliqué. Il est très souhaitable que vous lisiez ce que j'explique pour vous personnellement. Je ne me projette pas dans l'avenir. La performance est toujours hors échantillon. Rattle n'offre pas l'autre possibilité que vous suggérez, même si je le voulais.
J'ai des problèmes bien plus complexes que la définition du surentraînement. J'ai 10 000 indicateurs économiques - prédicteurs, et il est très difficile de choisir ceux qui influencent le marché. Si vous passez en revue chaque prédicteur individuellement,
La recherche complète n'existe pas. Les forêts aléatoires fonctionnent mieux lorsque le nombre de prédicteurs est mesuré en milliers, j'ai vu une fois un chiffre de 50 mille. Sur mes données, les chiffres sont les suivants : 90 prédicteurs, 10000 lignes (barres) - le temps d'apprentissage du modèle est d'environ une minute sur un cœur. Résultat : étiquettes de classe, probabilité des étiquettes de classe, importance de chaque prédicteur dans la construction du modèle.
Ce réseau est plus rapide qu'une recherche de toutes les combinaisons possibles de prédicteurs,
Il n'y a pas de recherche de prédicteurs. L'algorithme est le suivant. Il existe un paramètre - le nombre de prédicteurs dans un nœud de l'arbre, sur la base duquel la décision de classification est prise. Vous pouvez le définir vous-même, par défaut = sqrt (j'ai 90 du nombre maximum de prédicteurs). Environ 9 prédicteurs sont utilisés dans chaque nœud. L'algorithme, lorsqu'il considère chaque nœud de l'arbre, prend toujours 9 prédicteurs, mais choisit toujours au hasard parmi le nombre total=90. Grâce à la validation croisée, les prédicteurs les plus significatifs sont finalement sélectionnés et utilisés dans la construction de l'arbre final.
PS.
Pourquoi n'utilisez-vous pas R ? Si c'est payant, alors SAS....
Matlab ne fait pas du tout partie des progiciels statistiques spécialisés.
Expliquez-nous, s'il vous plaît, pourquoi vous donnez-vous la peine de sélectionner des prédicteurs ? Après tout, les algorithmes modernes sont capables de traiter des milliers de prédicteurs, même si la plupart de ces prédicteurs sont aléatoires. Et les modèles sont fiables.
Malheureusement, ce n'est pas le cas. Du moins, pas pour moi.
Je ne connais pas d'algorithmes de sélection des prédicteurs (bien que je connaisse plusieurs dizaines d'algorithmes de sélection), à la suite desquels le surentraînement (des algorithmes) du modèle serait exclu.
La vieille règle des statistiques s'applique toujours : "Garbage in - rubbish out".
Malheureusement, ce n'est pas le cas. Du moins pour moi.
Je ne connais aucun algorithme de sélection de prédicteurs (bien que je connaisse plusieurs dizaines d'algorithmes de sélection), après l'utilisation duquel (des algorithmes) le surentraînement du modèle serait exclu.
La vieille règle des statistiques s'applique toujours : "Garbage in - rubbish out".
Je ne sais pas, j'ai testé mon programme et il semble fonctionner correctement.
Si je peux me permettre de citer un extrait de mon article sur une autre ressource : "Nous avons testé l'exactitude du programme sur les données extraites d'ici :
http://archive.ics.uci.edu/ml/index.html
(Site du Centre pour l'apprentissage automatique et les systèmes intelligents).
La longueur de l'exemple d'entraînement était de 10000 caractéristiques. 3000 d'entre elles étaient de nature aléatoire et spécialement ajoutées pour tester la qualité de la classification. Au total, 100 exemples ont été utilisés dans l'échantillon de formation, ce qui est sans aucun doute très peu, mais nous n'avons pas pu en trouver davantage. Lors des tests, nous avons également utilisé d'autres exemples de 100 pièces.
(Lien vers l'archive contenant les données originales).
La précision de la reconnaissance était de 75 % sur les données non familières. Nous sommes convaincus que si nous disposions d'un plus grand nombre de données pour nous entraîner, nous pourrions augmenter de manière significative la précision des prédictions. Fin de citation.
P.S. : La formation a duré environ 2 minutes sur un PC équipé d'un processeur à 8 cœurs et de 8 Go de mémoire, car le temps de formation de l'algorithme n'augmente pas de manière exponentielle avec le nombre de prédicteurs. Et les prédicteurs non informatifs ne sont pas automatiquement utilisés.
Si cela intéresse quelqu'un, voici le lien cybercortex.blogspot.ru (ne le considérez pas comme une publicité :)
Je ne sais pas, j'ai testé mon programme et il semble fonctionner correctement.
Si je peux me permettre de citer mon texte sur une autre ressource : "Nous avons testé l'exactitude du programme sur les données extraites d'ici :
telles que des indicateurs sont utilisées. Or, il s'avère qu'il est très facile d'inclure différents types de déchets dans le modèle et que la règle "déchets entrants - déchets sortants" commence à fonctionner.
L'inclusion de prédicteurs inutiles dans le modèle, c'est-à-dire de prédicteurs qui ont une faible influence sur la variable cible, entraîne un surentraînement du modèle, dans lequel tout se passe bien sur l'échantillon d'entraînement, mais des problèmes surviennent en dehors de l'échantillon.
Vous disposez d'un excellent exemple typique pour illustrer le problème.
1. En surface, il y a le fait que, contrairement à votre exemple, toutes les séries financières appartiennent à ce que l'on appelle les séries temporelles, dans lesquelles l'ordre des valeurs est important. Par conséquent, les modèles des marchés financiers, contrairement aux modèles médicaux, doivent tenir compte de cette nuance.
2. Mais il y a une circonstance beaucoup plus grave, qui est directement liée au sujet de votre question.
En médecine, la solution à la question "malade-non malade" renvoie au diagnostic, et c'est la moitié de la médecine. Beaucoup de gens font des recherches, justifient, cherchent des "prédicteurs" dans notre terminologie, qui selon ces chercheurs sont pertinents pour le verdict "malade ou pas malade". Nous ne voyons rien de tel sur le marché des changes. Sur le marché boursier, les recherches sur la relation entre les causes économiques et la direction du mouvement sont courantes, mais rien de tout cela ne s'applique aux intervalles intrajournaliers.
C'est pourquoi, lors de la construction de modèles d'apprentissage automatique sur des intervalles intrajournaliers, des valeurs formelles et mathématiques telles que des indicateurs sont utilisées. Or, il s'avère qu'il est très facile d'inclure différents types de déchets dans le modèle et que la règle "déchets entrants - déchets sortants" commence à fonctionner.
L'inclusion de prédicteurs inutiles dans le modèle, c'est-à-dire de prédicteurs qui ont une faible influence sur la variable cible, conduit à un réentraînement du modèle, dans lequel tout va bien sur l'échantillon d'entraînement, mais en dehors de l'échantillon, il y a des problèmes.
1. "Toutes les séries financières font partie des séries dites temporelles, dans lesquelles l'ordre des valeurs est important. - Personne ne le nie et cet ordre n'est pas violé, même s'il s'agit d'une série temporelle. Vous, qui avez entraîné le modèle sur les prix P1, P2, P3...Pn, ne changez pas leur ordre lorsque vous testez sur Out Of Samples ou en utilisation réelle.
2. Je suis d'accord avec vous sur un point : si les données d'entrée sont constituées à 100 % de prédicteurs inutiles, les données de sortie sont inutiles à 100 %. C'est évident et personne ne le conteste. Tout ce que je dis, c'est qu'il existe des algorithmes pour lesquels l'élimination des données n'a pas d'importance, parce qu'ils donnent de bons résultats en dehors des échantillons avec n'importe quelle quantité de données erronées autre que 100 %, parce que les données erronées ne sont pas utilisées de facto. Il est également important de faire la distinction entre les algorithmes pour lesquels la réduction de la dimensionnalité des données est essentielle, comme l'analyse en composantes principales ou les autoencodeurs, et les algorithmes qui sont insensibles à la dimensionnalité des données.
"Sur le marché boursier, les recherches sur la relation entre les causes économiques et la direction du mouvement sont courantes, mais rien de tout cela ne s'applique aux intervalles intrajournaliers". - Et bien si, et cela s'applique à des intervalles intrajournaliers, tels que la publication des chiffres de l'emploi non agricole.
3. bien sûr, je vous comprends, chacun gagne ce qu'il peut, mais avez-vous déjà mis en œuvre vous-même des algorithmes d'apprentissage automatique ? Je suis convaincu que pour comprendre le fonctionnement d'un algorithme, il faut l'écrire soi-même à partir de zéro. Croyez-moi, dans ce cas, vous découvrirez des choses qui ne sont pas écrites dans les livres. Et même des éléments apparemment évidents qui semblaient faciles auparavant, fonctionnent en fait différemment de ce que vous pensiez :) Je vous prie d'agréer, Madame, Monsieur, l'expression de mes salutations distinguées.
En outre, lors de la construction de modèles d'apprentissage automatique sur des intervalles intrajournaliers, des valeurs formelles et mathématiques telles que des indicateurs sont utilisées. Or, il s'avère qu'il est très facile d'inclure différents types de déchets dans le modèle et que la règle "déchets entrants - déchets sortants" commence à fonctionner.
....
3. bien sûr, je vous comprends, chacun gagne comme il sait, mais avez-vous déjà mis en œuvre vous-même des algorithmes d'apprentissage automatique ? Je suis convaincu que pour comprendre le fonctionnement d'un algorithme, il faut l'écrire soi-même à partir de zéro. Croyez-moi, dans ce cas, vous découvrirez des choses qui ne sont pas écrites dans les livres. Et même des éléments apparemment évidents qui semblaient faciles auparavant, fonctionnent en fait différemment de ce que vous pensiez :) Avec tout le respect que je vous dois.