L'Apprentissage Automatique dans le trading : théorie, modèles, pratique et trading algo - page 1605

 
mytarmailS:

Ce que vous faites(test sur un "troisième" échantillon) en termes de GMDH est appelé "critère de puissance prédictive".

Je peux voir que vous êtes un bon expert. Pourriez-vous énoncer l'essence du GMDH en quelques phrases, pour les non-mathématiciens ?

 
secret:

Je vois que vous êtes un bon spécialiste. Pourriez-vous résumer le MGUA en quelques phrases, pour les non-mathématiciens ?

Modèle de régression avec énumération des caractéristiques transformées par différents noyaux (polynômes, splines, etc.). Le modèle le plus simple avec l'erreur la plus faible est préféré. Il n'épargne pas le surentraînement sur le marché.

En gros, il s'agit d'un modèle de force brute où le plus simple est choisi en fonction de critères externes.

C'est comme les bases de l'apprentissage automatique.)

 
mytarmailS:

Par exemple, la régression de MSUA se moque simplement de la régression de l'algorithme moderne de forêt aléatoire et du boosting...

Le boosting est meilleur dans tous les domaines, si vous préparez des fonctionnalités comme pour le MSUA, ce sera mieux.

mais vous n'en avez rien à faire si vous ne savez pas quoi enseigner.

 
secret:

Je vois que vous êtes un bon spécialiste. Pourriez-vous résumer l'essence du MSUA en quelques phrases, pour les non-mathématiciens ?

Je ne suis pas du tout un expert ;)) malheureusement....

Si très simplement, de manière grossière et imprécise, le principe du MGUA est l'auto-organisation...


Par exemple, nous avons un ensemble d'attributs

x1,x2,x3.....x20...

à partir de ces attributs, nous créons un ensemble de modèles candidats

m1,m2,m3.....m10...

à partir de ces modèles, les meilleurs sont sélectionnés, et à partir des meilleurs, de nouveaux modèles sont créés, une sélection est à nouveau effectuée..... etc... et ainsi de suite, jusqu'à ce que l'erreur sur les nouvelles données (précédemment inconnues de l'algorithme) soit réduite

Vous voyez, l'algorithme se modifie lui-même, devient plus complexe et s'auto-organise... Un peu comme un algorithme génétique.

 
Maxim Dmitrievsky:

Un modèle de régression avec une énumération de caractéristiques transformées par différents noyaux (polynômes, splines, etc.). Le modèle le plus simple avec l'erreur la plus faible est préféré. Il n'épargne pas le surentraînement sur le marché.

En gros, il s'agit d'un forçage brutal des modèles, où le modèle le plus simple est choisi, sur la base de critères externes.

Alors je ne vois rien de nouveau et d'original dans cette méthodologie.

 
mytarmailS:

les meilleurs modèles sont sélectionnés parmi ces modèles, et les meilleurs sont utilisés pour créer de nouveaux modèles, en sélectionnant à nouveau..... etc... et ainsi de suite, jusqu'à ce que l'erreur sur les nouvelles données (précédemment inconnues de l'algorithme) diminue

Vous voyez, l'algorithme se modifie lui-même, devient plus complexe et s'auto-organise... C'est un peu comme un algorithme génétique.

Alors je ne vois pas de mathématiques ici, c'est plus du travail cérébral, enfin, et du codage. GA est une chose insignifiante.

Pourquoi alors tous courir avec ce MSUA, écrire des dissertations, de sorte qu'il est impossible de les comprendre, si à l'intérieur il y a un certain primitif, intuitivement compréhensible depuis la maternelle ?

 
Maxim Dmitrievsky:

Le boosting est meilleur en tout, si vous préparez les fonctionnalités comme pour le MGUA, il sera meilleur.

mais ça n'a pas d'importance si tu ne sais pas quoi enseigner.

Je ne suis pas d'accord...

Faisons un test rapide, à l'œil )


Créez quatre variables (aléatoires régulières) avec 1000 éléments chacune.

z1 <- rnorm(1000)

z2 <- rnorm(1000)

z3 <- rnorm(1000)

z4 <- rnorm(1000)

créer une variable cible y comme une somme de tous les quatre

y <- z1+z2+z3+z4


entraînons le boosting et le mgua, même pas pour la prédiction, mais juste pour forcer à expliquery

J'ai divisé l'échantillon en trois morceaux, une formation deux pour le test


en vert MGUA

En rouge : Modélisation par régression boostée généralisée (GBM)

en gris, les données originales

rappelez-vous, la cible est la somme élémentaire de tous les prédicteurs

http://prntscr.com/rawx14

Comme nous le voyons, les deux algorithmes ont très bien réussi la tâche.


Maintenant, rendons la tâche un peu plus compliquée

ajouter une somme cumulative ou une tendance aux données

z1 <- cumum(rnorm(1000))

z2 <- cums(rnorm(1000))

z3 <- rnorm(1000)

z4 <- rnorm(1000)

et changer la cible sous la forme

y <- z1+z2+z3

nous additionnons donc deux prédicteurs avec une tendance et un régulier, et z4 s'avère être un bruit car il ne participe pas à la cible y

et donc nous obtenons le résultat suivant

http://prntscr.com/rax81b

Notre boosting est tout bousillé, et le MSUA ne compte pas.


J'ai réussi à "tuer" la MSUA uniquement avec cette cible sauvage.

y <- ((z1*z2)/3)+((z3*2)/z4)

Et ce n'est pas tout, mais qu'en est-il du boosting ? )))

http://prntscr.com/raxdnz


code pour les jeux

set.seed(123)
z1 <- cumsum(rnorm(1000))
z2 <- cumsum(rnorm(1000))
z3 <- rnorm(1000)
z4 <- rnorm(1000)

y <- ((z1*z2)/3)+((z3*2)/z4)

x <- cbind.data.frame(z1,z2,z3,z4) ; colnames(x) <- paste0("z",1:ncol(x))

tr <- 1:500
ts <- 501:800
ts2<- 801:1000

library(gbm)
rf <- gbm(y[tr] ~ ., data = x[tr,],
          distribution = "gaussian", n.trees = 1000,
           cv.folds = 5)
best.iter.max <- gbm.perf(rf, method = "cv")
prg <- predict(rf,x[c(tr,ts,ts2),],n.trees = best.iter.max)

library(GMDHreg)
gmd <- gmdh.gia(X = as.matrix(x[tr,]),y = y[tr],prune = 5,
                    criteria = "PRESS")
prh <- predict(gmd,as.matrix(x[c(tr,ts,ts2),]))

par(mfrow=c(1,3))
plot(head(y[tr],30),t="l",col=8,lwd=10,main = "train ")
lines(head(prg[tr],30),col=2,lwd=2)
lines(head(prh[tr],30),col=3,lwd=2)
plot(head(y[ts],30),t="l",col=8,lwd=10,main = "test ")
lines(head(prg[ts],30),col=2,lwd=2)
lines(head(prh[ts],30),col=3,lwd=2)
plot(head(y[ts2],30),t="l",col=8,lwd=10,main = "test2 ")
lines(head(prg[ts2],30),col=2,lwd=2)
lines(head(prh[ts2],30),col=3,lwd=2)


Скриншот
Скриншот
  • prnt.sc
Снято с помощью Lightshot
 
secret:

Alors je ne vois pas les maths ici, c'est plus du travail cérébral, enfin, et du codage. GA est une chose insignifiante.

Pourquoi alors tout le monde court-il avec ce MSUA, écrivant des dissertations, de sorte qu'il est impossible de les comprendre, si à l'intérieur il y a quelque chose de primitif, intuitivement compréhensible depuis le jardin d'enfants ?

Je ne sais pas, mais cela décrit beaucoup mieux les données, le post écrit, le code posté.

 
mytarmailS:

Je ne suis pas d'accord...

Faisons un petit test, rapide, à l'œil).

Je ne veux pas m'embrouiller avec R (j'utilise python), peut-être que la raison est que MSUA crée des régresseurs fétiches, à cause de cela il s'adapte. Si nous faisons la même sélection pour le boosting, il n'y aura aucune différence

Voici une énumération du MSUA pour une forêt.

https://www.mql5.com/ru/code/22915

RL algorithms
RL algorithms
  • www.mql5.com
Данная библиотека имеет расширенный функционал, позволяющий создавать неограниченное количество "Агентов". Использование библиотеки: Пример заполнения входных значений нормированными ценами закрытия: Обучение происходит в тестере...
 
Maxim Dmitrievsky:

Je n'ai pas envie de m'embrouiller avec R (j'utilise python), peut-être que la raison est que MSUA crée des régresseurs fétiches, ce qui le rend adapté. Si vous faites la même sélection pour le boosting, il n'y aura aucune différence.

Voici une énumération du MSUA pour une forêt.

https://www.mql5.com/ru/code/22915

Tout d'abord, quels autres régresseurs fétiches ? Quelle absurdité, pourquoi le MSUA disparaît-il aussi quand ça devient plus dur ?

Deuxièmement, les données que j'ai données dans l'exemple étaient les mêmes pour le MSUA et le boost.

troisièmement, vous n'avez pas besoin de faire quoi que ce soit, ne pouvez-vous pas faire une matrice avec quatre valeurs aléatoires en python et ensuite les cumuler ? Pour vérifier par vous-même le boost ?

2 lignes de code ))))


Je suis moi-même curieux de savoir ce qu'il y a dedans.