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

 
Aleksey Vyazmikin:

Un dicho interesante. Sin embargo, los árboles subsiguientes se construyen con el fin de reducir el error de la composición del árbol existente, pero no entiendo por qué no utilizan el muestreo entonces, dime más en detalle, tal vez no entiendo algo profundo...

¿Por casualidad no hay que examinar las hojas de los árboles de refuerzo con número > 1 alimentando los datos brutos en ellos? Si es así, el resultado debería ser aleatorio, porque esos árboles no aprendieron de los datos de entrada, sino de los errores. Así que está resolviendo un problema que el árbol y sus hojas no estaban capacitados para resolver.
Si esos árboles proceden de un bosque aleatorio, entonces están entrenados con datos brutos y puedes utilizarlos (pero no tiene sentido, porque un árbol es muy inferior al bosque en términos de error). En la potenciación - no, porque 1 árbol sin todos los demás no tiene sentido considerar.

 
elibrarius:

¿Existen por casualidad hojas de árboles de refuerzo con número > 1, alimentando los datos de entrada a ellos? Si es así, el resultado debería ser aleatorio, porque esos árboles no se entrenaron con datos de entrada, sino con errores. Así que está resolviendo un problema que el árbol y sus hojas no estaban capacitados para resolver.
Si esos árboles proceden de un bosque aleatorio, entonces están entrenados con datos brutos y puede utilizarlos (pero no tiene sentido, porque un árbol es muy inferior al bosque en términos de error). En el impulso - no, porque 1 árbol sin todos los demás no tiene sentido considerar.

Así, esto se desprende de la definición de boosting como un método secuencial de mejora en el que cada algoritmo sucesivo busca compensar los fallos de composición de los anteriores.
 
elibrarius:

Sí, para reducir el error, toman el error como objetivo y luego lo restan.

Este es el algoritmo para la potenciación, lo estoy estudiando yo mismo https://neurohive.io/ru/osnovy-data-science/gradientyj-busting/


Entiendo que se trata de un refuerzo clásico. Quizá Catbust haya inventado algo propio...

Echa un vistazo al artículo. Sí, me parece que se construye un árbol, se aplica a la muestra y se calcula el delta entre los objetivos reales y los objetivos predichos, luego se construye el siguiente árbol para reducir el error, es decir, para predecir el delta. Pero, de hecho, los nuevos árboles se construyen de la misma manera sobre la misma muestra y se forman nuevas y nuevas conexiones, es decir, en realidad sólo cambia el objetivo. Pero este enfoque da la oportunidad de encontrar nuevas conexiones (hojas) que no serán obvias en un bosque aleatorio, y estas conexiones dependen del primer árbol, y éste depende de la muestra (lo cual no es una novedad), pero los árboles subsiguientes en CatBoost se construirán según el número de iteraciones establecido, o según el signo de parada, y este signo se define en una muestra de prueba. El signo es cualquier indicador estimado de la calidad del modelo (hay una lista de diferentes indicadores). Selecciono la detención del entrenamiento en el indicador, ya que me gustaría obtener una mejora en dos muestras a la vez, y si es sólo en la muestra de entrenamiento, es claramente un exceso de entrenamiento. Esta es la razón por la que se cuestiona que el tamaño de la muestra afecte directamente al aprendizaje, es decir, si incluso el tamaño de la muestra de entrenamiento es constante, el tamaño de la muestra de prueba afectará al aprendizaje.


elibrarius:

¿Existen por casualidad las hojas de los árboles de refuerzo con número > 1, alimentando los datos en bruto? Si es así, el resultado debería ser aleatorio, porque esos árboles no estaban aprendiendo de los datos brutos, sino de los errores. Así que está resolviendo un problema que el árbol y sus hojas no estaban capacitados para resolver.
Si esos árboles proceden de un bosque aleatorio, entonces están entrenados con datos brutos y puede utilizarlos (pero no tiene sentido, porque un árbol es muy inferior al bosque en términos de error). En el impulso - no, porque 1 árbol sin todos los demás no tiene sentido considerar.

Buen punto, estoy preparando una plataforma para estudiar las hojas (en catbust es más bien árboles binarios). El resultado puede ser insignificante si hay muchos árboles, pero puede haber enlaces decentes, incluso en teoría, si el primer árbol tenía un gran error en su hoja, y el cuarto árbol corrigió este error en su hoja, entonces de hecho el nuevo enlace tendrá sentido lógico y clasificará por sí mismo correctamente la muestra. Técnicamente, catbust tiene un array con el resultado de la respuesta de cada árbol binario (hoja), luego se suman estas respuestas, pero el truco está en que por línea de muestra sólo una pequeña fracción de árboles binarios (hojas) dan una respuesta. Por lo tanto, teóricamente es posible eliminar (poner a cero) los árboles binarios (hojas), que tienen una capacidad de predicción muy baja, porque son árboles con error inicial o pequeños ajustes (en el hecho de reentrenamiento) y dejar las hojas sólo con valores significativos. La otra dirección es utilizar estas conexiones para estimar la importancia de los predictores, donde hay un gran peso en el conjunto final, esas conexiones y por lo tanto los predictores son significativos, los otros son filtrados por el umbral como menos significativos. Si realizamos esta criba, el modelo puede entrenarse primero con los predictores más significativos y luego con los menos significativos, lo que debería mejorar el resultado del entrenamiento, ya que los predictores menos significativos no impedirán la construcción de relaciones más estables, sino que sólo las complementarán cuando sea posible.

La conclusión es que los árboles binarios basura no son realmente interesantes para la adaptación, mientras que los microanálisis (2-3 árboles binarios (hojas)) con un peso común elevado o los árboles binarios simples también son de gran importancia y pueden utilizarse por separado para la clasificación.

Desafortunadamente, no tengo un mecanismo para sacar árboles binarios individuales (en el sentido normal de las hojas) y convertirlos en una regla legible normal, así que todo es sólo en teoría, pero estoy abierto a la cooperación.

 
Aleksey Vyazmikin:

Desgraciadamente no tengo actualmente un mecanismo para sacar árboles binarios individuales (en el sentido normal de las hojas) y convertirlos en una regla legible normal, así que todo es todavía sólo en teoría, pero estoy abierto a la cooperación.

¿Y cómo se saca el modelo en mt5? Tengo una buena idea para usarlo en el comercio o en el probador. Llevo mucho tiempo trabajando en ello pero no tengo ni idea, debería usar Python y conectarlo con mt5 o usar el binario katbust.

 
Maxim Dmitrievsky:

¿Cómo se dibuja el modelo en mt5? Qué comerciar allí o ejecutarlo en el probador. Estoy pensando, cuál sería la mejor manera de construirlo, aún no me he decidido: ir a Python y conectarlo a mt5 o usar el binario de katbust.

Voy a convertir un modelo para C++ a MQL5 - de hecho, sólo se toman arrays allí, y hay un intérprete de este modelo en MQL (no mi código). Así, los modelos se cargan en el Asesor Experto y ahora puedo cargar cientos de modelos a través del archivo y mirarlos en el terminal, incluyendo la ejecución a través del optimizador.

 
Aleksey Vyazmikin:

He convertido un modelo para C++ a MQL5 - de hecho, sólo se toman arrays allí, y hay un intérprete de este modelo en MQL (el código no es mío). En consecuencia, los modelos se cargan en Expert Advisor y ahora puedo cargar cientos de modelos a través de un archivo y verlos en el terminal, incluso ejecutarlos a través del optimizador.

Bueno, aquí hay un artículo para escribir con un poco de marco y la idea (la idea debe ser no menos que el espacio), y lo que se necesita ayuda, o coop lo que hay

Entiendo que la comunidad está dividida: algunos se retiran, otros generalizan. Yo, por ejemplo, no estoy de acuerdo con este planteamiento, puede que simplemente no haya captado del todo la idea
 
Maxim Dmitrievsky:

Bueno, aquí hay un artículo para escribir con algún marco e idea (la idea no debe ser menos que cósmica) y qué ayuda se necesita, o coop lo que hay

No tengo conocimientos teóricos profundos para los artículos, me invento conceptos diferentes y cambio las interpretaciones de los fenómenos establecidos, no es un enfoque académico.

Creo que sería interesante un intérprete del modelo, pero no puedo publicarlo ya que el código no está escrito por mí.

Y todo lo que se quede en la teoría, con código que no se pueda aplicar (por las clases cerradas), no creo que sea interesante. Y el proceso de creación y selección de modelos, creo que todo resuelto, y no hay interés.

 
Maxim Dmitrievsky:

Entiendo que la comunidad está dividida: algunos se retiran, otros generalizan. Yo, por mi parte, no estoy de acuerdo con este planteamiento, quizás es que no he captado del todo la idea

Y no sé de la comunidad, es decir, no sé cómo lo hacen otras personas en otros campos...

Tirar de datos me parece lógico, porque estoy buscando un modelo de comportamiento humano (o algoritmo) con la ayuda de MO, puede haber muchos patrones de comportamiento de este tipo y pueden ser independientes, así que tiene sentido tirar de todos los posibles, porque es imposible generalizarlos todos juntos. Y para alguien, el mercado es algo completo, el resultado del trabajo de una mente colectiva, una especie de órgano de votación sin reglas. Aparentemente, para esta situación buscan un modelo que describa el comportamiento del mercado como un organismo separado.

 
Aleksey Vyazmikin:

Si el primer árbol tenía un gran error en su propia hoja y el cuarto árbol corrigió este error en su propia hoja, entonces en efecto el nuevo enlace tendrá sentido lógico y clasificará por sí mismo correctamente la muestra.

No estoy seguro de ello, el cuarto árbol corrige los errores del primero con sus hojas. Creo que sólo en parejas tienen sentido. Pero podría estar equivocado. Ya que no he experimentado con esas cosas.

 
elibrarius:

El cuarto árbol corrige los errores del primero con sus hojas. Creo que sólo tienen sentido por parejas. Pero podría estar equivocado. Como no he experimentado con esas cosas.

Si somos muy primitivos, el primer árbol no tiene respuesta a la muestra, devuelve cero, mientras que el cuarto árbol tiene esta respuesta y considera la "probabilidad" 0,6 - técnicamente corregimos el error del primer árbol, pero en realidad revelamos una conexión que antes no existía en absoluto. Incluso si suponemos que todos los árboles comparten toda la muestra (que no es el caso aparentemente), que sea 0,1 en lugar de cero, y el árbol posterior tiene 0,5, el mismo efecto aquí. Allí la probabilidad no es exactamente probabilidad, los valores de la matriz se convierten en algo similar a la probabilidad sólo después de que se sumen todos los valores de los árboles binarios activados.