Discussion de l'article "Les forêts aléatoires prédisent les tendances" - page 11
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
Je m'occupe de choses très spécifiques, je ne suis donc pas enclin à discuter de quoi que ce soit "en général".
Donc, plus précisément.
Il y a environ 140 paquets d'apprentissage automatique dans le shell de caret - j'utilise deux paquets pour les forêts d'arbres aléatoires et un paquet pour les machines à vecteurs de support (SVM) dans mon travail. Comme vous pouvez le constater, je ne suis pas en mesure de généraliser les outils d'apprentissage automatique disponibles dans R.
De plus, il s'agit d'une branche qui utilise les mêmes outils d'apprentissage automatique que R.
Il s'agit d'une branche qui utilise le très limité shell Rattle, dont je n'ai utilisé que le package randomforest dans cet article.
De plus.
Je n'utilise qu'une partie des fonctions de ce package dans cet article.
De plus, je commenterai votre article en n'utilisant que ces limitations, mais je peux mettre le code du programme et les résultats de son utilisation sous mes mots.
Donc, je vous prie d'agréer, Monsieur le Président, l'expression de mes sentiments distingués.
1. "Toutes les séries financières sont des séries dites temporelles, dans lesquelles l'ordre des valeurs est important. - personne ne le nie et cet ordre n'est pas rompu, 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 lorsque vous les utilisez réellement.
Ceci est totalement incohérent avec les paquets spécifiés. Il est possible d'implémenter votre remarque dans d'autres paquets, mais le code serait beaucoup plus complexe. Le code utilisé dans l'article (qui est l'approche la plus courante dans les algorithmes d'apprentissage automatique) est le suivant :
L'échantillon initial (jeu de données) est divisé en trois parties : formation (70 %), test (15 %), validation (15). L'algorithme de partitionnement est le suivant : par exemple, pour la formation, 70 % des lignes de l'ensemble de données initial sont sélectionnées de manière aléatoire plutôt que séquentielle. Sur les 30 % restants, 15 % sont à nouveau sélectionnés de manière aléatoire. Il est évident que les 15 % restants constituent également une séquence aléatoire de lignes. Le respect de la séquence des barres ne fait aucun doute.
Mais ce n'est pas tout.
La formation sur l'ensemble d'entraînement n'utilise qu'une partie des données (environ 66 %). La partie restante des données est l'estimation hors échantillon (OOS). En d'autres termes, les barres sur lesquelles le VO a été calculé étaient différentes, mais elles ont été mélangées avec les barres sur lesquelles l'entraînement a été effectué. Le document donne cette estimation et elle donne toujours la meilleure performance.
Ensuite, dans rattle, vous pouvez obtenir une estimation du modèle entraîné sur deux autres ensembles de données. En comparant TROIS estimations, il est possible de tirer des conclusions.
Une fois de plus, l'entraînement de modèles sur des séries temporelles demande un effort particulier. Si vous souhaitez utiliser rattle, la variable cible et les prédicteurs correspondants doivent permettre un ordre aléatoire des barres lors de l'entraînement et du test.
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 insensibles à la dimensionnalité des données.
Ce n'est pas le cas. Randomforest dispose d'un algorithme intégré pour déterminer l'importance des prédicteurs. Cet algorithme est totalement inutile si les prédicteurs ne sont pas significatifs. Le paquet randomforest lui-même dispose d'une fonction supplémentaire pour éliminer les prédicteurs inutiles, mais elle n'est pas disponible dans rattle.
" 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." - Eh bien si, et cela s'applique à des intervalles intrajournaliers, tels que la publication des chiffres de l'emploi non agricole.
Je ne sais pas, je ne connais pas cette ressource. Mais je connais bien l'économie. Et je peux affirmer en toute confiance que les données horaires de Gazprom ne dépendent pas des données économiques d'autres entreprises. Pas de questions sur les résultats du mois.
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 :)
C'est une chose de faire des mercenaires et une autre de les conduire. Je préfère conduire, mais chacun fait son propre choix.
PS.
J'ai écrit un livre qui contient des réponses plus approfondies aux questions que vous avez posées.
PSPS
Mon expérience personnelle montre que la majeure partie du temps, jusqu'à 70 %, est consacrée à la sélection des prédicteurs - un travail ennuyeux et fastidieux. Pour vendre le livre, un collectif s'est formé - personne ne parvient à sélectionner rapidement et efficacement des prédicteurs qui ne génèrent pas de modèles surentraînés. Et la plupart des lecteurs ont déjà dépassé le livre et utilisent de meilleurs outils pour leur travail.
Je vous remercie de l'intérêt que vous portez à ce sujet.
Je vous remercie pour votre réponse détaillée.
Mais je vous demanderais de clarifier certains points.
Tout d'abord, vous avez écrit plus haut que l'exemple de mon programme travaillant sur des données médicales est "illustratif" et vous avez fait référence au fait que les séries temporelles ont une séquence stricte.
"Toutes les séries financières sont des séries dites temporelles, dans lesquelles l'ordre des valeurs est important.
Puis vous écrivez que dans Random Forest, que vous utilisez :"Il ne peut être question d'un quelconque respect de la séquence des barres."
Permettez-moi de vous poser la question suivante : comment Random Forest fonctionne-t-il sur des séries temporelles si l'algorithme utilise initialement la méthode du sous-espace aléatoire et mélange ces séries temporelles ?
"Une fois de plus, l'apprentissage de modèles sur des séries temporelles nécessite un effort particulier." - Nous sommes alors revenus au point de départ. Alors pourquoi perdre du temps avec de tels algorithmes s'il faut un effort particulier pour les faire fonctionner sur des séries temporelles ? Nous ne parlons pas ici d'un point de vue académique dans le contexte de la recherche universitaire, où de tels travaux sont encouragés, mais d'un point de vue pratique.
"Je peux affirmer en toute confiance que le sentiment de Gazprom est indépendant de toute donnée économique concernant d'autres entreprises. - Cela signifie-t-il que les actions de Gazprom ne sont aucunement affectées par l'indice RTS, qui comprend Gazprom et d'autres entreprises ?
"C'est une chose de fabriquer une Mercedes et une autre de la conduire. Je préfère conduire, mais chacun fait son propre choix. "En sophistique, on appelle cela une digression par rapport à la thèse initiale :) Je parlais des algorithmes et de leur réalisation, et vous avez imperceptiblement avancé une thèse sur les voitures, qui est extérieurement liée à la thèse initiale, mais qui ne lui est pas identique. Je pense qu'il y a un "petit" écart entre les algorithmes et les voitures. Ne m'en veuillez pas, j'aime juste remarquer de telles particularités :)
Pour résumer : ce que vous écrivez spécifiquement sur Rattle et Random Forest est très probablement pertinent pour la réalité et vous êtes bien informé à ce sujet.
Mais une question reste en suspens : pourquoi une personne, ayant le choix entre deux algorithmes de qualité égale (le premier fonctionnant parfaitement sur des séries temporelles sans efforts ni compétences particulières, et le second - avec ces efforts et compétences), devrait-elle choisir le second ? Et sera-t-il optimal dans ce cas ?
Je n'ai pas pu dépasser cette phrase. Respect !
Mais une question reste en suspens : pourquoi une personne, ayant le choix entre deux algorithmes de qualité de classification équivalente (le premier fonctionnant parfaitement sur des séries temporelles sans efforts ni compétences particulières, et le second - avec de tels efforts et compétences), devrait-elle opter pour le second ? Et sera-t-il optimal dans ce cas ?
Des outils différents résolvent des problèmes différents, qui sont eux-mêmes déterminés par le matériel disponible.
Le hochet est un excellent outil pour tester rapidement une idée. Mais il sera assez difficile de construire un modèle fonctionnel avec lui.
Vous pouvez aller plus loin dans Rattle et en tirer un journal d'accès facile dans le cadre de l'ensemble randomforest. Si votre variable cible est, par exemple, la prédiction des augmentations d'actifs plutôt que des tendances, et que vous avez réussi à trouver des prédicteurs pour cela, alors randomforest sera très utile. Si vous souhaitez prédire des tendances, vous devrez diviser manuellement l'échantillon en morceaux, en préservant la séquence, ce qui est difficile (bien que possible) dans rattle et travailler directement dans le progiciel randomforest, qui n'impose aucune restriction sur l'algorithme de formation de l'échantillon d'entrée. Il existe un ensemble assez complet d'outils de génération d'échantillons à tester. Il s'agit de paquets distincts.
Eh bien, et ainsi de suite. La conclusion générale est qu'il n'existe pas d'outil "optimal".
Chaque paquet comporte de nombreuses subtilités qui permettent de résoudre certains problèmes liés aux données brutes. En général, le processus n'est même pas très simple.
PS. Lorsque j'ai parlé de Gazprom, je voulais parler de la relation entre les cotations et les valeurs de type profit. Et l'indice est arithmétique, la même dinde..... Mais c'est un autre problème... Bien que l'utilisation de l'apprentissage automatique en bourse soit plus prometteuse que sur le forex. C'est ce qu'il me semble.
Différents outils permettent de résoudre différents problèmes, qui sont eux-mêmes déterminés par le matériel disponible.
Le hochet est un excellent outil pour tester rapidement une idée. Mais il est difficile de construire un modèle fonctionnel avec cet outil.
Vous pouvez aller plus loin dans Rattle et en tirer un journal d'accès facile dans le cadre de l'ensemble randomforest. Si votre variable cible est, par exemple, la prédiction des incréments d'actifs plutôt que des tendances, et que vous avez réussi à trouver des prédicteurs pour cela, alors randomforest sera très utile. Si vous souhaitez prédire des tendances, vous devrez diviser manuellement l'échantillon en morceaux, en préservant la séquence, ce qui est difficile (bien que possible) dans rattle et travailler directement dans le progiciel randomforest, qui n'impose aucune restriction sur l'algorithme de formation de l'échantillon d'entrée. Il existe un ensemble assez complet d'outils de génération d'échantillons à tester. Il s'agit de paquets distincts.
Eh bien, et ainsi de suite. La conclusion générale est qu'il n'existe pas d'outil "optimal".
Chaque paquet comporte de nombreuses subtilités qui permettent de résoudre certains problèmes liés aux données brutes. En général, le processus n'est même pas très simple.
PS. Lorsque j'ai parlé de Gazprom, je voulais parler de la relation entre les cotations et les valeurs de type profit. Et l'indice est arithmétique, la même dinde..... Mais c'est un autre problème... Bien que l'utilisation de l'apprentissage automatique en bourse soit plus prometteuse que sur le forex. Il me semble.
Article intéressant, merci. J'ai entendu parler de R pour la première fois, cela semble très utile. Cela fait longtemps que je veux créer un réseau neuronal capable de trader sur la base de données historiques, je vais essayer de décharger l'historique de mt5 (ohlc, spread, volumes), de le passer à rattle, et de voir ce qui se passe.
Rattle a six modèles, l'un d'entre eux est NS. Je recommande de comparer les résultats de NS avec les forêts aléatoires, ada et SVM. Je pense que vous serez très surpris par les résultats.
Article intéressant, merci. J'ai entendu parler de R pour la première fois, cela semble très utile. Cela fait longtemps que je veux faire un réseau neuronal qui peut trader sur la base de données historiques, je vais essayer de décharger l'historique de mt5 (ohlc, spread, volumes), de le passer à rattle et de voir ce qu'il se passe.
C'est exactement ce pour quoi rattle n'est pas conçu. Vous devez travailler directement dans R. Voici une variante de cette solution https://www.mql5.com/fr/articles/1103.
Bonne chance