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

 

Podrías ir por el camino de tirar las mismas entradas. Para cada columna de cada uno, calcular la desviación media. De esta manera se pueden encontrar las dos columnas más parecidas, una de las cuales puede ser descartada. La desviación media de todas las columnas, etc.

 
Dr. Trader:

Visualmente, todos los pesos se dividen en dos grupos. Si quieres dividirlos según su importancia/no importancia, entonces 5,11,7,1,3,9 destacan claramente, este conjunto creo que es suficiente.

Esta es la solución correcta.

No sabía que la NS pudiera hacer eso. Es una revelación para mí.

Resulta que la NS puede simular interacciones.

Te debo un premio. Gracias.

 

Es cierto que las NS no dan una idea del tipo de patrón. Es decir, la interpretabilidad del modelo está en entredicho.

Más adelante publicaré la lógica para crear el conjunto de datos y hablaré del tipo de dependencia.

 
Dr.Trader:

Visualmente, todos los pesos se dividen en dos grupos. Si quieres dividirlos según la importancia/no importancia, 5,11,7,1,3,9 destacan claramente, este conjunto es suficiente creo.

Si le interesa, intente eliminar cualquier predictor significativo del conjunto de datos y vuelva a entrenar el NS y obtenga la imagen con los pesos. Creo que habrá una sorpresa.

Esto ya está fuera de la asignación. Para hacer crecer el tema.

 
Alexey Burnakov:

Si le interesa, pruebe a eliminar cualquier predictor significativo del conjunto de datos y vuelva a entrenar el NS y muestre una imagen de los pesos. Creo que habrá una sorpresa.

Esto ya está descartado. Para hacer crecer el tema.

La estufa es una parte muy importante del interior en el sentido de que siempre se debe bailar de no hacerlo.

Dr.Trader

Tu ejemplo con NS sólo dice que a NS le gustaban más los predictores que has mencionado y no le gustaban otros. Los algoritmos que hacen este tipo de cosas están a la orden del día.

Todo esto estaría bien si dicha selección se hace entre predictores que sean relevantes, que tengan poder predictivo, capacidad de predicción para la variable objetivo.

En mi práctica, siempre hay predictores entre un conjunto arbitrario de predictores que no tienen ninguna (o muy débil) relación con la variable objetivo. Por lo tanto, el escollo es que, dado un cierto número de tales predictores de ruido o una selección aleatoria de sus valores, la mayoría de los algoritmos, incluyendo NS, no logran distinguir los predictores informativos entre los predictores de ruido.

Por lo tanto, se define el "stove-piping" como una acción que, en primer lugar, despeja el conjunto inicial de predictores...

PS.

No he trabajado con NS, pero los bosques aleatorios, con una cierta cantidad de predictores de ruido, tienden a descartar los predictores informativos según su algoritmo incorporado. Por ello, en caso de ruido, ofrecen un rendimiento extraordinario con un error inferior al 5%.

SARP

La presencia de predictores de ruido conduce necesariamente a un reentrenamiento del modelo con todo lo que ello implica para el mundo real

 
SanSanych Fomenko:

La estufa es una parte muy importante del interior en el sentido de que siempre hay que bailar alrededor de ella.

Dr.Trader

Tu ejemplo con NS sólo dice que a NS le gustaban más los predictores que has mencionado y no le gustaban otros. Los algoritmos que hacen este tipo de cosas están a la orden del día.

Todo esto estaría bien si dicha selección se realiza entre predictores que sean relevantes, que tengan poder predictivo, capacidad de predicción para la variable objetivo.

En mi práctica, siempre hay predictores entre un conjunto arbitrario de predictores que no tienen ninguna (o muy débil) relación con la variable objetivo. Por lo tanto, el escollo es que, dado un cierto número de tales predictores de ruido o una selección aleatoria de sus valores, la mayoría de los algoritmos, incluyendo NS, no logran distinguir los predictores informativos entre los predictores de ruido.

Por lo tanto, se define el "stove-piping" como una acción que, en primer lugar, despeja el conjunto inicial de predictores...

PS.

No he trabajado con NS, pero los bosques aleatorios, con una cierta cantidad de predictores de ruido, tienden a descartar los predictores informativos según su algoritmo incorporado. Por ello, en caso de ruido, ofrecen un rendimiento extraordinario con un error inferior al 5%.

SARP

La presencia de predictores de ruido conduce necesariamente a un reentrenamiento del modelo con todo lo que ello implica para el real

NS lo hizo muy bien.

Random Forest no podría encargarse de esa tarea con la interacción de un conjunto de variables. Y la significación individual de cada predictor era intencionadamente cero.

 

Me alegro de que haya funcionado :) Gracias por el premio.

He probado a quitar una entrada (4 casos) - si quito la entrada_5 o la entrada_9 no funciona nada más, la neurona con la misma configuración no aprende ni siquiera a un error inferior al 50%, empieza a dar sólo 0 o 1 en un caso mayor.

Si elimino input_20 entonces todo está bien, el resultado es correcto. Pero lo curioso es que si quito la entrada_15, la neurona ni siquiera entrena correctamente, los problemas son los mismos que cuando quito la entrada_5 o la entrada_9. No lo he probado más.

Adjunto archivo con el código R para el entrenamiento de la neurona, por si te interesa. Es básicamente un código ligeramente modificado del registro de Rattle.

Archivos adjuntos:
r_nnet.zip  3 kb
 
Dr.Trader:

Me alegro de que haya funcionado :) Gracias por el premio.

He probado a quitar una entrada (4 casos) - si quito la entrada_5 o la entrada_9 no funciona nada más, la neurona con la misma configuración no aprende ni siquiera a un error inferior al 50%, empieza a dar sólo 0 o 1 en un caso mayor.

Si elimino input_20 entonces todo está bien, el resultado es correcto. Pero lo curioso es que si quito la entrada_15, la neurona ni siquiera entrena correctamente, los problemas son los mismos que cuando quito la entrada_5 o la entrada_9. No lo he probado más.

Adjunto archivo con el código R para el entrenamiento de la neurona, por si te interesa. Es básicamente un código ligeramente modificado del registro de Rattle.

Envíame un mensaje con tu número de tarjeta o de monedero electrónico
 

Bueno, en general el proceso es claro, la neurona simplemente trata de encajar los datos disponibles en alguna lógica, y si algunas de las entradas no aportan información nueva, minimiza su impacto para que no perjudiquen. Es poco probable encontrar interrelaciones complejas de entradas, estoy de acuerdo.

Además, el paquete nnet en R no es exactamente una red neuronal convencional. Según la descripción, debería utilizar el aprendizaje de segundo orden. Normalmente en las neuronas los pesos cambian según las derivadas, pero aquí cambian según las derivadas de las derivadas. Y durante el entrenamiento se construye una especie de matriz "hessiana" que almacena datos importantes sobre todos los pesos de todos los ejemplos de entrenamiento a la vez. Dicen que es muy chulo, este paquete debe ser fuerte.https://ru.wikipedia.org/wiki/Алгоритм_Бройдена_-_Флетчера_-_Гольдфарба_-_Шанно - No lo he entendido, pero eso si alguien es matemático entonces que lo resuelva.

Алгоритм Бройдена — Флетчера — Гольдфарба — Шанно — Википедия
  • ru.wikipedia.org
Алгоритм Бройдена — Флетчера — Гольдфарба — Шанно (BFGS) (англ. Broyden — Fletcher — Goldfarb — Shanno algorithm) — итерационный метод численной оптимизации, предназначенный для нахождения локального максимума/минимума нелинейного функционала без ограничений. BFGS — один из наиболее широко применяемых квазиньютоновских методов. В...
 
Sobre los resultados extraños:
Si se elimina cualquier predictor significativo, nada funcionará. Esta es la interacción.

Cada uno de los predictores no dice nada sobre el estado de la producción. Así que los algoritmos que tienen en cuenta la importancia individual no funcionarán. También los árboles de decisión y los bosques aleatorios no funcionarán casi con toda seguridad, ya que también examinan los predictores individualmente. Pero un enorme bosque de decenas de miles de árboles puede fusionar accidentalmente predictores significativos en una rama y que todo funcione. Pero es poco probable.

¿Por qué no?

La interacción es la información que fluye de muchos predictores juntos a la salida. El algoritmo de dependencia es tal que la suma de los predictores significativos puede ser 50/50 par o impar. Si es par, el resultado es 1. En caso contrario, es 0. Por eso, eliminar al menos uno de los predictores significativos rompe la dependencia. Y la adición de predictores adicionales puede hacer que haya ruido y que la prueba estadística no muestre significación.

Me sorprende mucho que la NS convencional haya sido capaz de detectar esa relación. Ahora empiezo a creer en la capacidad de MLP para detectar entradas significativas. Sí.

En definitiva, has dado en el clavo. Si se intenta entrenar un bosque aleatorio, es casi seguro que no funcionará.

También estoy bastante seguro de que la regresión logística fallará.

En resumen, se necesita una enumeración estocástica de diferentes subconjuntos de predictores con la función de aptitud adecuada para este problema. O NS )))

Publicaré mi método más tarde.

Quizás alguien más pruebe otra forma de seleccionar los predictores y entonces podremos comparar los resultados.