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

 
Mihail Marchukajtes:
Tiene toda la razón al principio. Por fin aparecieron personas sensatas en la sucursal. Pero la pauta en sí tiene un papel predictivo, y no es la pauta en sí lo que importa, sino la reacción del mercado ante ella. Y si esta reacción es idéntica a la del entrenamiento, la red sacará la conclusión correcta. Así que es como esto....
¿Qué hacer? ¿Intentar utilizar el clasificador bayesiano ingenuo o estudiar los j-predictores?
 
Yuri Evseenkov:
¿Qué hacer? ¿Intentar tirar del clasificador ingenuo de Besovia, o estudiar gPredictors?
xQué es el clasificador Besoviano???? No lo entiendo, ahora Reshetov ha hecho una cosa terriblemente genial, encendido, apagado, masa. Y tú sigues jugando con tus erres. Haciendo un montón de manipulaciones de datos innecesarias. Y cuál es el ejemplo del iris???? Es interesante ver cómo el Pronosticador lo resolverá....
 
Mihail Marchukajtes:
xQué es el clasificador de Besov???? No lo entiendo, ahora Reshetov ha hecho una cosa terriblemente genial, encendido, apagado, masa. Y tú sigues jugueteando con tus erres. Haciendo un montón de manipulaciones de datos innecesarias. Y cuál es el ejemplo del iris???? Es interesante ver cómo el Pronosticador lo resolverá....
Sí, sólo me enteré de R aquí. Y en la palabra clasificador bayesiano accidentalmente se perdió una letra (tal vez por Freud). Y que el programa de Reshetov es genial, no discuto. No sé sobre el iris.
 
Yuri Evseenkov:
Sólo me enteré de R aquí. Y accidentalmente se me escapó una letra en la palabra clasificador bayesiano (quizás por Freud). Y el programa de Reshetov es genial, no lo discuto. No sé sobre Iris.
La máquina de IShaitan Reshetov :-)
 
Mihail Marchukajtes:
xQué es el clasificador de Besov???? No lo entiendo, ahora Reshetov ha hecho una cosa terriblemente genial, encendido, apagado, masa. Y tú sigues jugueteando con tus erres. Haciendo un montón de manipulaciones de datos innecesarias. Y cuál es el ejemplo del iris???? Es interesante ver cómo el Pronosticador lo resolverá....

¿puedo ver el resultado de las operaciones de ayer?

 
Mihail Marchukajtes:
El coche de IShaitan Reshetov :-)
¿Borremos los mensajes que comienzan con mi error tipográfico?
 
mytarmailS:

Por qué los indicadores nunca han funcionado y nunca lo harán, mi opinión...

¿alguien ha probado algo? ¿se le ocurre alguna idea? ¿o ni siquiera estaba claro de qué se trataba?
 
2 Dr.Trader.

Hola.

Sí, he intentado reunir un comité.

Tengo 1000 modelos entrenados. Hay una muestra diferida de 5 años. Le pedí a mi colega que me aconsejara sobre cómo reunir los comités. Aconsejó montar la comisión en una parte de la muestra diferida y probarla en la otra. Aquí es donde flaqueé. El comité volvió a entrenar para la primera parte y mostró una ciruela en la segunda.

Lo mismo ocurre con los modelos individuales. Cometo el error de seleccionar un modelo por muestreo diferido. Después de eso, el modelo puede ser fácilmente enjuagado.
 

Gran parte de esto lo sabes tú mismo y lo has hecho, pero voy a escribir con más detalle para excluir algunos supuestos de los que hablamos de la misma manera pero que hacemos de forma diferente.

Es necesario tener una función de aptitud cuidadosamente afinada para estimar los parámetros del modelo. Si la función evalúa los parámetros específicos del modelo y los predictores seleccionados con una alta puntuación, entonces debería haber buenos resultados en la prueba sobre los nuevos datos.
(Tendré en cuenta para cualquier estimación que cuanto más alta sea, mejor será)

Por ejemplo, tienes datos para la formación, 5 años. Y los parámetros para gbm son n.trees, interaction.depth, shrinkage, n.minobsinnode, distribution, bag.fraction.

La función de aptitud debe repetirse al menos 50 veces en un ciclo:
1) dividir los datos en 2 partes, 50%/50%. Debe haber tanto un muestreo aleatorio con muestra como un muestreo secuencial (la pieza para la formación está en algún lugar del medio, y para la validación lo que la rodea al principio y al final de los datos brutos). Incluyendo versiones extremas, donde el entrenamiento en la primera mitad de la tabla y la validación en la última, y viceversa. Creo que es importante tener tanto muestras secuenciales como muestras aleatorias para el entrenamiento. En la imagen se pueden ver más claramente algunos ejemplos de partición aleatoria y secuencial, las líneas verdes son de entrenamiento, las amarillas son de validación.


2) entrenar el modelo en la muestra de entrenamiento (los parámetros del modelo y los predictores utilizados son los mismos durante todo el ciclo, los que se intentan estimar), luego predecir estos mismos datos con este modelo, y calificar la predicción - precisión, r^2, o algo más. Yo, por ejemplo, redondeo el resultado de la regresión a las clases, y uso la función Kappa de Cohen para la estimación, es de caret, me gusta más que la precisión de la clasificación o la precisión de la regresión. Pero sólo funciona para dos clases. Para tres clases me parece difícil sugerir algo, es importante que la estimación tenga en cuenta la precisión de cada clase por separado, y dé alguna estimación global basada en esto.
3) Aplicar un modelo entrenado para predecir los datos de una muestra de validación, estimar la predicción con la misma función.
4) Ambas estimaciones (la de entrenamiento y la de validación) deben estar cerca la una de la otra, y ser lo más altas posible. Utilizo este código para la puntuación final - (min(puntuación1,puntuación2) - (max(puntuación1,puntuación2)-min(puntuación1,puntuación2)) - del valor mínimo se resta su delta.

Al final de cada iteración obtendremos alguna puntuación, y debido a la división aleatoria de los datos puede variar de -1 a 1 (o en otro intervalo, dependiendo de la función utilizada). Calculamos su valor medio y lo devolvemos como resultado de la función de aptitud. Además, resto del valor de aptitud un pequeño número (0,0001) para cada predictor utilizado, para penalizar el modelo por un conjunto demasiado grande de datos requeridos.

Lo aplico junto con la genética, que recoge los predictores y los parámetros del modelo, maximizando el valor de la aptitud.

El resultado final es un conjunto de predictores y parámetros del modelo que, por término medio, tienen buenos resultados de predicción en los datos de entrenamiento disponibles. El modelo puede encontrar algunos patrones en los datos, aprender de ellos y seguir encontrando con éxito esos mismos patrones en los nuevos datos de validación, sea cual sea la muestra de datos utilizada para el entrenamiento.
Como el modelo se entrena utilizando sólo el 50% de los datos disponibles cada vez y los parámetros y predictores se eligen en base a esto, es una condición importante para el modelo.
El modelo del comité debe entrenarse en las mismas condiciones, ya sea por muestreo o seleccionando sucesivamente el 50% de los datos para el entrenamiento. Para cada nuevo modelo se necesita también una nueva muestra (o conjunto secuencial).

No se sabe cuánto tiempo dará este comité buenas previsiones, pero teniendo en cuenta que los datos de formación eran para 5 años, el comité obviamente vivirá menos de los próximos 5 años.
Un punto más importante - si después de todo el tiempo gastado para la creación de la comisión será la pérdida de beneficios - entonces el paquete utilizado para las previsiones no es adecuado para la divisa. Tal vez tenga demasiados grados de libertad, o simplemente no sea adecuado. Es mejor tomar otro paquete. O puede intentar reducir el porcentaje de datos de entrenamiento del 50% a incluso menos.

Todo esto a partir de los consejos de este foro, y la experiencia.

 
Dr.Trader:

Gran parte de esto lo sabes tú mismo y lo has hecho, pero voy a escribir con más detalle para excluir algunos supuestos de los que hablamos de la misma manera pero que hacemos de forma diferente.

Hay que tener una función de aptitud cuidadosamente afinada para estimar los parámetros del modelo. Si la función evalúa los parámetros específicos del modelo y los predictores seleccionados con una alta puntuación, entonces debería haber buenos resultados en la prueba sobre los nuevos datos.
(Tendré en cuenta para cualquier estimación que cuanto más alta sea, mejor será)

Por ejemplo, tienes datos para la formación, 5 años. Y los parámetros para gbm son n.trees, interaction.depth, shrinkage, n.minobsinnode, distribution, bag.fraction.

La función de aptitud en el ciclo debe repetirse al menos 50 veces:
1) dividir los datos en 2 partes, 50%/50%. Debe haber tanto un muestreo aleatorio con muestra como un muestreo secuencial (la pieza para la formación está en algún lugar del medio, y para la validación lo que la rodea al principio y al final de los datos brutos). Incluyendo versiones extremas, donde el entrenamiento en la primera mitad de la tabla y la validación en la última, y viceversa. Creo que es importante tener tanto muestras secuenciales como muestras aleatorias para el entrenamiento. En la imagen se pueden ver más claramente algunos ejemplos de partición aleatoria y secuencial, las líneas verdes son de entrenamiento, las amarillas son de validación.


2) entrenar el modelo en la muestra de entrenamiento (los parámetros del modelo y los predictores utilizados son los mismos durante todo el ciclo, los que se intentan estimar), luego predecir estos mismos datos con este modelo, y calificar la predicción - precisión, r^2, o algo más. Yo, por ejemplo, redondeo el resultado de la regresión a las clases, y uso la función Kappa de Cohen para la estimación, es de caret, me gusta más que la precisión de la clasificación o la precisión de la regresión. Pero sólo funciona para dos clases. Para tres clases me parece difícil sugerir algo, es importante que la estimación tenga en cuenta la precisión de cada clase por separado, y dé alguna estimación global basada en eso.
3) Aplicar un modelo entrenado para predecir los datos de una muestra de validación, estimar la predicción con la misma función.
4) Ambas estimaciones (la de entrenamiento y la de validación) deben estar cerca la una de la otra, y ser lo más altas posible. Utilizo este código para la puntuación final - (min(puntuación1,puntuación2) - (max(puntuación1,puntuación2)-min(puntuación1,puntuación2)) - del valor mínimo se resta su delta.

Al final de cada iteración obtendremos alguna puntuación, y debido a la división aleatoria de los datos puede variar de -1 a 1 (o en otro intervalo, dependiendo de la función utilizada). Calculamos su valor medio y lo devolvemos como resultado de la función de aptitud. Además, resto del valor de aptitud un pequeño número (0,0001) para cada predictor utilizado, para penalizar el modelo por un conjunto demasiado grande de datos requeridos.

Aplico esto junto con la genética, que recoge los predictores y los parámetros del modelo, maximizando el valor de la aptitud.

El resultado final es un conjunto de predictores y parámetros del modelo que, por término medio, tienen buenos resultados de predicción en los datos de entrenamiento disponibles. El modelo puede encontrar algunos patrones en los datos, aprender de ellos y seguir encontrando con éxito esos mismos patrones en los nuevos datos de validación, sea cual sea la muestra de datos utilizada para el entrenamiento.
Como el modelo se entrena utilizando sólo el 50% de los datos disponibles cada vez y los parámetros y predictores se eligen en base a esto, es una condición importante para el modelo.
El modelo del comité debe entrenarse en las mismas condiciones, ya sea por muestreo o seleccionando sucesivamente el 50% de los datos para el entrenamiento. Para cada nuevo modelo se necesita también una nueva muestra (o conjunto secuencial).

No se sabe cuánto tiempo dará este comité buenas previsiones, pero teniendo en cuenta que los datos de formación eran para 5 años, el comité obviamente vivirá menos de los próximos 5 años.
Y un punto más importante - si después de todo el tiempo gastado para la creación de la comisión va a ser el comercio de pérdida - entonces el paquete utilizado para las previsiones no es adecuado para la divisa. Tal vez tenga demasiados grados de libertad, o simplemente no sea adecuado. Es mejor tomar otro paquete. O puede intentar disminuir el porcentaje de datos para la formación del 50% a incluso menos.

Todo esto a partir de los consejos de este foro, y la experiencia.

Un excelente resumen de los resultados.

Enhorabuena.