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

 
elibrarius:
Cópialo en tu blog, tal vez alguien pueda necesitarlo. No es realista buscar algo aquí.

El blog también tiene este código. Pero es un material bastante básico de "cómo hacer kfold", hay muchas cosas que hay que retocar para tus tareas específicas. Además, si se habilita el multithreading en la genética, elmnn ignorará el grano gpsfold instalado y cada hilo obtendrá algo diferente e irreproducible, para tal caso (multithreading en la genética) ver los artículos de Vladimir Perervenko y su manera de controlar gpsfold.

 
Maxim Dmitrievsky:

todavía hay una dimensión extra y tienes que dibujar una curva a través de ella de alguna manera, tal vez con un gran error

El abandono aumenta el error, ¿no?

El abandono equivale a la desactivación de una neurona. Si hay ruido, es bueno.
Y para qué inventar algo que aumente el error: todo tiene sentido, siempre que ayude a reducir el error.
 
elibrarius:
El abandono equivale a apagar una neurona. Si hay ruido, es bueno.
Y por qué pensar en algo que aumente el error - todo tiene sentido si ayuda a reducir el error.

Ejem... aumentar el error se supone que elimina el sobreentrenamiento. No siempre, pero ¿cómo si no?

Por eso dicen que 0,5 es una buena shiba para el forex. Para mí a partir de 0,3 0,4 empieza a funcionar más o menos, si es menos entonces sobreajusta como norma.

se creen que son geniales, de hecho, sólo entrenan mal el modelo, y más o menos no se filtra nada por ahí porque se negocia a medias

 
Dr. Trader:

Python también debería serlo.

Ya veo, pitón está lejos de mí en absoluto... ¿No hay nadie que haga una envoltura GUI para trabajar con NS?

Dr. Trader:

Ejecutaré el algoritmo esta noche y te mostraré lo que ha salido mañana.

Gracias, será educativo.

Dr. Trader:

Lograr una precisión del 100% y esperar que el modelo funcione bien suele ser imposible en el mercado de divisas, se necesitan meses para seleccionar los predictores e incluso un objetivo que encaje bien. Por lo general, tras alcanzar una precisión de un par de decenas superior al 50%, el modelo empieza a memorizar los ejemplos de entrenamiento en lugar de encontrar patrones lógicos en ellos. Así que el resultado de los nuevos datos será cada vez peor. En sus datos obtuve este óptimo de alrededor del 60% - cuando los resultados en los datos de entrenamiento y de prueba son aproximadamente iguales, pero con una partición de árboles más detallada y una mayor precisión el bosque muestra resultados cada vez peores en los nuevos datos.

Cuál es la prisa, hay tiempo si no hay que perderlo.

Sin embargo, no entiendo muy bien la diferencia entre memorizar y aprender, en mi opinión todo este MO debería encontrar características en el conjunto de datos y comprobar el resultado esperado con el resultado memorizado, pero teniendo en cuenta la deformación de los datos, y en consecuencia dar su previsión en función de la deformación. Eso es lo que tenía en mente hasta que empecé a trastear con todo.

Sólo me sorprende que el árbol se resuelva con diferentes conjuntos de predictores, lo que significa que no se revisan todos los datos y conocimientos cuando se construye, y es esta circunstancia la que me permite hacer una suposición sobre la permisividad de nuevas ramificaciones.

 
Maxim Dmitrievsky:

Ejem... al aumentar el error, parece que se elimina el sobreentrenamiento. No siempre, pero ¿cómo podría ser si no?

Eso también. Más concretamente, es la tarea principal. Tengo la asociación de quitar neuronas con quitar entradas. Tal vez eso no sea correcto.

Sí, más bien la desconexión en la primera capa es como eliminar las entradas.

 
Elibrarius:

Esto también. Más concretamente, esta es la tarea principal. Tengo una asociación de quitar neuronas con quitar entradas. Puede que no sea correcto.

la eliminación de las neuronas es la eliminación de los grados de libertad = aumento del error, el engrosamiento

Si se eliminan algunos términos de una regresión, equivale a eliminar entradas, y en una NS totalmente coherente, por qué

dropconnect, por el nombre, sí, parece

 
Maxim Dmitrievsky:

la eliminación de las neuronas es la eliminación de los grados de libertad = aumento del error, el engrosamiento

si de la regresión para eliminar algunos miembros es equivalente a la eliminación de las entradas, y en un NS totalmente conectado por qué

dropconnect, por el nombre, - sí, parece.

Pero también con dropconnect la tarea se complica... Por ejemplo, 50 entradas, 50 neuronas.
Al eliminar 1 entrada, eliminamos también 50 conexiones para 50 neuronas.
Y es 50 veces más difícil eliminar las 50 conexiones para eliminar 1 entrada. Y de esta manera recorrer las 50 entradas... son 50^50 variaciones. Evidentemente, es una tarea inútil. Es más fácil tratar con las entradas: sólo tenemos 2^50 ))).
 
elibrarius:

La pregunta no es sólo para ti, es para todos.

En la práctica es así, es decir, si hay predictores de ruido entonces NS no puede salir del 50-55%. Si se recoge, puede dar incluso el 70%.

Pero, ¿por qué es así?
1) Bien, NS debería seleccionar automáticamente pesos cercanos a 0 para los predictores de ruido durante el entrenamiento (equivale a su exclusión de la selección). Lo vimos en el problema del principio de la rama.
2) Si no es entrenando para subestimar los pesos, al menos el abandono debería filtrarlos...

Se ha escrito muchas veces: los predictores de ruido son mucho más amigables con el modelo - siempre hay valores en el ruido que mejoran el resultado del aprendizaje. Así que el proceso se invierte: los predictores de ruido tienen más peso, no como usted sugiere. Esto se nota especialmente en las muestras pequeñas, que son inferiores a 1000 observaciones. Las muestras de más de 5.000 observaciones no se ven tan afectadas, pero sigue siendo necesario preseleccionar los predictores de ruido

 
elibrarius:
Pero también con dropconnect la tarea es difícil... Por ejemplo, 50 entradas, 50 neuronas.
Al eliminar 1 entrada, eliminamos también 50 conexiones para 50 neuronas.
Y es 50 veces más difícil eliminar las 50 conexiones por eliminar 1 entrada. Y de esta manera eliminar las 50 entradas... Al parecer, es una tarea inútil. Es más fácil lidiar con las entradas.
Las entradas son más importantes de todos modos, jugar con los modelos ya es un chamanismo y por idea no debería dar grandes ganancias en el caso general. Bueno, hice un conjunto de andamios, después de dejar caer andamios individuales puedo mejorar en 0,05, a veces en 0,1 en el error (diferencia entre traine y prueba). Esto no resuelve el problema principal. En las redes neuronales avanzadas no sé cómo.
 
SanSanych Fomenko:

Se ha escrito muchas veces: los predictores de ruido son mucho más amigables con el modelo - siempre hay valores en el ruido que mejoran el resultado del aprendizaje. Así que el proceso se invierte: los predictores de ruido tienen más peso, no como usted sugiere. Esto se nota especialmente en las muestras pequeñas, que son inferiores a 1000 observaciones. Las muestras de más de 5.000 observaciones no se ven tan afectadas, pero sigue siendo necesario prever los predictores de ruido

¿Quizás exista una tecnología que permita priorizar los predictores para su uso en NS/Tree/Forest según su importancia desde el punto de vista del analista?