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

 
Bueno. Empecé la semana anterior a la apertura del mercado, probando activamente la versión 14. Me gustaría decir lo siguiente. Cuanto más tiempo se entrena, más entradas intervienen en el ST. Más predicados. Tenía hasta 8-9 entradas como máximo. Sin embargo, la capacidad de generalización no suele ser alta. Y esas TS apenas funcionan. Es decir, apenas pueden alcanzar la marca de 3. Pero los predicados con 4-6 entradas funcionan satisfactoriamente en general. He aumentado el número de entradas de 50 a 150. Ahora está en su tercera hora de entrenamiento. Pero creo que el número de entradas esta vez no será insignificante también. Así que veamos......
 
Bueno, me he dado cuenta de esto otra vez. El caso es que tengo un conjunto de datos, perdictos 12 y luego van su mismo lag, lag1 y lag2. Anteriormente, las entradas se encontraban en su mayoría al principio del conjunto, es decir, había pocos lag y luego no más que lag1, raramente lag2. Puedo entender que la muestra esté sobrecargada de datos, pero el hecho es que antes de la generalización se utilizaba más el lag1 y el lag2. Pero es un hecho que antes la generalización estaba sobre todo en las columnas iniciales, ahora está en las columnas finales.... prácticamente, así que saquemos algunas conclusiones....
 
Mihail Marchukajtes:
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?

 
Dr.Trader:

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)

Puedes ver que el resultado es diferente, y depende del paso que se redondee. No sé cuál es más estándar, pero creo que la segunda forma funciona mejor con los nuevos datos.

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".

 
Dr.Trader:

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
)

Como puede ver, el resultado es diferente según el paso que se redondee. No sé cuál de los dos es más estándar, pero creo que el segundo método funciona mejor con los nuevos datos.
Este es el par gbpusd. Lo que significa que el modelo está a la espera de ser probado por Brexit. Ni siquiera he procesado los datos del año pasado todavía.... Podría ser una ciruela...

Dependiendo del resultado de la prueba final, estableceré el tono del artículo. Siempre es un poco sorprendente ver que el modelo funciona y lo normal es ver que se vacía.

Reuniré el comité de la siguiente manera:

Construyo n vectores de predicción de tipo numérico sobre el número de modelos en los datos de entrenamiento (regresión de incremento de precios).

Promedio la respuesta sobre los modelos seleccionados.

Cuento los cuantiles 0,05 y 0,95.

En la validación, repito los pasos 1 y 2.

Sólo selecciono los ejemplos en los que la media está fuera de los límites del cuantil.

Multiplico la respuesta por el signo de la predicción y le resto el margen.

Sobre el vector obtenido construyo m submuestras con inclusión aleatoria a razón de 1-4 operaciones por día en función del horizonte de previsión.

El comité ya ha demostrado que la MO se triplica en comparación con los modelos individuales. Porque los modelos son diversos...

 
Как из данных вычленить некие группы данных по условию
Как из данных вычленить некие группы данных по условию
  • ru.stackoverflow.com
нужно найти такие строчки которые повторяются не менее 10 раз в всей выборке и в каждой из найденных одинаковых групок которые повторялись, количество "1" в target.label должно превышать 70% по отношению к "0" вот найденные одинаковые строчки единичек больше чем нулей...
 

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%
 
SanSanych Fomenko:

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?

 
Dr.Trader:

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?

Según tengo entendido, no tiene nada que ver con los comités
 
Yury Reshetov:

Entonces hay que retroceder a las versiones anteriores.

Estoy funcionando bien. ¿Tal vez porque no hay retrasos en la muestra?

Pues sí, estaba haciendo lags porque en versiones anteriores aumentaban la capacidad de enumeración, ahora con el algoritmo de prefetching mejorado no es necesario, así que estoy intentando entrenar sin ellos. Estoy tratando de entrenar sin ellos. Informaré más tarde sobre los resultados del ejercicio de hoy...