Discusión sobre el artículo "Evaluación y selección de variables en modelos de aprendizaje de máquinas" - página 4

 
JulInParis:

Hola Vlad,

Estoy intentando volver a ejecutar tu ejemplo paso a paso.

En la sección Datos de entrada, La función In(p=16) trata con un objeto precio. Cual es su formato o clase en R ( zoo, xts o dataframe ) y como es ( sus nombres de columnas, etc..). Sin esta información, es imposible ejecutar el comando x <- In(p = 16) ...

Saludos cordiales.

Julien

Hola Julien,

> class(price)
[1] "matrix"
> colnames(price)
[1] "Open"  "High"  "Low"   "Close" "Med"   "CO"

Я приложил снимок сессии. Откройте его в Rstudio и проводите эксперименты.

Удачи

Владимир

Archivos adjuntos:
EURUSD30.zip  302 kb
 
Zhi Long Yang:
Muchas gracias al autor del artículo. Acabo de empezar y tengo un problema. He instalado RStudio, no Revolution R Open 3.2.1 como sugiere el autor. Se han cargadoel paquete "RandomUniformForests" yel paquete "RoughSets ", pero la función nearZeroVar() y la función findLinearCombos() no se llaman correctamente. Se han cargado los paquetes "RandomUniformForests" y "RoughSets", perola función nearZeroVar() yla función findLinearCombos() no funcionan correctamente, ¿son estas funciones específicas de Revolution R Open?

Revolution R Open (ahora mantenido por Microsoft y renombrado MRO) es una versión mejorada de R. RStudio es sólo un IDE, no es comparable a R. Las dos funciones mencionadas están en el artículo original del autor. Las dos funciones mencionadas están claramente etiquetadas como funciones del paquete caret en el artículo original del autor. Además, el autor del artículo original utiliza el ruso, tal vez Inglés todavía puede comunicarse, pero en chino parece comunicarse.
 

Смотрите caret: :nearZeroVar () // caret::findLinearCombos ()

Удачи

 
Vladimir Perervenko:

Hola Julien,

> class(price)
[1] "matrix"
> colnames(price)
[1] "Open"  "High"  "Low"   "Close" "Med"   "CO"

Я приложил снимок сессии. Откройте его в Rstudio и проводите эксперименты.

Удачи

Владимир


Estimados todos,


¿Puede alguien decirme lo que el --Dig - definido en la variable de función ZZ significa. Es una constante? en caso afirmativo ¿cuál debe ser el valor de esta constante?

 
hzmarrou :


Estimados todos,


¿Puede alguien decirme qué significa la variable --Dig-- definida en la función ZZ ? ¿Es una constante? en caso afirmativo ¿cuál debe ser el valor de esta constante?

Te he respondido en la siguiente rama.
 

Hola Vladimir,


Perdona esta pregunta tonta pero estoy intentando construir mi propio modelo ( muy simple ) partiendo de tu bonito ejemplo y me pregunto por qué estás desplazando las diferencias de ZZ hacia delante en la función ZZ :




dz <- zz %>% diff %>% c(0,.)

...Quiero decir, después de todo, queremos entrenar un modelo para predecir el valor FUTURO del Zigzag, así que ¿qué sentido tiene entrenar un modelo usando predictores ( indicadores técnicos ) que resumen las cotizaciones del mercado al final del día N con un valor objetivo que es el signo de la diferencia entre el valor del Zigzag del día N contra su valor N-1 ( esto es lo que estás haciendo después de desplazar ) ? ¿No deberíamos utilizar el signo de la diferencia entre el valor del Zigzag en el día ( N+1 ) y el valor del Zigzag en el día N (es decir, no tendríamos que desplazar)?

Sé que debo haberme perdido algo obvio en tu metodología pero si pudieras tomarte 5 mns para aclararme esto, estaría encantado.


Saludos cordiales.


Julien

 
JulInParis :

Hola Vladimir,


Perdona esta pregunta tonta pero estoy intentando construir mi propio modelo ( muy simple ) a partir de tu bonito ejemplo y me pregunto por qué estás desplazando las diferencias de ZZ hacia delante en la función ZZ :




dz <- zz %>% diff %>% c(0,. )

...Quiero decir, después de todo, queremos entrenar un modelo para predecir el valor FUTURO del Zigzag, así que ¿qué sentido tiene entrenar un modelo usando predictores ( indicadores técnicos ) que resumen las cotizaciones del mercado al final del día N con un valor objetivo que es el signo de la diferencia entre el valor del Zigzag del día N contra su valor N-1 ( esto es lo que estás haciendo después de desplazar ) ? ¿No deberíamos utilizar el signo de la diferencia entre el valor del Zigzag en el día ( N+1 ) y el valor del Zigzag en el día N (es decir, no tendríamos que desplazar)?

Sé que debo haberme perdido algo obvio en tu metodología pero si pudieras tomarte 5 mns para aclararme esto, estaría encantado.


Saludos cordiales.


Julien

La pregunta es correcta. Hay una errata en el artículo. Debería ser así

1. calcular las entradas

 x <- In(p = 16 ) 

2. calcular el objetivo

 out1 <- ZZ(ch = 25 )
 

> head(out1) zz sig [1,] 84.213 0 [2,] 84.199 -1 [3,] 84.185 -1 [4,] 84.171 -1 [5,] 84.157 -1 [6,] 84.143 -1 > tail(out1) zz sig [4995,] 89.3965 0 [4996,] 89.3965 0 [4997,] 89.3965 0 [4998,] 89.3965 0 [4999,] 89.3965 0 [5000,] 89.3965 0

3. Combinar x y out en los datos. En donde:

  • Eliminar los ejemplos donde sig == 0
  • Creamos una nueva variable Сlass (factor)
  • Desplazamos la variable Clase a 1 barra en el "futuro"
  • Eliminamos la variable sig del conjunto

 data <- cbind(x, sig = out1[ , 2 ]) %>% tbl_df %>% 
   dplyr::filter(., sig != 0 ) %>%
  mutate(., Class = factor(sig, ordered = F) %>% dplyr::lead()) %>% 
  dplyr::select(-sig) %>% 
  na.omit() 

> data %>% str() Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 4944 obs. of 18 variables: $ DX : num 0.355 0.541 6.324 3.026 9.511 ... $ ADX : num 12 11.3 11 10.5 10.4 ... $ oscDX : num 0.303 0.427 5.012 2.459 -8.641 ... $ ar : num -18.8 -18.8 -18.8 -18.8 -12.5 ... $ tr : num 0.032 0.051 0.037 0.004 0.011 ... $ atr : num 0.0422 0.0432 0.0425 0.038 0.0348 ... $ cci : num -14.75 20.6 27.23 6.22 -33.27 ... $ chv : num 0.0422 0.03 -0.0439 -0.0456 -0.1172 ... $ cmo : num -16.3 -20.1 -26.5 -39.2 -40.7 ... $ sign : num -0.0137 -0.013 -0.0117 -0.0107 -0.0108 ... $ vsig : num -0.00352 0.00655 0.0132 0.01059 -0.00103 ... $ rsi : num 45.7 49.8 50 46.8 42.4 ... $ slowD : num 0.408 0.438 0.447 0.43 0.405 ... $ oscK : num 0.0137 0.039 -0.0116 -0.0427 -0.0322 ... $ SMI : num -18.2 -16.6 -15.8 -16.2 -17.1 ... $ signal: num -12.8 -13.6 -14 -14.5 -15 ... $ vol : num 0.01005 0.01004 0.00985 0.00975 0.00946 ... $ Class : Factor w/ 2 levels "-1","1": 1 1 1 1 1 1 1 1 1 1 ... - attr(*, "na.action")=Class 'omit' Named int [1:34] 1 2 3 4 5 6 7 8 9 10 ... .. ..- attr(*, "names")= chr [1:34] "1" "2" "3" "4" ...

Más adelante en el texto.

Buena suerte

 
MetaQuotes Software Corp.:

NUEVO ARTÍCULO Se ha publicado Variable Evaluation and Selection for Machine Learning Models:

Por Vladimir Perervenko


Existe un gran problema en la aplicación de la señal de zigzag como variable objetivo.

La base de todos los modelos se basa a priori en puntos ya en zigzag (-1, 1), otros puntos con condición = 0 están excluidos.

En la práctica, no se sabe si el punto temporal es un punto en zigzag (-1, 1) o no, y hay una alta probabilidad de que sea un punto con condición = 0, porque no es posible distinguir entre los dos estados (-1, 1) y (0).

Por lo tanto, es necesario realizar el mismo cálculo y juicio para el punto en 0. Esta vez el modelo de entrenamiento y el modelo real tendrán una gran desviación;

 
freewalk :

La señal de zigzag como variable objetivo es muy problemática de aplicar.

La base de todos los modelos se fundamenta a priori ya en el punto zigzag (-1, 1), se excluyen otros puntos con condición = 0.

En la práctica, no se sabe si el punto temporal es un punto en zigzag (-1, 1) o no, y hay una alta probabilidad de que sea un punto con condición = 0, porque no es posible distinguir entre los dos estados (-1, 1) y (0).

Por lo tanto, es necesario realizar el mismo cálculo y juicio para el punto en 0. En este punto, el modelo de entrenamiento y el modelo real tendrán una gran desviación;

Dibujo de un gráfico sencillo que ilustra los números (-1, 1 (0) ????

Lea atentamente el artículo... ¿Y al lado? ¿Y no sabes cómo usar ZZ?

¿Tal vez la traducción no es buena?

Especifique con mayor precisión sus comentarios, por favor puede mejorar Inglés?