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

 

1) ¿Entiendo correctamente el significado de dividir el conjunto de datos en entrenamiento, validación y prueba:?

a) lo enseñamos en un entrenador
b) comprobar el error en la validación, si es mucho mayor que en el entrenador, volver a 1, hasta que el error sea el mismo (¿cuánto es lo mismo - 5% del error total? Por ejemplo, un 15% en la tutoría y un 20% en la validación)
c) Comprobarlo en uno de prueba, si el error es el mismo con los dos primeros conjuntos (¿cuánto es el mismo?) entonces el modelo es estable y se puede ejecutar, si no entonces podemos olvidarnos de él. Y buscar otros predictores, cambiar el filtro, etc.

2) Por cierto, ¿cuál es la tasa de error de entrenamiento/validación/prueba a la que hay que aspirar? ¿15/20/20% o quizás 5/10/15%? u otro?

3) No entiendo muy bien por qué se recomienda mezclar los ejemplos de formación. De todos modos, procesaremos cada ejemplo.

 
elibrarius:

Por cierto, ¿cuál es el nivel de error en la formación/validación/prueba al que hay que aspirar? ¿15/20/20% o quizás 5/10/15% u otro?

Anteriormente, sí, algo así.

En cuanto al error, depende de los detalles. Si, por ejemplo, la MO o la NS determinan la entrada en una operación, entonces un error del 50% puede ser suficiente. Por ejemplo, en una operación exitosa se obtiene una media de 2-3p de beneficio, y en una fallida 1p de pérdida. En este caso, 0,5 no es una mala probabilidad.

 
Yuriy Asaulenko:

El anterior, sí, de alguna manera.

En cuanto al error, depende de los detalles. Si, por ejemplo, la MO o la NS determinan la entrada en una operación, entonces un error del 50% puede ser suficiente. Por ejemplo, en una operación exitosa se obtiene una media de 2-3p de beneficio, y en una fallida 1p de pérdida. En este caso, 0,5 no es una mala probabilidad.

0,5 parece ser demasiado pequeño... ¿Qué valores debería intentar alcanzar en la práctica (no otros problemas de NS, sino para el comercio)?
Porque quiero aprender hasta un 10%, pero si esta cifra no es realista, estaré perdiendo mi tiempo y mi CPU. Digamos: ¿cuál es el mejor error que ha conseguido y a qué nivel es posible detenerse y no buscar la mejora?
 
elibrarius:
0,5 puede ser demasiado pequeño... ¿Y a qué valores debo aspirar? ¿Cuáles puedo alcanzar realmente en la práctica (no en otras tareas de NS, sino en el comercio)?
Puede que quiera aprender hasta un 10%, pero si esta cifra no es realista, estaré perdiendo mi propio tiempo y el de la CPU. Digamos: ¿cuál es el mejor error que ha conseguido y a qué nivel puede detenerse y no buscar la mejora?

¿0,5 no es suficiente? Tienes que estar bromeando). Ya puse este ejemplo: el jugador de póker tiene 1/9-1/6 de probabilidad de ganar, y los buenos jugadores siempre están en el negro.

Y todos mis sistemas funcionaban con una probabilidad de ~0,5, y siempre estaban en el plus. Por lo que sé, muchos TS trabajan con una probabilidad cercana a 0,5 - se mencionó en la conferencia de autotrading, en particular.

"Por lo demás, quiero entrenar hasta el 10%, pero si es una cifra irreal" - si es real o irreal depende de la tarea específica. Por ejemplo, entrené NS para el cruce de MACs - por lo que es casi 100% confiable)).

 
Yuriy Asaulenko:

¿0,5 no es suficiente? Tienes que estar bromeando). Ya puse este ejemplo: el jugador de póker tiene 1/9-1/6 de probabilidad de ganar, y los buenos jugadores siempre están en el negro.

Y todos mis sistemas funcionaban con una probabilidad de ~0,5, y siempre estaban en el plus. Por lo que sé, muchos TS trabajan con una probabilidad cercana a 0,5 - se mencionó en la conferencia de autotrading, en particular.

"Por lo demás, quiero entrenar hasta el 10%, pero si es una cifra irreal" - si es real o irreal depende de la tarea específica. Por ejemplo, he enseñado a NS a cruzar MAs - por lo que es casi 100% fiable)).

Es cierto, puedes hacerlo sin ninguna predicción (50%), sólo necesitas tomar ganancias más que el stop. En realidad no puedes predecir nada, nadie sabe a dónde irá el precio en Forex, sólo los iniciados, los titiriteros lo saben.

 
Vasily Perepelkin:

En realidad, es imposible predecir nada, nadie sabe hacia dónde irá el precio en el mercado de divisas, sólo los iniciados, los titiriteros lo saben.

En realidad es posible. No creo que sea posible utilizar el 0,5 con previsión y retirada superior al stop, no es lo mismo que el 50/50 y si Dios quiere). - es decir, sin previsión. Estamos lanzando una moneda completamente diferente)).
 
elibrarius:

1) ¿Entiendo correctamente el significado de dividir el conjunto de datos en entrenamiento, validación y prueba:?

a) aprender en un entrenador
b) comprobar el error en la validación, si es mucho mayor que en la de entrenamiento, ir al paso 1 hasta que el error sea el mismo (¿cuánto es el mismo - 5% del error total? Por ejemplo, un 15% en la tutoría y un 20% en la validación)
c) Comprobar en uno de prueba, si el error es el mismo con los dos primeros conjuntos (¿cuánto es igual?) entonces el modelo es estable y se puede ejecutar, si no, podemos olvidarnos de él. Y buscar otros predictores, cambiar el filtro, etc.

2) Por cierto, ¿cuál es la tasa de error de entrenamiento/validación/prueba a la que hay que aspirar? ¿15/20/20% o quizás 5/10/15%? u otro?

3) No entiendo muy bien por qué se recomienda mezclar los ejemplos de formación. Vamos a procesar cada ejemplo de todos modos.


1) No todos y esto es fundamental.

Tomamos un gran archivo. Dividirlo en dos partes desiguales.

La parte más grande está dividida como usted ha descrito. Obtenemos los errores que deberían ser aproximadamente iguales.

A continuación, comprobamos el modelo en la segunda parte del archivo. El error en esta parte tampoco debería ser muy diferente.

Esta es la prueba más importante de la ausencia de perobuchismo (sobreajuste).


¿La magnitud del error? Se trata de una especie de constante que se deriva del conjunto de predictores que puede reducirse ajustando el tipo del modelo.


Por ejemplo.

Si los cuatro errores rondan el 35%, entonces al seleccionar un modelo, Dios no lo quiera, se reduce el error al 30%.


PS.

Un error inferior al 10% es un claro signo de sobreentrenamiento. Si tiene un error de este tipo, debe comprobarlo cien veces.

 

He encontrado una parada temprana con sección de validación en ALGLIB:

Entrenamiento de la red neuronal con parada anticipada (algoritmo base - L-BFGS con regularización).
...
El algoritmo se detiene si el error del conjunto de validación aumenta durante mucho tiempo
suficiente o el tamaño del paso es lo suficientemente pequeño (hay tareas en las que
conjunto de validación puede disminuir para la eternidad). En cualquier caso la solución
devuelto corresponde al mínimo de error del conjunto de validación.

A juzgar por el código, no compara el error en las secciones de entrenamiento y validación, sino que busca el error mínimo en la sección de validación. Y se detiene si no encuentra uno mejor después de 30 iteraciones, o si han pasado todas las iteraciones.

Pero no estoy seguro de que este método sea mejor/más preciso que el habitual... A menos que el número de ciclos de entrenamiento se incremente varias veces...

Esto es lo que tenemos:

Error medio en el entrenamiento (80%) =0,535 nLearns=200 NGrad=142782 NHess=0 NCholesky=0 codResp=6
Error medio en la validación (20%) sección =0,298 nLearns=200 NGrad=142782 NHess=0 NCholesky=0 codResp=6
Gráfico completo (gráfico de entrenamiento + validación):
Error medio de aprendizaje=0,497 nLearns=200 NGrad=142782 NHess=0 NCholesky=0 codResp=6
Error medio en la prueba (20%) sección =0,132 nLearns=200 NGrad=142782 NHess=0 NCholesky=0 codResp=6

Se siente como si hubiera un ajuste a la trama de validación. El de prueba es generalmente exitoso, pero no estaba en el entrenamiento y no fue comparado, probablemente sólo una coincidencia.
Esta f cuenta conjuntos, y hay una división de 2/3 y todo se mezcla entre ambas parcelas, voy a tratar de hacer lo mismo...
Lo barajé:

Error medio en el área de entrenamiento (60%) =0,477 nLearns=10 NGrad=10814 NHess=0 NCholesky=0 codResp=6
Error medio en la sección de validación (40%) =0,472 nLearns=10 NGrad=10814 NHess=0 NCholesky=0 codResp=6
Gráfico completo (gráfico de entrenamiento + validación):
Error medio de aprendizaje=0,475 nLearns=10 NGrad=10814 NHess=0 NCholesky=0 codResp=6
Error medio en la prueba (20%) sección =0,279 nLearns=10 NGrad=10814 NHess=0 NCholesky=0 codResp=6

Debido a la mezcla, el error se iguala en las secciones de entrenamiento y validación.

Algo me parece mal, ya que en la negociación real las barras irán en su propio orden, y no mezcladas con las de hace una hora y un día.
Y si la "naturaleza" del mercado cambia, significa que tenemos que reaprender o buscar nuevos modelos de NS.

 
Yuriy Asaulenko:
Es realmente posible. 0,5 con predicción y take profit más que stop no es lo mismo que 50/50, si Dios quiere)) - es decir, sin previsión. Estamos lanzando una moneda completamente diferente)).
Si abrimos al azar y tomamos un stop loss 2 veces más que, por ejemplo, y ya está, tendremos un beneficio estadístico, por ejemplo 100 operaciones con 10 puntos de beneficio y 100 con 5 puntos de pérdida, como resultado tenemos 500 puntos de beneficio, no necesitamos ninguna previsión.
 
SanSanych Fomenko:


1) No todos y es fundamental.

Tomamos un gran archivo. Dividirlo en dos partes desiguales.

Dividir la parte más grande de la forma que has descrito. Obtenemos los errores, que deberían ser más o menos iguales.

Después se comprueba el modelo en la segunda parte del archivo. El error en esta parte tampoco debería ser muy diferente.

Esta es la prueba más importante de la ausencia de "feathering" (sobreajuste).

¿4 parcelas resultan? Formación/validación/prueba1/prueba2 ?

¿Cuántos ciclos de formación/validación hay que hacer? No he visto ninguna información al respecto en ningún sitio... ¿1 ciclo en total? - ¿y justo después aprobamos o cambiamos algo en el conjunto de predictores o en el esquema de la red? Más concretamente para N ciclos de entrenamiento se nos mostrará uno mejor.