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

 
Dr. Trader:

La mejor manera de hacerlo es utilizar un bosque, este modelo creará un conjunto de reglas de este tipo:


1: DeltaLess350 <= 0,5
2: ZZ_D <= 0
Decisión 0

1: DeltaLess350 <= 0,5
2: ZZ_D > 0
3: DeltaMore350 <= 0,5
Decisión 0

1: DeltaLess350 <= 0,5
2: ZZ_D > 0
3: DeltaMore350 > 0,5
Decisión 1

DeltaLess350 > 0,5
Decisión 1


El artículo describe cómo hacerlo en R:
https://www.mql5.com/ru/articles/1165

En la pestaña "Modelo" seleccione el bosque, establezca el número de árboles en la configuración = 1, cree un modelo y, a continuación, haga clic en el botón Reglas verá esta lista de reglas

Gracias por la respuesta, tal vez estoy leyendo mal, pero parece que el modelo no es correcto a partir de la fórmula de excel para la primera (y siguientes líneas) de la línea con los datos "= IF(AND(B2=1;D2=1);AND(C2=1;D2=1));1;0)".

Es decir, ¿es mejor utilizar el andamiaje para una lógica clara? Lo mismo que para la extracción de características, ¿no?

Gracias por el artículo, lo volveré a estudiar, recuerdo haberlo leído hace mucho tiempo, pero ahora que tengo un poco más de conocimiento, quizás me quede más claro.

Añadido: La imagen es interesante, pero está claro que la lógica no se adivina... ¿o sí?
 

He reescrito un poco el post, utilizando un árbol en lugar de un bosque, para que sea más cómodo. La fórmula parece diferente en ambos casos, pero la respuesta sigue siendo correcta.

Si se puede encontrar la respuesta mediante la combinación correcta de valores en los datos de entrada, entonces el bosque funciona bien, sí. Todo tipo de operaciones, como la suma y la multiplicación, no funcionan en el bosque.

 
Aleksey Vyazmikin:

parece que el modelo no es correcto desde excel tal fórmula para la primera (y siguientes líneas) fila con datos "=If(OR(AND(B2=1;D2=1);AND(C2=1;D2=1));1;0)"

No lo sé. Comprobado en excel - la fórmula del bosque estaba mal un par de veces solamente. La fórmula del árbol coincidió en todos los casos.

 
Dr. Trader:

He reescrito un poco el post, utilizando un árbol en lugar de un bosque, para que sea más cómodo. La fórmula parece diferente en ambos casos, pero la respuesta sigue siendo correcta.

Si se puede encontrar la respuesta mediante la combinación correcta de valores en los datos de entrada, entonces el bosque funciona bien, sí. Todo tipo de operaciones como la suma y la multiplicación no funcionan.

Bien, ahora ha conseguido su resultado, pero ¿hay alguna forma de minimizar las condiciones a una línea, o función, para poder aplicar las correcciones al instante en el código? ¿O tengo que describir yo mismo cada giro lógico, y al mismo tiempo no equivocarme con la interpretación del resultado? Sólo si el conjunto de valores entrantes se mide en decenas, es un proceso que requiere mucho tiempo...

 
Dr. Trader:

No lo sé. Lo he comprobado en Excel: la fórmula del bosque estaba mal sólo un par de veces. La fórmula del árbol coincidió en todos los casos.

Sí, la fórmula del árbol fue por exclusión, a juzgar por el código, que resultó ser la solución correcta.

 

Es aún más simple, no hay necesidad de molestarse con las fórmulas, después del entrenamiento se obtiene un modelo regular de R con el que se pueden hacer predicciones sobre nuevos datos.

Toda la predicción se realiza con una función

predict(model, newdata)

modelo - es un modelo creado previamente (árbol, bosque, neurona, etc., en R hay cientos de modelos diferentes). newdata es una tabla con nuevos datos para la predicción

 
Dr. Trader:

Es aún más simple, no hay necesidad de molestarse con las fórmulas, después del entrenamiento se obtiene un modelo regular de R con el que se pueden hacer predicciones sobre nuevos datos.

Toda la predicción se realiza con una función

modelo - es un modelo creado previamente (árbol, bosque, neurona, etc., en R hay cientos de modelos diferentes). newdata - tabla con nuevos datos para la predicción

Es interesante, pero aún no está claro - no he trabajado con R antes... Debería hacerlo, para poder llegar al fondo del asunto.

Aquí hay otra pregunta, si los datos de entrada tienen datos erróneos, que son puramente aleatorios, ¿podrá el bosque/árbol detectarlos? ¿Es posible organizar la desactivación automática columna por columna de los datos de entrada en función de su enumeración, incluyendo la búsqueda de datos de la izquierda para excluirlos?

 

El bosque más común se limitará a encontrar un conjunto mínimo de datos con los que definir un objetivo. Pero no analizará el ruido y los errores, incluso utilizándolos si ayudan a mejorar la precisión de la predicción. Por eso, por ejemplo, no podemos limitarnos a tomar un montón de indicadores de divisas y tratar de predecir las tendencias.

Hay diferentes modificaciones avanzadas del bosque, tienen intentos de eliminar el ruido y los errores y todo lo que escribiste. Los paquetes gbm, xgboost en R, por ejemplo. Funcionan bien en conjunto, pero son débiles para el forex, se necesitan otros trucos.

 
Aleksey Vyazmikin:

¿Puedes decirme qué algoritmo de red neuronal se puede utilizar para averiguar la lógica (neurona) de la columna "Calc"? consejo número uno: si puedes prescindir del aprendizaje automático, hazlo :)

1: decidir el tamaño de la muestra, su muestra es muy pequeña

2. opta por modelos de clasificación/regresión simples (lineales), probablemente te funcionen, si obtienes un gran error puedes intentar optar por otros más complejos (no lineales). están disponibles en la biblioteca alglib (también están disponibles los árboles de decisión y los bosques).

3) Nunca aceptes ningún consejo, especialmente sobre el uso de R :))) Es hora de desterrarlos de este foro.

4. Si el problema se puede resolver sin aprendizaje automático, es mejor no utilizarlo.

 
Dr. Trader:

El bosque más común se limitará a encontrar un conjunto mínimo de datos con los que definir un objetivo. Pero no analizará el ruido y los errores, incluso utilizándolos si ayudan a mejorar la precisión de la predicción. Por eso, por ejemplo, no podemos limitarnos a tomar un montón de indicadores de divisas y tratar de predecir las tendencias.

Hay diferentes modificaciones avanzadas del bosque, tienen intentos de eliminar el ruido y los errores y todo lo que escribiste. Los paquetes gbm, xgboost en R, por ejemplo. Funcionan bien en conjunto, pero son débiles para el forex, aquí se necesitan otros trucos.

No quiero dar los valores de los indicadores, mi objetivo es dar una observación descrita lógicamente (puede ser noticias y ratios de diferentes indicadores en el espacio en relación con los demás - en general, yo uso en el comercio real para tomar decisiones), previamente construido utilizando estos indicadores y tratar de eliminar falsa, es decir, los datos de entrada será 0 y 1, o un poco más dígitos en una entrada (aquí está la pregunta, si quiero ver el efecto de los días de la semana, entonces sería mejor hacer diferentes pares de entrada

¿Y alguien ha hecho alguna vez una comparación de diferentes algoritmos para la eficiencia, bueno, si se conoce la respuesta, como en mi ejemplo, pero para tareas más complejas?

Razón de la queja: