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

 
Mihail Marchukajtes:
¡¡¡¡Hola a todos!!!! Me alegro de que este hilo no esté muerto y siga vivo, así que tengo una pregunta para el público. Tengo un conjunto de datos para el entrenamiento, pero desgraciadamente se hizo tan grande que el entrenamiento lleva demasiado tiempo. Puede alguien construir un modelo utilizando su propia experiencia y luego veremos cómo funciona juntos!!!!!.

Intenta dejar las entradas (en orden desde 0, 0 es la primera columna)

0,4,50,53,59,61,64,92,98,101,104,

Archivos adjuntos:
 

Pude calcular la parte truncada del conjunto de datos, aquí está el resultado de la red fuera de la muestra, pero tuve que reflejar el modelo completamente.

Este es el trabajo de 05.29 y creo que es bastante bueno.


 
elibrarius:

Intenta dejar las entradas (en orden desde 0, 0 es la primera columna)

0,4,50,53,59,61,64,92,98,101,104,


La ventaja del optimizador es que elimina las columnas innecesarias. Por eso tarda tanto. Pero ahora voy a intentar optimizar el conjunto de datos completo, pero con sus recomendaciones y luego ver cuál será el resultado fuera de la muestra. ¿ok?
 
Mihail Marchukajtes:

La ventaja del optimizador es que elimina las columnas innecesarias. Por eso tarda tanto en calcularse. Pero ahora intentaré optimizar el conjunto de datos completo, teniendo en cuenta tus recomendaciones y luego veré cuál será el resultado fuera de la muestra, ¿vale?


¡¡¡Bien hecho!!! He empezado el entrenamiento, teniendo en cuenta que hay bastantes menos columnas, creo que contará rápidamente, ya postearé el resultado :-)

Así es, el primer entrenamiento dio como resultado un 55% de generalizabilidad.

 

Curiosamente, con estas entradas también hay que invertir el modelo y entonces en la misma zona se puede obtener la siguiente equidad

Es un poco peor pero todavía se puede aplicar.

Ojalá pudiéramos ejecutar todo el conjunto de datos en el optimizador. Creo que entonces se habrían seleccionado más columnas y el nivel de generalización habría sido mayor, de ahí la calidad de la red en la zona de no muestreo...

 
Mihail Marchukajtes:


¡¡¡Bien hecho!!! He comenzado a entrenar, como el número de columnas se redujo significativamente, creo que contará rápidamente, voy a publicar el resultado :-)

Así es, el primer entrenamiento dio como resultado un 55% de generalizabilidad.

¿Cuál es el 55% de generalizabilidad?
La MLP normal da 11-5-1:
Error medio en el entrenamiento (60,0%) plot =0,057 (5,7%) nLearns=2 NGrad=332 NHess=0 NCholesky=0 codResp=2
Error medio en la validación (20,0%) plot =0,038 (3,8%) nLearns=2 NGrad=332 NHess=0 NCholesky=0 codResp=2
Error medio en la prueba (20,0%) plot =0,023 (2,3%) nLearns=2 NGrad=332 NHess=0 NCholesky=0 codResp=2
 
elibrarius:
¿Qué es el 55% de generalizabilidad?
El MLP convencional 11-5-1 da:
Error medio en el entrenamiento (60,0%) plot =0,057 (5,7%) nLearns=2 NGrad=332 NHess=0 NCholesky=0 codResp=2
Error medio en la validación (20.0%) sección =0,038 (3,8%) nLearns=2 NGrad=332 NHess=0 NCholesky=0 codResp=2
Error medio en la prueba (20,0%) sección =0,023 (2,3%) nLearns=2 NGrad=332 NHess=0 NCholesky=0 codResp=2


No sé ni qué responder. La única manera es citar un ejemplo del informe. El resultado de la optim ización puede tener este aspecto: cómo interpretarlo depende de cada uno. Pero cuando la optimización termina, el resultado tiene el siguiente aspecto

* Sensibilidad de la capacidad de generalización: 55,12820512820513%.

* Especificidad de la capacidad de generalización: 55,5045871559633%.

* Capacidad de generalización: 55,309734513274336%.

* TruePositives: 129

* FalsosPositivos: 105

* VerdaderosNegativos: 121

* FalsosNegativos: 97

* Total de patrones en las muestras con estadísticas: 452

En rojo, he destacado el resultado global de la capacidad de generalización. El primero es el porcentaje de aciertos de unos, el segundo el porcentaje de aciertos de ceros y el tercero el total.


 
Mihail Marchukajtes:


No sé qué decir. Sólo para dar un ejemplo del informe. El resultado de la optimización se ve así y puedes interpretarlo como quieras, pero cuando la optimización termina, el resultado se ve así.

* Sensibilidad de la capacidad de generalización: 55,12820512820513%.

* Especificidad de la capacidad de generalización: 55,5045871559633%.

* Capacidad de generalización: 55,309734513274336%.

* TruePositives: 129

* FalsosPositivos: 105

* VerdaderosNegativos: 121

* FalsosNegativos: 97

* Total de patrones en las muestras con estadísticas: 452

En rojo, he resaltado el resultado global de la capacidad de generalización. El primero es el porcentaje de aciertos de solteros, el segundo es el porcentaje de aciertos de ceros y el tercero es el total.


MLP está adivinando el 95% del tiempo... Creo que te estás equivocando de moto) Sin ánimo de ofender.
Yo también estoy haciendo mi propia moto, pero basándome en décadas de MLP probada (que, como dicen, está anticuada y necesita algo más chulo para funcionar). Así que estoy a favor de las motos, ¿quizás tu código tenga alguna lógica defectuosa en alguna parte? Ya he encontrado algunos en el mío mientras probaba diferentes variantes. Incluyendo la solución del problema desde el primer post de este hilo. Pero estos mismos filtros, que cortan lo innecesario en tu problema - cortan lo necesario en ese ((. Así que creo que debería utilizar los pesos de las entradas para hacer la criba, el campo se ejecuta en los datos completos.
 
elibrarius:
MLP está adivinando el 95% del tiempo... Creo que te estás equivocando de moto) Sin ánimo de ofender.
Yo también estoy haciendo mi propia moto, pero basándome en décadas de MLP probada (que dicen que está anticuada y necesita algo más fresco para funcionar). Así que estoy a favor de las motos, ¿quizás tengas un error lógico en alguna parte de tu código? Ya he encontrado algunos en el mío, mientras probaba diferentes variantes.


El caso es que no soy programador. Este optimizador no fue escrito por mí, sólo lo uso, de todos modos las entradas que ha especificado dar 55 por ciento de la generalización, que es mejor que adivinar, por lo tanto, vemos el resultado fuera de la muestra con el beneficio positivo. Lo único que me detiene ahora es que el modelo tiene que ser espejado, entonces ganará, y si el modelo es recto, entonces perderá...

Pero si ejecutamos el optimizador en todas las entradas, creo que el modelo será mucho más complejo y seleccionará más entradas. Y, en teoría, este modelo debería funcionar mejor y durante más tiempo. Pero no puedo ejecutar el optimizador en un conjunto de datos completo: creo que tardará un mes en leerlo. Así que, mi esperanza es ejecutar el optimizador en la GPU, y entonces veremos.

 
Mihail Marchukajtes:


El caso es que yo no programo. Este optimizador no fue escrito por mí, sólo lo uso, de todos modos entradas que ha especificado dar 55 porcentajes de generalización que es mejor que adivinar, por lo tanto, vemos el resultado fuera de la muestra con beneficio positivo. Lo único que me detiene ahora es que el modelo debe ser espejado, entonces aumenta, y si el modelo es recto, entonces pierde.

Pero si ejecutamos el optimizador en todas las entradas, creo que el modelo será mucho más complejo y seleccionará más entradas. Y, en teoría, este modelo debería funcionar mejor y durante más tiempo. Pero no puedo ejecutar el optimizador en un conjunto de datos completo: creo que tardará un mes en leerlo. Así que mi esperanza es ejecutar el optimizador en la GPU, y entonces veremos.

Si vas a poner en marcha algo durante un mes utiliza una fuente de alimentación ininterrumpida, a mí se me cortó la luz en unas 2 semanas de cálculo)).
Y no esperes a la GPU, puede que te lleve más tiempo reescribir el código y si el autor no lo ha hecho, difícilmente alguien más terminará la tarea.