Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 1605

 
mytarmailS:

Lo que está haciendo(probar en una "tercera" muestra) en términos de GMDH se llama "criterio de poder predictivo".

Veo que es usted un buen experto. ¿Podría exponer la esencia de la GMDH en unas pocas frases, para los no matemáticos?

 
secreto:

Veo que es un buen especialista. ¿Podría resumir el MGUA en unas pocas frases, para los no matemáticos?

Modelo de regresión con enumeración de características transformadas por diferentes kernels (polinómico, splines, lo que sea). Se prefiere el modelo más sencillo con el menor error. No salva de la sobrecarga en el mercado.

A grandes rasgos, se trata de un modelo de fuerza bruta en el que se elige el más sencillo en función de criterios externos

es como los fundamentos del aprendizaje automático )

 
mytarmailS:

Por ejemplo, la regresión MSUA simplemente imita la regresión del algoritmo moderno de bosque aleatorio y boosting...

El refuerzo es mejor en todo, si se preparan características como para el MSUA, será mejor.

pero te importa una mierda si no sabes qué enseñar

 
secreto:

Veo que es un buen especialista. ¿Podría resumir la esencia del MGUA en unas pocas frases, para los no matemáticos?

No soy un experto en absoluto )) por desgracia....

De forma muy simple, aproximada e imprecisa, el principio de la MGUA es la autoorganización...


Por ejemplo, tenemos un conjunto de atributos

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

A partir de estos atributos creamos un conjunto de modelos candidatos

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

de estos modelos se seleccionan los mejores, y de los mejores se crean nuevos modelos, de nuevo se hace una selección.... etc... y así sucesivamente, hasta que el error en los nuevos datos (previamente desconocidos para el algoritmo) se reduzca

Verás, el algoritmo cambia por sí mismo, se vuelve más complejo y se autoorganiza... Un poco como un algoritmo genético.

 
Maxim Dmitrievsky:

Un modelo de regresión con enumeración de características transformadas por diferentes kernels (polinomial, splines, lo que sea). Se prefiere el modelo más sencillo con el menor error. No salva del exceso de formación en el mercado.

A grandes rasgos, se trata de un forzamiento de modelos, en el que se elige el más sencillo, basado en criterios externos

Entonces no veo nada nuevo y original en esta metodología.

 
mytarmailS:

de estos modelos se seleccionan los mejores, y los mejores se utilizan para crear nuevos modelos, seleccionando de nuevo .... etc... y así sucesivamente, hasta que el error en los nuevos datos (previamente desconocidos para el algoritmo) disminuya

Verás, el algoritmo cambia por sí mismo, se vuelve más complejo y se autoorganiza... Es un poco como un algoritmo genético.

Entonces no veo las matemáticas aquí, es más trabajo cerebral, bueno, y de codificación. La AG es algo trivial.

¿Por qué entonces todos corren con este MSUA, escribiendo disertaciones, por lo que es imposible entenderlos, si por dentro es algo primitivo, intuitivamente comprensible desde el jardín de infantes?

 
Maxim Dmitrievsky:

Boosting es mejor en todo, si preparas las características como para MGUA, será mejor.

pero no importa si no sabes qué enseñar

No estoy de acuerdo...

Hagamos una prueba rápida, a ojo )


Crear cuatro variables (aleatorias regulares) con 1000 elementos cada una

z1 <- rnorm(1000)

z2 <- rnorm(1000)

z3 <- rnorm(1000)

z4 <- rnorm(1000)

crear una variable objetivo y como suma de las cuatro

y <- z1+z2+z3+z4


vamos a entrenar el boosting y el mgua, ni siquiera para predecir, sino para forzar a explicary

He dividido la muestra en tres trozos, uno de entrenamiento y dos de prueba


en verde MGUA

En rojo: Modelo de Regresión Potenciada Generalizada (GBM)

gris son los datos originales

recuerde, el objetivo es la suma elemental de todos los predictores

http://prntscr.com/rawx14

Como vemos ambos algoritmos han afrontado muy bien la tarea


ahora hacer la tarea un poco más complicada

añadir la suma acumulada o la tendencia a los datos

z1 <- cumsum(rnorm(1000))

z2 <- cumsum(rnorm(1000))

z3 <- rnorm(1000)

z4 <- rnorm(1000)

y cambiar el objetivo a la forma

y <- z1+z2+z3

así que sumamos dos predictores con tendencia y uno regular, y z4 resulta ser un ruido porque no participa en el objetivo y

y así obtenemos el siguiente resultado

http://prntscr.com/rax81b

Nuestro impulso es todo un desastre, y el MSUA no importa.


He conseguido "matar" al MSUA sólo con este objetivo salvaje

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

E incluso eso no es del todo, ¿y qué pasa con la potenciación? )))

http://prntscr.com/raxdnz


código para juegos

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
 
secreto:

Entonces no veo las matemáticas aquí, es más trabajo cerebral, bueno, y de codificación. La AG es algo trivial.

¿Por qué entonces todo el mundo anda con ese MSUA, escribiendo disertaciones, para que sea imposible entenderlas, si por dentro es algo primitivo, intuitivamente comprensible desde el jardín de infancia?

No sé, pero describe mucho mejor los datos, post escritos, código publicado

 
mytarmailS:

No estoy de acuerdo...

Hagamos una pequeña prueba, rápida, a ojo )

No quiero enredar con R (uso python), tal vez la razón es que MSUA crea regresores feéricos, por eso encaja. Si hacemos la misma selección para el refuerzo, no habrá diferencia

Aquí hay una enumeración de MSUA para un bosque.

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

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

No quiero enredar con R (uso python), tal vez la razón es que MSUA crea regresores feéricos, lo que hace que se ajuste. Si se hace la misma selección para la potenciación, no habrá diferencia

Aquí hay una enumeración de MSUA para un bosque.

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

En primer lugar, ¿qué otros regresores fey? Qué tontería, ¿por qué el MSUA también se apaga cuando se endurece?

En segundo lugar, los datos que di en el ejemplo eran los mismos tanto para el MSUA como para el boost.

en tercer lugar, no necesitas hacer nada, ¿no puedes hacer una matriz con cuatro valores aleatorios en python y luego acumularlos? ¿Para comprobar el impulso por ti mismo?

2 líneas de código )))


Yo también tengo curiosidad por saber qué contiene.