Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 194
![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Bueno, me he dado cuenta de esto otra vez. El caso es que tengo un conjunto de datos, perdicts 12 y luego vienen sus lags, lag1 y lag2. Anteriormente, las entradas se encontraban en su mayoría al principio del conjunto, es decir, los lag eran escasos y no pasaban del lag1, raramente del lag2. Puedo entender que la muestra esté sobrecargada de datos, pero el hecho es que antes de la generalización, lag1 y lag2 eran más frecuentes. Pero es un hecho que antes la generalización estaba sobre todo en las columnas iniciales, ahora está en las columnas finales.... casi, así que infiere....
Por lo tanto, es necesario retroceder a las versiones anteriores.
Mi vuelo está bien. ¿Tal vez porque no hay retrasos en la muestra?
Tiene buena pinta en general, me pregunto qué pasará al final.
Sobre la comisión - he puesto algunos ejemplos, pero hay modelos que utilizan la regresión con redondeo para clasificar, y ahí no está tan claro. He probado dos formas diferentes de combinar los votos:
1) Redondear todo a las clases, tomar la clase para la que habrá más votos.
Es decir, tener una previsión de 4 bares de tres modelos
c(0,1, 0,5, 0,4, 0,4) c(0,6, 0,5, 0,7, 0,1) c(0,1, 0,2, 0,5, 0,7) Lo redondearía aún más a las clases
c(0, 1, 0, 0) c(1,1,1,0) c(0,0,1,1) , y el vector final con las predicciones sería c(0, 1, 1, 0) por número de votos.
2) la otra opción es hallar el resultado medio de inmediato, y sólo entonces redondearlo a las clases
el resultado sería c((0,1+0,6+0,1)/3, (0,5+0,5+0,2)/3, (0,4+0,7+0,5)/3, (0,4+0,1+0,7)/3)
o (0,2666667, 0,4000000, 0,5333333, 0,4000000), o
c(0, 0, 1, 0)
Paquete tsDyn Función SETAR
Resulta que el valor del umbral (puede haber dos umbrales como en el RSI) es variable. Da resultados sorprendentes.
Tampoco hay que olvidar los algoritmos de calibración en la clasificación. La cuestión es que la predicción de clase en la realidad no es un valor nominal, el algoritmo calcula la probabilidad de clase, que es un número real. Entonces esta probabilidad se divide, por ejemplo, por la mitad y se obtienen dos clases. ¿Y si la probabilidad es de 0,49 y 051, es decir, dos clases? ¿Qué tal 0,48 y 052? ¿Se trata de una división en clases? Aquí es donde SETAR se dividiría en dos clases, entre las cuales estaría Reshetovskie "en la valla".
Tiene buena pinta en general, me pregunto qué pasará al final.
Sobre la comisión - he puesto algunos ejemplos, pero hay modelos que utilizan la regresión con redondeo para clasificar, y ahí no está tan claro. He probado dos formas diferentes de combinar los votos:
1) redondear todo a las clases, tomar la clase que obtenga más votos.
Es decir, tener una previsión de 4 barras a partir de tres modelos
c(0,1, 0,5, 0,4, 0,4) c(0,6, 0,5, 0,7, 0,1) c(0,1, 0,2, 0,5, 0.7) Yo redondearía aún más esto a las clases
c(0, 1, 0, 0) c(1,1,0) c(0,0,1,1) , y el vector final con las predicciones sería c(0, 1, 1, 0) por número de votos.
2) la otra opción es encontrar el resultado medio directamente, y sólo entonces redondearlo a las clases
el resultado sería c((0,1+0,6+0,1)/3, (0,5+0,5+0,2)/3, (0,4+0,7+0,5)/3, (0,4+0,1+0,7)/3)
o (0,2666667, 0,533333, c(0, 0, 1) o
)
Chicos, por favor ayúdenme con este problema porque no creo que me den una respuesta.
http://ru.stackoverflow.com/questions/586979/%D0%9A%D0%B0%D0%BA-%D0%B8%D0%B7-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-%D0%B2%D1%8B%D1%87%D0%BB%D0%B5%D0%BD%D0%B8%D1%82%D1%8C-%D0%BD%D0%B5%D0%BA%D0%B8%D0%B5-%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D1%8B-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85-%D0%BF%D0%BE-%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D1%8E
Puedes responder aquí también, no me importa.
Entonces, lo responderé aquí.
dat <- data.frame(cluster1=c(24,2,13,23,6), cluster2=c(5,15,13,28,12), cluster3=c(18,12,16,22,20), cluster4=c(21,7,29,10,25), cluster5=c(16,22,24,4,11), target.label=c(1,1,0,1,0))
dat <- rbind(dat, dat[1,], dat[1,])
#результат последней строки поменян на 0 для эксперимента
dat[7,"target.label"]=0
library(sqldf)
#для sqldf точек в названиях колонок быть не должно
colnames(dat)[6] <- "target"
dat1 <- sqldf( "select cluster1, cluster2, cluster3, cluster4, cluster5, avg(target) as target_avg, count(target) as target_count from dat group by cluster1, cluster2, cluster3, cluster4, cluster5" )
dat1
dat1[ dat1$target_count>=10 & dat1$target_avg>0.63 , ]
dat1[ dat1$target_count>=10 & ( dat1$target_avg<0.37 | dat1$target_avg>0.63 ), ] #на случай если оба "0" или "1" встречаются чаще 70%
El paquete tsDyn es una función SETAR
SETAR se refiere específicamente a la calibración de la comisión, ¿o es un tema aparte para crear modelos financieros?
He hojeado el manual del paquete, no he visto lo que necesito... Hay una situación. Tengo una tabla de entrenamiento con 10000 ejemplos. Y hay 100 modelos entrenados con estos ejemplos. Para probar los modelos puedes utilizarlos para predecir los mismos datos de entrada y obtener 100 vectores con 10000 predicciones cada uno. ¿Se podría utilizar SETAR para fusionar de alguna manera todos estos 100 vectores en uno solo?
Y luego para una previsión con nuevos datos habría de nuevo 100 previsiones y habría que fusionarlas en una sola (no habría 100 vectores sino 100 previsiones únicas). ¿Será capaz SETAR de hacer esto también, utilizando los parámetros del comité obtenidos de los datos de entrenamiento?
SETAR se refiere específicamente a la calibración de la comisión, ¿o es un tema aparte para crear modelos financieros?
He hojeado el manual del paquete, no veo lo que necesito... La situación es la siguiente: tengo una tabla de entrenamiento con 10000 ejemplos. Tengo 100 modelos entrenados con esos ejemplos. Para probar los modelos puedes utilizarlos para predecir los mismos datos de entrada y obtener 100 vectores con 10000 predicciones cada uno. ¿Se podría utilizar SETAR para fusionar de alguna manera todos estos 100 vectores en uno solo?
Y luego para una previsión con nuevos datos habría de nuevo 100 previsiones y habría que fusionarlas en una sola (no habría 100 vectores sino 100 previsiones únicas). ¿Será SETAR capaz de hacerlo también, utilizando los parámetros del comité derivados de los datos de entrenamiento?
Entonces hay que retroceder a las versiones anteriores.
Estoy funcionando bien. ¿Tal vez porque no hay retrasos en la muestra?