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

 

Buenas tardes a todos.


Permítanme aclarar, ¿qué paquetes de ML utilizan los participantes, o todo se hace a través de MQL?

 

Sorprendentemente el archivo es legible, la calidad del modelo es pobre, que quiere comprobar en la validación....

Archivos adjuntos:
 
Mihail Marchukajtes:

Sorprendentemente el archivo es legible, la calidad del modelo es débil, que quiere comprobar en la validación....

En un archivo se escribe
* TruePositives: 853
* VerdaderosNegativos: 1098
* FalsosPositivos: 732
* FalsosNegativos: 985

es decir, casi 50/50.
Obtuve más o menos el mismo resultado para un problema lógico un poco más sencillo, por lo que supuse que las entradas de ruido están realmente estropeando el resultado de la RNN.

 
elibrarius:

El archivo dice
* TruePositives: 853
* VerdaderosNegativos: 1098
* FalsosPositivos: 732
* FalsosNegativos: 985

es decir, casi 50/50.
Obtuve más o menos el mismo resultado para un problema lógico un poco más sencillo, por lo que supuse que las entradas de ruido estropean mucho el resultado de la RNN.


Sí, la generalización del modelo es del 52%, así que...
 
Aleksey Terentev:

Buenas tardes a todos.


Permítanme aclarar, ¿qué paquetes de ML utilizan los participantes, o todo se hace a través de MQL?

Por regla general, todo se hace en R, a excepción de algunos entusiastas que intentan reescribir algunos modelos en MQL. En cuanto a los paquetes, depende del modelo que se utilice: árboles, redes neuronales, redes neuronales profundas, etc.

¿Qué modelo le interesa?

Buena suerte

 
Vladimir Perervenko:

Por regla general, todo se hace en R, excepto algunos entusiastas que intentan reescribir algunos modelos en ACM. En cuanto a los paquetes, depende del modelo que se utilice: árboles, redes neuronales, redes neuronales profundas, etc.

¿Qué modelo le interesa?

Buena suerte


Te has olvidado del optimizador de Reshetov, que también se utiliza aquí....
 
elibrarius:

El archivo dice
* TruePositives: 853
* VerdaderosNegativos: 1098
* FalsosPositivos: 732
* FalsosNegativos: 985

es decir, casi al 50%.
Obtuve más o menos el mismo resultado para un problema lógico un poco más sencillo, por lo que supuse que las entradas de ruido estropean mucho el resultado de la RNN.


Un MLP 20-5-1 normal puede hacer eso al mismo problema:

Error medio en el entrenamiento (60,0%) plot =0,116 (11,6%) nLearns=2 NGrad=2297 NHess=0 NCholesky=0 codResp=2
Error medio en la validación (20,0%) sección =0,111 (11,1%) nLearns=2 NGrad=2297 NHess=0 NCholesky=0 codResp=2
Error medio en la prueba (20,0%) =0,129 (12,9%) nLearns=2 NGrad=2297 NHess=0 NCholesky=0 codResp=2
Tiempo de cálculo=0,77 min.

Aunque a veces también da el 50%, supongo que necesito más de 2 ciclos de reentrenamiento.
---------------------------------

Red nnet 20-1-1 de R :
Predicción
Actual 0 1 Error
0 0.41 0.09 0.18
1 0.24 0.26 0.48

Un poco peor, pero sólo lo resuelve en un par de segundos.

Pero la RNN tiene un error = 0, en la sección de entrenamiento. Y eso también es genial. Seguramente publicaré en el blog mi experimento

 
elibrarius:

Un MLP 20-5-1 ordinario puede producir esto al mismo problema:

Error medio en el entrenamiento (60,0%) plot =0,116 (11,6%) nLearns=2 NGrad=2297 NHess=0 NCholesky=0 codResp=2
Error medio en la validación (20,0%) sección =0,111 (11,1%) nLearns=2 NGrad=2297 NHess=0 NCholesky=0 codResp=2
Error medio en la prueba (20,0%) =0,129 (12,9%) nLearns=2 NGrad=2297 NHess=0 NCholesky=0 codResp=2
Tiempo de cálculo=0,77 min.
---------------------------------

Red nnet 20-1-1 de R :
Predicción
Actual 0 1 Error
0 0.41 0.09 0.18
1 0.24 0.26 0.48

Un poco peor, pero sólo lo resuelve en un par de segundos.

Tenemos que entender algo más aquí, que resolver un problema no es algo difícil, sino la forma en que el modelo se comportará más adelante, esa es la cuestión. Podemos aprender rápidamente y sin errores. Pero con los nuevos datos no tendremos nada. Predikshin tiene una característica muy buena: en los datos nuevos funciona con la misma tasa de error que en el entrenamiento. Porque no se rearma y bla, bla, bla. Y las otras redes pueden aprender este ejemplo muy rápidamente, pero muestran resultados mucho peores en datos nuevos... IMHO
 
Mihail Marchukajtes:

Tenemos que darnos cuenta de que resolver el problema no es una tarea difícil, pero la cuestión es cómo se comportará el modelo después. Podemos aprender rápidamente y sin errores. Y con los nuevos datos no tendremos nada. Predikshin tiene una característica muy buena: en los datos nuevos funciona con la misma tasa de error que en el entrenamiento. Porque no se rearma y bla, bla, bla. Y las otras redes pueden aprender este ejemplo muy rápidamente, pero muestran resultados mucho peores en datos nuevos... IMHO

Así que aquí están los nuevos datos:

Error medio en la validación (20,0%) sección =0,111 (11,1%) nLearns=2 NGrad=2297 NHess=0 NCholesky=0 codResp=2
Error medio en la prueba (20,0%) sitio =0,129 (12,9%) nLearns=2 NGrad=2297 NHess=0 NCholesky=0 codResp=2

 
elibrarius:

Así que aquí están los nuevos datos:

Error medio en la validación (20,0%) plot =0,111 (11,1%) nLearns=2 NGrad=2297 NHess=0 NCholesky=0 codResp=2
Error medio en la prueba (20,0%) plot =0,129 (12,9%) nLearns=2 NGrad=2297 NHess=0 NCholesky=0 codResp=2


No estoy discutiendo, podría ser... :-)
Razón de la queja: