Discusión sobre el artículo "Aprendizaje de máquinas de Yándex (CatBoost) sin estudiar Python y R"
Gracias por el artículo. ¿Qué métricas le han resultado más útiles para clasificar los wp? ROC-AUC, Precisión, F1 o tal vez algo más
De nada :)
La mayoría de las veces trabajo con muestras desequilibradas en las que, para la clasificación binaria, los ceros superan a las unidades y el valor de las unidades es mucho mayor que el de los ceros. De hecho, sólo me fijo en Recall y Precision.
Recall - muestra la actividad del modelo debido al "conocimiento" que ha recibido, es decir, la frecuencia con la que el modelo responde al "estímulo" en forma de unidad; cuanto mayor es el índice, mayor es el porcentaje de unidades a las que responde el modelo.
Precisión - muestra la precisión de las respuestas, y aquí, dependiendo de la estrategia, esta precisión puede ser aceptable incluso en porcentajes pequeños, por ejemplo el 45%.
Las métricas estándar tienen en cuenta principalmente la equivalencia de los objetos clasificados, lo que no es suficiente para tomar una decisión definitiva.
Para seleccionar grupos de modelos, también utilizo la métrica del "equilibrio de errores", en la que evalúo los errores en la dinámica.
En general, se utilizan más de 30 métricas diferentes, quizá sea un tema aparte para la investigación y el artículo.
De nada :)
Trabajo sobre todo con muestras no equilibradas en las que, para la categorización binaria, los ceros son más que las unidades y el valor de las unidades es mucho mayor que el de los ceros. De hecho, sólo me fijo en Recall y Precision.
Recall: muestra la frecuencia con la que el modelo responde a un "estímulo" en forma de unidad; cuanto mayor es el índice, mayor es el porcentaje de unidades a las que responde el modelo.
Precisión - muestra la exactitud de la respuesta, y aquí, dependiendo de la estrategia, esta exactitud puede ser aceptable incluso en porcentajes pequeños, por ejemplo el 45%.
Las métricas estándar tienen en cuenta principalmente la equivalencia de los objetos clasificados, lo que no basta para tomar una decisión definitiva.
Para seleccionar grupos de modelos, también utilizo la métrica del "equilibrio de errores", en la que evalúo los errores en la dinámica.
En general, se utilizan más de 30 métricas diferentes, tal vez sea un tema aparte para la investigación y el artículo.
Es decir, ¿se utiliza un modelo independiente con una pequeña frecuencia de señales para cada estrategia y luego se combinan?
Está previsto utilizar diferentes estrategias básicas con diferentes ajustes en forma de generador de señales y, en consecuencia, un modelo diferente para cada señal. Debido a lo costoso del proceso de cálculo de los predictores, debería hacerse en un Asesor Experto. Por el momento, no tengo un sistema para trabajar con posiciones virtuales, que podría apoyar órdenes pendientes y paradas, ya que está previsto utilizar este enfoque en las cuentas de compensación.
No lo he entendido bien en el artículo. La filosofía del enfoque en sí es interesante. Hablabas antes en el hilo de MO sobre la selección de hojas y demás. ¿O es un tema aparte?
Las hojas son un tema aparte. De hecho, las hojas no salieron muy bien paradas en cuanto a sus características (sólo las cogí del primer árbol). El otro día me enteré de que XGBoost tiene una opción para guardar las hojas, pero necesito Phyton, tal vez la calidad de las hojas es mejor allí.
Alexei, ¡con un comienzo!
Imho, para un primer artículo es muy decente. La calidad es muy superior a la de algunos escritores que han escrito más de una docena de artículos. Gracias, miraré los matices.
P.D. He visto el vídeo. Es bonito que haya jóvenes tan entusiastas.....
¡Alexei, con un sobresalto!
Imho, para un primer artículo es muy decente. La calidad es muy superior a la de algunos escritores que han escrito más de una docena de artículos. Gracias, voy a mirar en los matices.
P.D. He visto el vídeo. Es bonito que haya jóvenes tan entusiastas.....
Gracias.
Este artículo fue escrito como una guía para el uso de CatBoost utilizando la línea de comandos y la posterior integración en MT5, quería mostrar una buena clase para trabajar con tablas"CSV fast", que facilitó enormemente mi trabajo con grandes archivos CSV, lo he estado utilizando durante más de 2 años. Bajo esta necesidad decidí realizar un experimento con indicadores estándar y fue exitoso.
En el apéndice está el código del EA y el script que organiza toda la infraestructura - era importante para mí que lo que estoy describiendo pudiera ser reproducido - así que prueben y reporten errores, sugieran mejoras - estoy por una contribución común a este trabajo.
Sí, por supuesto que los jóvenes son diferentes, es sólo que a mayor edad, más alejados están de su entorno social, y menos objetivamente percibidos.
Gracias por el artículo. Sabía que se estaba preparando y estaba esperando a que se publicara..... Los resultados de la prueba de periodo corto tanto en tu artículo como en el anterior de Maxim Dmitrievsky son buenos. Los resultados de los trabajos sobre aprendizaje automático muestran que la prueba adyacente de período corto sobre datos en los que ns no se ha entrenado, casi siempre tienen un resultado positivo de la oferta basada únicamente en la lógica de aprendizaje de la red neuronal, y además no requiere ninguna optimización o reentrenamiento. ¿Ha pensado en automatizar el proceso de reentrenamiento, o antes de entrenar la red neuronal por un período de una prueba corta seguida de un cambio. Esto daría una imagen más amplia del éxito o no de un determinado enfoque.
Gracias por el artículo. Sabía que se estaba preparando y estaba esperando a que se publicara..... Los resultados de la prueba de periodo corto tanto en tu artículo como en el anterior de Maxim Dmitrievsky son buenos. Los resultados de los trabajos sobre aprendizaje automático muestran que la prueba adyacente de período corto sobre datos en los que ns no se ha entrenado, casi siempre tienen un resultado positivo de la oferta basada únicamente en la lógica de aprendizaje de la red neuronal, y además no requiere ninguna optimización o reentrenamiento. ¿Ha pensado en automatizar el proceso de reentrenamiento, o antes de entrenar la red neuronal por un período de una prueba corta seguida de un cambio. Esto daría una imagen más amplia del éxito o no de un determinado enfoque.
Me alegro de que el artículo le haya parecido interesante.
Mi enfoque y el del artículo de Maxim difieren en todo excepto en la herramienta utilizada: CatBoost. En mi artículo, la muestra se prepara por señal y pueden pasar más de 100 barras entre señales, mientras que el artículo de Maxim tiene un largo periodo de entrenamiento en cada barra para encontrar patrones generales, el entrenamiento de Maxim se centra más en la tendencia, yo sugiero usar predictores complejos, mientras que el artículo de Maxim muestra una variante de una simple transformación de la serie de precios. Maxim mostró, en primer lugar, cómo entrenar el modelo en python y aplicarlo en MT5 sin python, lo cual es muy conveniente - el enfoque en sí no se puede utilizar en el trading, ¡por eso el artículo contiene la frase "enfoque ingenuo"! Mi artículo también se centra en el proceso de entrenamiento e integración del modelo CatBoost en MT5, pero el entrenamiento no se realiza en python, sino en un programa de consola independiente, que es un wrapper de la librería CatBoost, que permite utilizar todas las funciones como en python. Además en el artículo se consideró la estructura del asesor que para mostrar el ciclo completo de recogida y procesamiento de la información de la A a la Z. El éxito del entrenamiento depende de los predictores, en este artículo se utilizaron principalmente predictores en forma de osciladores estándar y fue una agradable sorpresa para mí que el modelo se entrenó en ellos y muestra resultados interesantes. El objetivo, como Maxim, no era proporcionar una solución lista para hacer dinero, pero le di una buena base.
En cuanto a las pruebas - usted es poco atento - el artículo de Maxim muestra el comportamiento de la EA en la muestra fuera de la formación durante 4 meses, mientras que mi EA muestra resultados positivos durante 15 meses. Trabajar durante más de un año sin reentrenamiento es un resultado muy bueno si nos atenemos al paradigma de la volatilidad del mercado.
El experimento que sugirió es posible si la muestra es suficiente, y aquí mi método es inferior al método descrito en el artículo de Maxim - en pequeños intervalos de tiempo simplemente no habrá suficientes datos para el entrenamiento. Según mis observaciones, necesitamos al menos 15000 señales para el entrenamiento, especialmente si tenemos en cuenta que los predictores no se analizan por separado y no se seleccionan.
Sí, y tenga en cuenta que la muestra de prueba (test.csv en el artículo) se utiliza sólo como un medio para evaluar la calidad del modelo resultante, y no se realiza ningún entrenamiento sobre ella, como resultado, entrenamos sólo el 60% de toda la muestra, que es del 01.06.2014 al 30.04.2018 - el modelo no se construyó sobre los datos restantes, por lo que deberíamos decir que el modelo funciona con información de mercado que era relevante hace 2,5 años.
Me alegro de que el artículo le haya parecido interesante.
Mi enfoque y el de Maxim en el artículo difieren en todo, excepto en la herramienta utilizada - CatBoost. En mi artículo, la muestra se prepara por señal y pueden pasar más de 100 barras entre señales, mientras que el artículo de Maxim tiene un largo periodo de entrenamiento para cada barra con el fin de encontrar patrones generales, el entrenamiento de Maxim está más centrado en la tendencia, yo sugiero usar predictores complejos, mientras que el artículo de Maxim muestra una variante de una simple transformación de una serie de precios. Maxim mostró, en primer lugar, cómo entrenar el modelo en python y aplicarlo en MT5 sin python, lo cual es muy conveniente - el enfoque en sí no se puede utilizar en el trading, ¡por eso el artículo contiene la frase "enfoque ingenuo"! Mi artículo también se centra en el proceso de entrenamiento e integración del modelo CatBoost en MT5, pero el entrenamiento no se realiza en python, sino en un programa de consola independiente, que es un wrapper de la librería CatBoost, que permite utilizar todas las funciones como en python. Además en el artículo se consideró la estructura del asesor que para mostrar el ciclo completo de recogida y procesamiento de la información de la A a la Z. El éxito del entrenamiento depende de los predictores, en este artículo se utilizaron principalmente predictores en forma de osciladores estándar y fue una agradable sorpresa para mí que el modelo se entrenó en ellos y muestra resultados interesantes. El objetivo, como Maxim, no era proporcionar una solución lista para hacer dinero, pero le di una buena base.
En cuanto a las pruebas - usted es poco atento - el artículo de Maxim muestra el comportamiento de la EA en la muestra fuera de la formación durante 4 meses, mientras que mi EA muestra resultados positivos durante 15 meses. Trabajar durante más de un año sin reentrenamiento es un muy buen resultado si te apegas al paradigma de la volatilidad del mercado.
El experimento que sugirió es posible si la muestra es suficiente, y aquí mi método es inferior al método descrito en el artículo de Maxim - en pequeños intervalos de tiempo simplemente no habrá suficientes datos para el entrenamiento. Según mis observaciones, necesitamos al menos 15000 señales para el entrenamiento, especialmente si tenemos en cuenta que los predictores no se analizan por separado y no se seleccionan.
Sí, y tenga en cuenta que la muestra de prueba (test.csv en el artículo) se utiliza sólo como un medio para evaluar la calidad del modelo resultante, y no se realiza ningún entrenamiento sobre ella, como resultado, entrenamos sólo el 60% de toda la muestra, que es del 01.06.2014 al 30.04.2018 - el modelo no se construyó sobre los datos restantes, por lo que deberíamos decir que el modelo funciona con información de mercado que era relevante hace 2,5 años.
Yo, prestó atención a la duración del período de prueba. Pero el resultado positivo estable es sobre un periodo corto adyacente al periodo de entrenamiento - un mes - dos meses. Digamos que entrenamos en una historia de dos años. Prueba + un mes. Guardar el resultado. Desplazar (o añadir) para este mes - antes del entrenamiento (reentrenamiento). Prueba + mes. Guardar el resultado. Y así sucesivamente.

- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
Artículo publicado Aprendizaje de máquinas de Yándex (CatBoost) sin estudiar Python y R:
En el artículo, descricribiremos las etapas del proceso de aprendizaje de máquinas usando un ejemplo concreto, y también adjuntaremos un código sobre el mismo. Para obtener los modelos, no necesitaremos conocer ningún lenguaje de programación como Python o R. Los conocimientos requeridos de MQL5 no serán profundos, iguales, por cierto, que los del autor del presente artículo; por eso, esperamos que este artículo sirva de guía para un amplio círculo de lectores que deseen valorar de forma experimental las posibilidades del aprendizaje de máquinas e implementar estas en sus desarrollos.
Los resultados no son sobresalientes, pero podemos notar que se cumple la regla principal en el trading: "no perder dinero". Incluso si la selección no fuera responsabilidad de este modelo, sino del otro modelo del archivo "CB_Svod.csv", el efecto seguiría siendo positivo, porque el resultado financiero del peor modelo que obtuvimos es de -25 puntos, y el resultado financiero promedio de todos los modelos es de 3889,9 puntos.
Fig. 9 "Resultado financiero de los modelos entrenados en el periodo del 01.08.2019 al 31.10.2020"
Autor: Aleksey Vyazmikin