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

 
Dr. Trader:

La genética intenta encontrar los parámetros correctos para un número limitado de llamadas a funciones. Al reducir el número de variantes de este parámetro (30 en lugar de 200), el genetista puede investigar la región de 1 a 30 con más detalle. Y con razón, si se conocen los límites específicos para encontrar algún parámetro del modelo, es mejor dar esta información al genetista de inmediato.


Alternativamente:

Añade esta línea (la verde) al código, entonces el genetista tendrá 500 individuos en la población en lugar de los 50 por defecto. Y podrá probar 10 veces más modelos (pero el tiempo de ejecución del script también aumentará 10 veces), pudiendo probar tantas combinaciones de parámetros de modelos como sea posible. Incluso con un máximo de 200 neuronas creo que la genética puede encontrar un mejor resultado con 0,85 también, o al menos acercarse a él.

No puedo entender de qué genética está hablando. No hay genética en ELM. Basta con mirar la teoría del ELM o la descripción del paquete elmNN:

"El algoritmo ELM es un método de entrenamiento alternativo para SLFN ( Single Hidden Layer Feedforward Networks ) que no necesita ningún ajuste iterativo ni establecer parámetros como la tasa de aprendizaje, el impulso, etc., que son problemas actuales de los algoritmos de aprendizaje tradicionales basados en el gradiente ( como la retropropagación ).

El entrenamiento de un SLFN con ELM es un modelo de aprendizaje de tres pasos:

Dado un conjunto de entrenamiento P = {(xi , ti )|xi E R , ti E R , i = 1,..., N}, la función de salida del nodo oculto G(a, b, x), y el número de nodos ocultos L

1) Asignar aleatoriamente los parámetros de los nodos ocultos (ai , bi ), i = 1,..., L. Significa que los pesos del arco entre la capa de entrada y la capa oculta y la capa oculta se generan aleatoriamente.

2) Calcular la matriz de salida de la capa oculta H utilizando una de las funciones de activación disponibles.

3) Calcular los pesos de salida B: B = ginv(H) %*% T ( multiplicación matricial ), donde T es la salida objetivo del conjunto de entrenamiento.

ginv(H) es la inversa generalizada de Moore-Penrose de la matriz de salida de la capa oculta H. Se calcula mediante la función ginv del paquete MASS.

Una vez entrenado el SLFN, la salida de un conjunto de pruebas genérico es simplemente Y = H %*% B ( multiplicación de matrices ). Características destacadas:

- La velocidad de aprendizaje de ELM es extremadamente rápida.

- A diferencia de los algoritmos tradicionales de aprendizaje basados en el gradiente, que sólo funcionan para funciones de activación diferenciables, el ELM funciona para todas las funciones de activación continuas no constantes y acotadas.

- A diferencia de los algoritmos tradicionales de aprendizaje basados en el gradiente que se enfrentan a varios problemas como los mínimos locales, la tasa de aprendizaje inadecuada y el sobreajuste, etc., el ELM tiende a alcanzar las soluciones directamente sin estos problemas triviales.

- El algoritmo de aprendizaje ELM parece mucho más sencillo que otros algoritmos de aprendizaje populares: las redes neuronales y las máquinas de vectores de apoyo".

Incluso con un número reducido de neuronas, es imposible obtener dos redes neuronales idénticas. Está definiendo incorrectamente el umbral para transferir la salida continua a una clase. El umbral = 0,5 es el peor caso. Aceptable = mediana/ Pero hay otras más avanzadas.

Buena suerte

 
Maxim Dmitrievsky:

Oh, será algo para leer, había olvidado lo que es. O más bien, olvidó la diferencia entre GBM y XGboost... o no lo sabía

gbm puede potenciar cualquier modelo, xgb parece estar en los árboles

Sé que la potenciación es ligeramente mejor que el embolsamiento, a través del cual se construye el bosque. Pero no sé si se trata de una reconversión.


El reinicio no tiene NADA que ver con el tipo de modelo.

Un modelo se reentrena en dos casos:

  • la presencia de predictores con ruido es un problema importante y se resuelve SÓLO con el ajuste de los predictores
  • Sobreajuste del modelo: "optimización" de sus parámetros, generalmente sobre una muestra pequeña. Este tipo de sobreajuste se resuelve con la experiencia de los desarrolladores.

 
SanSanych Fomenko:

SanSanych, deja de ponerte histérico

 
Vladimir Perervenko:

No puedo entender de qué genética está hablando. No hay genética en ELM. Basta con mirar la teoría de ELM o la descripción del paquete elmNN:

"El algoritmo ELM es un método de entrenamiento alternativo para SLFN ( Single Hidden Layer Feedforward Networks ) que no necesita ningún ajuste iterativo ni establecer parámetros como la tasa de aprendizaje, el impulso, etc., que son problemas actuales de los algoritmos de aprendizaje tradicionales basados en el gradiente ( como la retropropagación ).

El entrenamiento de un SLFN con ELM es un modelo de aprendizaje de tres pasos:

Dado un conjunto de entrenamiento P = {(xi , ti )|xi E R , ti E R , i = 1,..., N}, la función de salida del nodo oculto G(a, b, x), y el número de nodos ocultos L

1) Asignar aleatoriamente los parámetros de los nodos ocultos (ai , bi ), i = 1,..., L. Significa que los pesos del arco entre la capa de entrada y la capa oculta y la capa oculta se generan aleatoriamente.

2) Calcular la matriz de salida de la capa oculta H utilizando una de las funciones de activación disponibles.

3) Calcular los pesos de salida B: B = ginv(H) %*% T ( multiplicación matricial ), donde T es la salida objetivo del conjunto de entrenamiento.

ginv(H) es la inversa generalizada de Moore-Penrose de la matriz de salida de la capa oculta H. Se calcula mediante la función ginv del paquete MASS.

Una vez entrenado el SLFN, la salida de un conjunto de pruebas genérico es simplemente Y = H %*% B ( multiplicación de matrices ). Características destacadas:

- La velocidad de aprendizaje de ELM es extremadamente rápida.

- A diferencia de los algoritmos tradicionales de aprendizaje basados en el gradiente, que sólo funcionan para funciones de activación diferenciables, el ELM funciona para todas las funciones de activación continuas no constantes y acotadas.

- A diferencia de los algoritmos tradicionales de aprendizaje basados en el gradiente que se enfrentan a varios problemas como los mínimos locales, la tasa de aprendizaje inadecuada y el sobreajuste, etc., el ELM tiende a alcanzar las soluciones directamente sin estos problemas triviales.

- El algoritmo de aprendizaje ELM parece mucho más sencillo que otros algoritmos de aprendizaje populares: las redes neuronales y las máquinas de vectores de apoyo".

Incluso con un número reducido de neuronas, es imposible obtener dos redes neuronales idénticas. Está definiendo incorrectamente el umbral para transferir la salida continua a una clase. El umbral = 0,5 es el peor caso. Aceptable = mediana/ Pero hay otras más avanzadas.

Buena suerte

En mi pequeño archivo de entrenamiento hay un 100% de coincidencia entre las sesiones de entrenamiento...

 

¿Durante qué periodo de tiempo se vuelcan los datos?

Tengo una brecha de 2 años y una diferencia de datos de 15 segundos. Predictores: 30 naturales y más de 1000 generados en formato "(doble)(val1 < val2)".

Al principio también pensé que había que reducir el número de predictores, pero la práctica demostró que más es mejor.

Por supuesto, 1000 predictores en 2 años dan un volumen de unos 3GB. Utilizar R para esos volúmenes no es serio.

Python le ganó a R en la minería de datos, porque existen Cython y Jython, que se conectan a proyectos como TensorFlow, Spark, MXNet...

 
Dr. Trader:

La genética intenta encontrar los parámetros correctos para un número limitado de llamadas a funciones. Al reducir el número de variantes de este parámetro (30 en lugar de 200), el genetista puede investigar la región de 1 a 30 con más detalle. Y con razón, si se conocen los límites específicos para encontrar algún parámetro del modelo, es mejor dar esta información al genetista directamente.


Alternativamente:

Añade esta línea (la verde) al código, entonces el genetista tendrá 500 individuos en la población en lugar de los 50 por defecto. Y podrá probar 10 veces más modelos (pero el tiempo de ejecución del script también aumentará 10 veces), pudiendo probar tantas combinaciones de parámetros de modelos como sea posible. Incluso con un número máximo de neuronas de 200 creo que la genética podrá encontrar un mejor resultado con 0,85 también, o al menos acercarse a él.

¡¡¡¡Gracias!!!! Ha mejorado mucho. Bueno, vamos a ver cómo va... Lo principal es ganar de forma constante...

 
Vladimir Perervenko:

No puedo entender de qué genética estás hablando.

Está en el guión R que le mostré a Mikhail hace cien páginas. El algoritmo genético pasa por los parámetros para elmnn (función de activación, grano gpsh, número de neuronas ocultas). La función de aptitud para la genética entrena a un comité de modelos elmnn utilizando estos parámetros, evaluados mediante kfold, etc.

Yo mismo escribí este script, cuando me inspiré en su artículo sobre elmnn y la optimización bayesiana. Pero he implementado la genética en lugar de los baes, funciona mucho más rápido de esta manera, y la estimación del comité está hecha a mi gusto.

 
SanSanych Fomenko:

El modelo se reentrena en dos casos:

  • la presencia de predictores con ruido es un problema importante y se resuelve SOLO con la selección de predictores

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

En la práctica es así, es decir, si hay predictores de ruido, NS no puede salir del 50-55%. Si lo coges, 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 tamizarlos...

 
Dr. Trader:

Está en el guión de R, que le mostré a Michael hace unas cien páginas. El algoritmo genético prueba los parámetros para elmnn (función de activación, grano gpsh, número de neuronas ocultas). En la función de aptitud para la genética se entrena un comité de modelos elmnn utilizando estos parámetros, estimados mediante kfold, etc.

Cópialo en tu blog, quizá alguien lo necesite. No es realista buscar algo aquí.
 
elibrarius:

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

En la práctica es así, es decir, si hay predictores de ruido entonces NS no puede salir del 50-55%. Si lo coges, 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 tamizarlos...

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, por el contrario, aumenta el error, ¿no?

Razón de la queja: