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

 
Andrey Dik:

C'est-à-dire qu'il est utile de le faire. Ainsi, au lieu de 4 fractionnements, ce qui n'est évidemment pas suffisant, vous devriez faire 40 fractionnements. Pour 4 cœurs, le calcul sera 10 fois plus long, mais je suppose que le temps peut être sacrifié en faveur de la robustesse.

Pas évidemment.

Par exemple, attendre 10 heures pour les calculs au lieu d'une heure est inacceptable pour le daytrading. Même si nous laissons l'ordinateur pendant la nuit, nous obtiendrons un modèle sur des données inévitablement périmées.

Il faut donc trouver un compromis raisonnable entre le temps de calcul et la qualité de la simulation. Et la variante la plus optimale consiste à paralléliser tout ce qui peut être calculé en parallèle, tandis que tout ce qui ne peut pas être parallélisé doit être calculé séquentiellement.

En dernier recours, vous pouvez passer à un plus grand nombre de cœurs ou construire un cluster de calcul composé de plusieurs ordinateurs personnels.

Et je ne parle même pas du fait que le code des algorithmes d'apprentissage automatique présente souvent des possibilités d'optimisation.

Il est également possible qu'une partie du multitâche soit transférée du CPU au GPU.

C'est-à-dire qu'il y a beaucoup de solutions potentielles au problème (la liste peut être longue) et "faire une bosse" dans le logiciel n'est pas la meilleure d'entre elles et, comme l'expérience le montre, souvent la plus inadéquate.

Распределенные вычисления в сети MQL5 Cloud Network
Распределенные вычисления в сети MQL5 Cloud Network
  • cloud.mql5.com
Заработать деньги, продавая мощности своего компьютера для сети распределенных вычислений MQL5 Cloud Network
 
Yury Reshetov:

Pas évident.

Par exemple, attendre 10 heures au lieu de 1 heure pour les calculs est inacceptable pour le daytrading. Même si vous laissez l'ordinateur pendant la nuit, vous obtiendrez un modèle sur des données manifestement périmées.

Il est donc nécessaire de trouver un compromis raisonnable entre le temps de calcul et la qualité de la modélisation. Et le meilleur moyen est de paralléliser tout ce qui peut être calculé en parallèle, tandis que tout ce qui ne peut pas l'être doit être calculé de manière séquentielle.

En dernier recours, il est possible de passer à un plus grand nombre de cœurs, ou de construire une grappe de calcul composée de plusieurs ordinateurs personnels.

Et je ne parle même pas du fait que le code des algorithmes d'apprentissage automatique présente souvent des possibilités d'optimisation.

Il est également possible qu'une partie du multitâche soit déplacée du CPU au GPU.

C'est-à-dire qu'il y a beaucoup de façons potentielles de résoudre le problème (la liste peut être poursuivie) et "faire une oreille de cochon" dans le logiciel n'est pas la meilleure solution et, comme l'expérience le montre, c'est souvent la plus inadéquate.

Je n'insiste pas sur l'option "bosse", je demande simplement : plus les données seront divisées en variantes, plus on pourra obtenir une meilleure formation en faisant une analyse des résultats. Disons que dans 90 % des cas, nous constatons que le modèle produit des résultats adéquats sur les données de test et que dans 10 % seulement, nous avons un surentraînement, ce qui signifie que le modèle a une valeur en soi. Et si c'est l'inverse, ça vaut le coup de recycler. Et si vous divisez les données en seulement 4 variantes différentes, la probabilité d'obtenir un modèle surentraîné est extrêmement élevée.

Encore une fois, je n'aborde pas les aspects "matériels", je ne fais que préciser les aspects "logiciels".

 
Vizard_:
...
Ne pas avoir un avantage sur le connu..... mais personne ne le croira))))

Donnez un exemple concret de ... connus qui "présentent des avantages".

Et de votre part rien que des critiques non fondées, qui se terminent toujours par le fait que vous ne donnez pas d'échantillon, vous ne montrez pas le logiciel (tout est strictement confidentiel, les témoins sont supprimés). Mais vous établissez des chiffres irréalistes que personne d'autre que vous ne peut ni confirmer, ni infirmer.

Question banale pour une énigme : si, selon les citations, vous "avez la possibilité de recevoir" 92% et des kopecks de capacité de généralisation, alors pourquoi êtes-vous toujours engagé dans la critique vide de certains ne pas "avoir des avantages avec le connu ...", et pas engagé dans l'achat : usines, journaux, navires à vapeur, îles, yachts, etc ? Et quand pourrai-je voir votre visage sur la couverture de Forbes ?

 
Alexey Burnakov:


Il existe des règles claires pour traiter les interactions dans les modèles linéaires. Ils sont un peu plus compliqués que le traitement par combinaison linéaire: https://www.r-bloggers.com/interpreting-interaction-coefficient-in-r-part1-lm/.

Mais vous devez fouiller dans de nombreuses combinaisons pour trouver des interactions significatives. Maintenant c'est une déception.

J'ai regardé, merci.

Ma perplexité n'a fait qu'augmenter à sa lecture, bien qu'avec une nouvelle compréhension du mot "interaction".

Ma perplexité est fondée sur le fait que tout chiffre dans les statistiques doit avoir un contenu quelconque.

Prenez cette équation lm

zz ~ rsi*stoch

Individuellement, chaque indicateur a une certaine signification, mais quelle est la signification de leur produit ? Quelle est la signification de cette "interaction" ? Ou devons-nous simplement obtenir un nouveau prédicteur de contenu inconnu et voir comment il affecte la variable cible ?

 
SanSanych Fomenko:

J'ai regardé, merci.

Ma perplexité n'a fait qu'augmenter à la lecture de ce document, même si j'ai une nouvelle compréhension du mot "interaction".

Ma perplexité est fondée sur le fait que tout chiffre dans les statistiques doit avoir un contenu quelconque.

Prenez cette équation lm

zz ~ rsi*stoch

Individuellement, chaque indicateur a une certaine signification, mais quelle est la signification de leur produit ? Quelle est la signification de cette "interaction" ? Ou devons-nous simplement obtenir un nouveau prédicteur de contenu inconnu et voir comment il affecte la variable cible ?

C'est drôle de t'écouter parfois.)

Aucune nouvelle entité n'est physiquement obtenue à partir de la multiplication, bien que l'interaction compte exactement comme une multiplication dans la régression classique.

L'angle de pente pour le premier prédicteur dépendra du niveau du second prédicteur. C'est l'essence même de l'interaction. Il s'agit d'une simplification. Il y a des nuances. Mais connaissant tous les coefficients d'un tel palier, nous pouvons dire que, par exemple, une augmentation du niveau x1 de 1 augmentera le niveau cible de 0,1 lorsque le niveau x2 = 3. Donc ça se passe comme ça.

 
Andrey Dik:

Je n'insiste pas sur la "variante de bosse", je demande simplement : plus les données seront divisées en variantes, plus vous pourrez obtenir une meilleure formation et analyser les résultats.

...

Encore une fois, je n'aborde pas les aspects "matériels", je ne fais que préciser les aspects "logiciels".

Disons que n'importe quel imbécile pourrait simplement insérer une boucle de 10 itérations et augmenter le temps de calcul d'un ordre de grandeur pour une réduction insignifiante de la probabilité d'irrégularité des distributions de motifs dans certaines parties d'un échantillon. Le code source de jPrediction est dans le domaine public et peut être modifié par quiconque en a envie.

Je suis beaucoup plus intéressé par le fait de consacrer mon temps et mes efforts à atteindre des objectifs d'une manière plus prometteuse : créer un algorithme moins exigeant en ressources informatiques et en temps de calcul pour former des modèles à plus forte capacité de généralisation.

 
Yury Reshetov:

Disons que n'importe quel imbécile peut prendre un cycle de 10 itérations et augmenter le temps de calcul d'un ordre de grandeur au nom d'une réduction insignifiante de la probabilité d'irrégularité des distributions de motifs dans certaines parties d'un échantillon. Le code source de jPrediction est disponible publiquement et peut être modifié par quiconque en a envie.

Je suis bien plus intéressé par le fait de consacrer mon temps et mes efforts à atteindre un objectif similaire d'une manière plus prometteuse : créer un algorithme moins gourmand en ressources de calcul et en temps d'un ordinateur.

Yuri, je ne vous demande pas de changer ou de modifier quoi que ce soit dans votre logiciel, et je ne connais même rien à Java, donc, bien que je veuille regarder votre code, je n'y comprends rien.

Je pose juste une question théorique, que pensez-vous, sera-t-il utile s'il y a une possibilité de décomposer les données en autant de variantes que possible ? Oui ou non.

 
Andrey Dik:

...

Juste une question théorique, pensez-vous qu'il serait utile de pouvoir décomposer les données en autant d'options que possible ? Oui, ou non.

Il est inutile de discuter de tâches qui sont banalisées par "le nombre, pas la compétence". Par exemple, si un terrassier peut creuser une tranchée à une distance de n mètres en un jour, alors m terrassiers peuvent creuser la même tranchée à une distance de m*n mètres pendant le même temps. Qu'y a-t-il à discuter ? Si le temps de creusement d'une tranchée est critique, il faut diviser le temps restant avant l'échéance en jours par la distance qu'un terrassier peut creuser par jour et prévoir quelques terrassiers supplémentaires pour les imprévus. La solution est triviale et il n'y a rien à discuter.

Il est possible de discuter des tâches dont la solution n'est pas si triviale, par exemple, comment augmenter la productivité du creusement de la même tranchée par moins de terrassiers pour le même temps ? Des options émergent déjà, par exemple : remplacer les pelleteuses par une excavatrice ou améliorer leurs pelles, etc.

 
Yury Reshetov:

Il est inutile de discuter de problèmes trivialement résolus par "des chiffres, pas des compétences". Par exemple, si un terrassier peut creuser une tranchée de n mètres en un jour, alors m terrassiers peuvent creuser la même tranchée de m*n mètres dans le même temps. Qu'y a-t-il à discuter ? Si le moment est critique pour creuser une tranchée, vous devez diviser le temps restant jusqu'à l'échéance par le nombre de terrassiers et prévoir plusieurs terrassiers supplémentaires pour les imprévus. La solution est triviale et il n'y a rien à discuter.

Il est possible de discuter de tâches dont la solution n'est pas si triviale, par exemple, comment augmenter la productivité en creusant la même tranchée avec moins de terrassiers pour le même temps ? Des options émergent déjà, par exemple : remplacer les pelleteuses par des excavateurs ou améliorer leurs pelles, etc.

La réponse est fleurie, je la prends comme un oui.

Supposons que j'aie chez moi un rack de 64 clusters, chacun doté de 4 CPU à 8 cœurs, pourquoi ne l'utiliserais-je pas à cette fin ? Surtout si ça peut me faire du bien.

 

Ça fait 191 pages qu'on s'agite pour rien. Il est temps pour tout le monde de rentrer chez soi les mains vides.

Voir https://www.mql5.com/ru/forum/3457/page3396#comment_2939962

Je cite :

Vladimir Karputov:

C'est tout. L 'apprentissage automatique n'est plus nécessaire. Tout le monde est battu par une suite bureautique ordinaire

Интересное и Юмор
Интересное и Юмор
  • www.mql5.com
Форум трейдеров MQL5.community
Raison: