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

 
SanSanych Fomenko:


Si vous prenez presque n'importe quel livre sur le datamining, les procédures de suppression des prédicteurs corrélés sont nécessairement décrites.

Les prédicteurs qui interagissent ne sont pas nécessairement corrélés... Ils interagissent sur la cible....

Et la présence de l'interaction donne des résultats de l'espèce :

> summary(lm(data = train_sample_list[[1]], price_future_lag_diff_6 ~ price_diff_lag_11 * price_diff_min_lag_16))


Call:

lm(formula = price_future_lag_diff_6 ~ price_diff_lag_11 * price_diff_min_lag_16, 

    data = train_sample_list[[1]])


Residuals:

      Min        1Q    Median        3Q       Max 

-0.035970 -0.000824  0.000001  0.000847  0.027278 


Coefficients:

                                          Estimate Std. Error t value Pr(>|t|)    

(Intercept)                              3.883e-05  3.146e-05   1.234  0.21714    

price_diff_lag_11                        4.828e-02  9.092e-03   5.310 1.12e-07 ***

price_diff_min_lag_16                   -3.055e-02  1.141e-02  -2.678  0.00743 ** 

price_diff_lag_11:price_diff_min_lag_16 -3.520e+00  3.515e-01 -10.014  < 2e-16 ***

---

Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1


Residual standard error: 0.0024 on 10465 degrees of freedom

Multiple R-squared:  0.01611, Adjusted R-squared:  0.01583 

F-statistic: 57.11 on 3 and 10465 DF,  p-value: < 2.2e-16

Tous les prédicteurs sont significatifs (ainsi que leur interaction). Les statistiques F sont géniales...

 
Alexey Burnakov:

Les prédicteurs qui interagissent ne seront pas nécessairement corrélés... Ils interagissent sur la cible....

Et la présence de l'interaction donne les résultats de l'espèce :

> summary(lm(data = train_sample_list[[1]], price_future_lag_diff_6 ~ price_diff_lag_11 * price_diff_min_lag_16))


Call:

lm(formula = price_future_lag_diff_6 ~ price_diff_lag_11 * price_diff_min_lag_16, 

    data = train_sample_list[[1]])


Residuals:

      Min        1Q    Median        3Q       Max 

-0.035970 -0.000824  0.000001  0.000847  0.027278 


Coefficients:

                                          Estimate Std. Error t value Pr(>|t|)    

(Intercept)                              3.883e-05  3.146e-05   1.234  0.21714    

price_diff_lag_11                        4.828e-02  9.092e-03   5.310 1.12e-07 ***

price_diff_min_lag_16                   -3.055e-02  1.141e-02  -2.678  0.00743 ** 

price_diff_lag_11:price_diff_min_lag_16 -3.520e+00  3.515e-01 -10.014  < 2e-16 ***

---

Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1


Residual standard error: 0.0024 on 10465 degrees of freedom

Multiple R-squared:  0.01611, Adjusted R-squared:  0.01583 

F-statistic: 57.11 on 3 and 10465 DF,  p-value: < 2.2e-16

Tous les prédicteurs sont significatifs (ainsi que leur interaction). Les statistiques F sont géniales...

Eh bien, peut-être que j'avais juste une idée différente de la signification du mot "interaction".
 

Vizard_:

Aucune donnée...

Pas de données, alors il n'y a rien à discuter.

Reposez-vous... vous !

 
Vizard_:
Vous, au moins, ne soyez pas stupide) Vous avez juste oublié qui vous a dit en 9 ans que votre réseau n'est pas correctement configuré, et avec un polyanalyste peut tirer la formule)))).
Il n'y a pas de prétentions ni de secrets, j'utilise les outils standard du dm, parfois avec des modifications mineures. Si vous n'êtes intéressé que par les références, écoutez,
mais les réalités sont un peu différentes... L'expérience précédente portait sur des données réelles. Je l'ai fait sur des données artificielles simples. La première série a été reconnue absolument
correctement. Je viens d'ajouter ......... La réponse devrait être 100%, mais jPrediction 11 est tellement "ii" requinqué, qu'il arrive à donner)))) En bref, il faut l'affiner,

L'appareil ne fonctionne pas encore. Je ne te donnerai pas les données, tu te la pètes, tu trouveras toi-même... Version 20 peut-être que je regarderai à nouveau, si la "publicité" sera comme aujourd'hui))).


Savez-vous que les optimisations multiples produisent toujours des résultats différents. C'est de l'optimisation, si on arrivait toujours à la même réponse, ce serait certainement bien, mais c'est trop bizarre, essayez d'optimiser plusieurs fois, je suis sûr que 8 fois sur 10 vous obtiendrez vos 100% Donc c'est comme ça....
 
SanSanych Fomenko:
Peut-être que j'avais juste une idée différente de la signification du mot "interaction".


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 un embarras.

Interpreting interaction coefficient in R (Part1 lm)
Interpreting interaction coefficient in R (Part1 lm)
  • grumble10
  • www.r-bloggers.com
Interaction are the funny interesting part of ecology, the most fun during data analysis is when you try to understand and to derive explanations from the estimated coefficients of your model. However you do need to know what is behind these estimate, there is a mathematical foundation between them that you need to be aware of before being able...
 
Mihail Marchukajtes:
Savez-vous que les optimisations multiples produisent toujours des résultats différents ? C'est de l'optimisation, si ça donnait toujours le même résultat ce serait bien, mais c'est trop étrange, essayez d'optimiser plusieurs fois, je suis sûr que vous obtiendrez votre 100% pour 8 fois sur 10. Donc c'est comme ça....

Il ne se rend même pas compte que l'échantillon général avant la formation est divisé en parties au hasard : certains modèles vont dans la partie formation, d'autres dans la partie test. Et avec une telle répartition, il se pourrait bien que certains motifs nécessaires à la clarification des modèles soient encombrés dans la partie test et non représentés dans la partie formation. Et comme l'algorithme ne s'entraîne que sur la partie formation et n'a pas de capacités télépathiques pour découvrir ce que contient la partie test, des erreurs se produiront lors du calcul de la capacité de généralisation. C'est-à-dire que rien de surprenant ne se produit.

Mais lorsque les motifs qui devraient spécifier des modèles s'avèrent être répartis de manière égale sur différentes parties de l'échantillon, la capacité d'apprentissage est plus élevée que dans le cas décrit ci-dessus.

En d'autres termes, il y a un effet de cas par cas et tout aléa peut tôt ou tard montrer son côté indésirable.

Il est tout à fait possible de trouver une méthode par laquelle l'échantillon général est divisé en parties non pas au hasard, mais de manière déterministe ? Mais jusqu'à présent, l'expérience a montré que tout déterminisme dans le fractionnement des échantillons s'accompagne d'un ajustement, suivi d'un sur-apprentissage.

 
Yury Reshetov:

Il est peut-être possible de trouver une méthode permettant de diviser l'échantillon général en parties de manière déterministe plutôt qu'aléatoire ? Mais jusqu'à présent, l'expérience montre que tout déterminisme dans la division d'un échantillon s'accompagne d'un ajustement et d'un recyclage ultérieur.

Peut-être voulez-vous faire l'entraînement plusieurs fois et partitionner l'échantillon de façon aléatoire à chaque fois ? Puis, à partir de cet ensemble de modèles formés, nous pouvons choisir et, en général, évaluer la qualité du modèle.
On peut donc nier la probabilité d'obtenir un modèle ajusté au hasard sans être pris en otage par le déterminisme.

 
Andrey Dik:
Peut-être devez-vous faire l'entraînement plusieurs fois et partitionner l'échantillon de façon aléatoire à chaque fois ? Et à partir de cet ensemble prêt de modèles formés, vous pouvez choisir et, en général, vous pouvez évaluer si le modèle est bon ou non.
Nous pouvons donc réduire à zéro la probabilité d'obtenir un modèle ajusté au hasard, sans être l'otage du déterminisme.

Ceci est déjà implémenté dans jPrediction, c'est-à-dire que plusieurs partitions d'échantillons différentes sont calculées en parallèle sur différents cœurs de CPU (deux classificateurs binaires sont une terraire par cœur libre). Le processeur s'avère être chargé à 100%. Le problème est que le nombre de cœurs de l'unité centrale est limité, de sorte que la probabilité d'une distribution inégale des motifs peut seulement être réduite, mais il est très problématique de les minimiser. À moins que vous ne formiez les modèles sur des superordinateurs plutôt que sur des PC.

Par exemple, si vous calculez des motifs sur le superordinateur chinois Tianhe-2, celui-ci possède 3 120 000 cœurs. La probabilité d'une distribution inégale des motifs sur certaines parties de l'échantillon serait négligeable. Si nous calculons des motifs sur un personnel à 4 cœurs (plus quelques cœurs réservés à d'autres tâches), il n'est pas surprenant que, tôt ou tard, nous puissions rencontrer des irrégularités.

 
Je vous rappelle que personne ne m'a demandé pourquoi je fais cela, mais je fais en sorte que la variable de sortie soit égale au nombre de uns et de zéros. Je le fais en ajustant le profit des signaux de -10 pips à +50 pips. Si la quantité de uns et de zéros est égale, le modèle est rarement divisé en deux. Encore une fois, la façon de diviser n'a pas d'importance, l'important est que la division soit stable......
 
Yury Reshetov:

Ceci est déjà implémenté dans jPrediction, c'est-à-dire que plusieurs partitions d'échantillons différentes sont calculées en parallèle sur différents cœurs de CPU (deux classificateurs binaires sont une terraire par cœur libre). Le processeur s'avère être chargé à 100%. Le problème est que le nombre de cœurs de l'unité centrale est limité, de sorte que la probabilité d'une distribution inégale des motifs peut seulement être réduite, mais il est très problématique de les minimiser. À moins que vous ne formiez des modèles sur des superordinateurs plutôt que sur des PC.

Par exemple, si vous calculez des motifs sur le superordinateur chinois Tianhe-2, celui-ci possède 3 120 000 cœurs. La probabilité d'une distribution inégale des motifs sur certaines parties de l'échantillon serait négligeable. Si vous calculez des motifs sur un personnel à 4 cœurs (et que vous réservez quelques cœurs pour d'autres tâches), il n'est pas surprenant que, tôt ou tard, vous rencontriez des irrégularités.

Je veux dire, c'est utile de faire ça. Ainsi, au lieu de 4 partitions, évidemment insuffisantes, vous devriez faire 40 partitions. Pour 4 cœurs, il faudrait 10 fois plus de temps pour compter, mais je suppose que le temps peut être sacrifié en faveur de la robustesse.

"Si cela peut être fait et si cela peut faire du bien, il faut le faire". (c) Papo Carlo Albertovich.