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

 
Yuriy Asaulenko:

¿Cómo se leen los libros? ¿Las pones debajo del culo?

Es muy popular. Un problema tiene solución o no la tiene. Si no lo hace, no podrá resolverlo. Si lo hay, no podrás resolverlo. Y la NS no tiene nada que ver.

Así que lee el libro sugerido anteriormente. Siempre hay una solución óptima en una cantidad de uno, cuán satisfactoria es una segunda cuestión.

 

Como se prometió, informo de los resultados de la prueba de diferentes indicadores para seleccionar un modelo de clasificación binaria. La prueba incluye 17 indicadores: Logloss; BalancedErrorRate; LogLikelihoodOfPrediction; WKappa; Kappa; BrierScore; ZeroOneLoss; Accuracy; BalancedAccuracy; MCC; Precision; Recall; F1; AUC; HingeLoss; HammingLoss; CrossEntropy, el valor por defecto es Logloss. La metodología es sencilla, ejecutar CatBoost con la misma configuración en las mismas muestras para el entrenamiento, la prueba y la comprobación final, los valores numéricos se toman del archivo para la comprobación final, que no participa en el entrenamiento. Para cada indicador se forman 8 árboles de diferentes tamaños de 1 a 8, lo que promedia también la capacidad de seleccionar buenos valores del conjunto, y se utilizó también para determinar el significado en el redimensionamiento de los árboles. Se utilizaron cuatro objetivos de entrenamiento, las estrategias difieren más por el objetivo del movimiento de la tendencia. Los resultados de cada indicador se resumen en el siguiente cuadro:



Resultó que algunos de los indicadores son totalmente coherentes entre sí y se reunieron en grupos - el identificador del grupo de indicadores se muestra en verde


A continuación se presenta un cuadro resumen de cada indicador, en el que se destacan los valores máximos y mínimos del indicador y se colorean los valores máximos de toda la muestra.

A continuación se presenta un cuadro resumen del beneficio medio de cada indicador, como variante de la identificación de un indicador universal para todas las variantes del objetivo: el importe medio máximo.



Como escribí anteriormente, estaba probando mi fórmula en estos datos en paralelo con el fin de seleccionar el mejor indicador de los datos obtenidos - "%All*1%", los resultados se combinaron en una tabla de este tipo para cada indicador que participa en la prueba.

Este enfoque permitió establecer una clasificación basada en la suma de las puntuaciones de los Factores de Selección para cada indicador, como se muestra en la siguiente tabla.

Curiosamente, el favorito de la primera clasificación, Precision, se situó en la parte más baja, lo que sugiere que no es versátil, sino que su rendimiento fue muy bueno para el primer objetivo.

También es posible considerar qué opciones seleccionó este factor en la tabla de cada indicador y observar la clasificación en la suma de estos indicadores.

Para resumir, es posible agregar los resultados en una tabla de resumen y sumar las puntuaciones de los lugares: quien tenga menos esa métrica puede ser mejor.

Podemos concluir que Logloss es más bien una media que la mejor métrica para la selección de modelos, al mismo tiempo que diferentes TS pueden requerir diferentes métodos de selección de modelos entrenados. Así, por ejemplo, para una muestra más equilibrada por el objetivo (columns_100) la precisión es perfecta, pero para una muestra desequilibrada, donde por ejemplo el 20% (columns_200) y menos del objetivo "1", las cosas van mal con él y aquí es razonable utilizar HingeLoss que ha hecho frente a esta tarea perfectamente. El más equilibrado, quizás, fue el indicador Recall - puede usarse para sondear el suelo, creo. Tal indicador como Accuracy resultó ser extremadamente poco fiable y desequilibrado, por un lado fue capaz de encontrar la mejor opción con el objetivo más equilibrado, pero por otro lado la media de todas las opciones del árbol no seleccionó bien, como resultado no es muy adecuado para encontrar muestras desequilibradas o afinar el modelo.

 
Alexander_K2:


La tendencia se tira fácil y suavemente por el retrete con una codiciada llave ingles a que encontré literalmente "de rodillas".


Me pregunto qué se le habrá ocurrido.

 
Aleksey Vyazmikin:

Grandes pruebas, gracias

¿Existe alguna información sobre el diferencial de los errores de traine\Ntest? Sólo hay que tomar cualquier Accuracy o logloss allí, los más populares

por ejemplo algo así

2018.11.27 02:26:37.780 Core 2  2018.11.23 23:59:59   RlMonteCarlo TRAIN LOSS
2018.11.27 02:26:37.780 Core 2  2018.11.23 23:59:59   0.19023
2018.11.27 02:26:37.780 Core 2  2018.11.23 23:59:59   RlMonteCarlo TEST LOSS
2018.11.27 02:26:37.780 Core 2  2018.11.23 23:59:59   0.43959

prueba de trazado a la derecha a la izquierda:

Me interesa la capacidad de generalización del modelo, y cuáles son las hazañas para hacer frente a las sobrecargas. Veo que te estás haciendo rápidamente con la herramienta. Por fin, conversaciones de fondo :))

 
Maxim Dmitrievsky:

Grandes pruebas, gracias.

¿hay alguna información sobre el diferencial de errores traine\test? sólo tomar una Precisión o logloss allí, los más comunes

por ejemplo algo así

prueba de pista derecha izquierda:

Me interesa la capacidad de generalización del modelo, y qué tipo de hazañas para hacer frente a los excesos. Veo que has dominado la herramienta rápidamente. Por fin se habla de fondo :))

Catbust utiliza tres muestras: una es una muestra de prueba utilizada para el entrenamiento, la segunda para probar el entrenamiento de cada modelo y seleccionar el mejor modelo, que se obtuvo en el proceso de entrenamiento y demostró ser estable en los datos de prueba, y la tercera es una muestra de examen, que se marca después del final del entrenamiento por el modelo seleccionado. Dado que puede aprender muy bien en la muestra de entrenamiento, no tiene sentido comparar los resultados en la muestra de prueba con la muestra de entrenamiento, pero sí la prueba con la muestra de examen. Pero como todo esto lo manejé a mano en Excel, no tuve la fuerza suficiente para comprobar también los resultados de la muestra de prueba. Estos datos son, por supuesto, necesarios para evaluar el modelo, y deben ser tenidos en cuenta y analizados, pero el proceso no está automatizado todavía (acabo de empezar a escribir un script para preparar la configuración para el procesamiento - lejos del análisis) y no puedo hablar de ninguna cifra.

No he observado ningún método especial para combatir el sobreentrenamiento, excepto los métodos para dejar de entrenar en caso de que se produzcan buenas lecturas adicionales... El algoritmo en sí tiene algo de aleatoriedad que se puede desactivar - también permite elegir no los mejores predictores para ramificar el árbol, lo que debería ayudar a prevenir el sobreaprendizaje.

Ahora quiero alimentar predictores en porciones y ver qué pasa, porque el modelo tiene el principio de árbol codicioso de todos modos y eso a veces le impide obtener mejores resultados.

 
Aleksey Vyazmikin:

Catbust utiliza tres muestras: una es la de prueba, sobre la que aprende, la segunda sirve para probar el aprendizaje de cada modelo y seleccionar el mejor modelo, que se obtuvo en el proceso de aprendizaje y demostró ser estable en los datos de prueba, y la tercera es una muestra de examen, que está marcada por el hecho de que el modelo seleccionado ha sido entrenado. Dado que puede aprender muy bien en la muestra de entrenamiento, no tiene sentido comparar los resultados en la muestra de prueba con la muestra de entrenamiento, pero sí la prueba con la muestra de examen. Pero como todo esto lo manejé a mano en Excel, no tuve la fuerza suficiente para comprobar también los resultados de la muestra de prueba. Estos datos son, por supuesto, necesarios para evaluar el modelo, y deben ser tenidos en cuenta y analizados, pero el proceso no está automatizado todavía (acabo de empezar a escribir un script para preparar la configuración para el procesamiento - lejos del análisis) y no puedo hablar de ninguna cifra.

No he observado ningún método especial para combatir el sobreentrenamiento, excepto los métodos para dejar de entrenar en caso de que las lecturas sean muy buenas... El propio algoritmo tiene cierta aleatoriedad que se puede desactivar - también permite elegir no los mejores predictores para ramificar el árbol, lo que debería ayudar a evitar el sobreaprendizaje.

Ahora quiero introducir porciones de predictores, y ver qué pasa, ya que el modelo todavía tiene un principio de construcción de árboles codicioso y esto a veces le impide obtener mejores resultados.

Precisamente eso es lo que molesta, las eternas integraciones que llevan más tiempo que el desarrollo del CT. También me gustaría trabajar en python, pero aún no tengo tiempo.

 
Maxim Dmitrievsky:

Eso es lo que molesta, las eternas integraciones que llevan más tiempo que el desarrollo del TC. También me gustaría hacer algo de python, pero aún no tengo tiempo.

Quiero usarlo con MT5 porque no estoy trabajando con python, me gusta que ketbust tenga versión de consola.

 
Aleksey Vyazmikin:

No estoy con python, me ha gustado que ketbust tenga versión de consola, quiero hacer esta versión compatible con MT5.

Puedes usar las de consola pero son incómodas de usar

 
Maxim Dmitrievsky:

casi todo el mundo tiene consolas, son incómodas para trabajar

No lo sabía, ¿quién más los tiene?

Por qué no es conveniente - habrá una secuencia de comandos en MT5, donde se puede implementar la configuración y la enumeración de los parámetros - mucho mejor que con el código puro de Python o R.

Catbust es capaz de trabajar con granjas gráficas, eso también me ha llamado la atención.

 
Aleksey Vyazmikin:

No lo sabía, ¿quién más lo tiene exactamente?

Por qué no es conveniente - habrá una secuencia de comandos en MT5, donde se puede implementar la configuración y la enumeración de los parámetros - de todos modos mejor que con el código puro de Python o R.

Catbust sabe cómo trabajar con las granjas de grpf, lo que también me llamó la atención.

todas las bibliotecas tienen el mbo, esta es solo la libra de los pros.

no se sienten cómodos y consumen mucho tiempo con el MO en lenguajes de bajo nivel, especialmente la investigación