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

 

Uladzimir vuelve a intentar con su mente infantilmente inquisitiva comprender significados que le vienen grandes y desacreditar a los participantes en este hilo, es decir, esos significados:

Reconstrucción de ecuaciones:" cajanegra".

" Cajanegra " es a la vez laformulaciónmás difícily lamás " seductora"de un problema de modelización, enel queno hayinformación a priori sobre el objetoy, por tanto, sobre la estructura del modelo. Elintríngulis reside en elhecho de que unmodelocapaz de reproducir el comportamiento observado o de dar una previsión de la evolución ulteriordebe obtenerse únicamente a partir de la serie observada,esdecir,prácticamente"de la nada".Lasposibilidades de éxito son escasas,pero en caso de suerte, un"buen" modelose convierte en una herramienta muy valiosa para caracterizar el objeto y comprender los"mecanismos" desu funcionamiento: "casi un farol puede conducir a una gran victoria".Laausencia de información a priori obliga a utilizar estructuras universales de ecuaciones de modelos, porejemplo, redes neuronales artificiales, funciones debase radial,polinomios algebraicos, etc.Tales modelos suelen resultar multidimensionales y contener muchos parámetros desconocidos.


ZY y hace más de un año escribió que él mismo utiliza redes neuronales y que todos sus TSs se basan en ellas... menudo payaso ese abzdez

#870

#1826

Nuestro querido Uladzimir ha aprendido redes neuronales muy rápido, en 2 meses, resulta.

Ojalá lo hubiera hecho, pero 2 años antes ya recibía señales de las NS.

#5758

Así que el tipo está diciendo tonterías en un estupor borracho y mintiendo, mintiendo, mintiendo.... y solo se desacredita a si mismo y a sus locos indicadores.

 

Resulta ser una prueba bastante buena del modelo a través del sesgo de ventana. Si da muchos rezagos, en lugar de cero, con mejores estadísticas (como mi), entonces el modelo se basa en la aleatorización.

De lo contrario sería inequívoco, no puede haber tantos TS rentables a la vez.

Traté de seleccionar a través de std de acuerdo con las instrucciones de Sanych - aproximadamente la misma imagen. Pero seleccioné conjuntos de rasgos, no cada uno por separado.

Voy a mirar a los rasgos por separado de nuevo

 
>>> results = []
>>> for i in range(25):
...     pr = get_prices()
...     pr = labeling_shift(pr,shift=i)
...     mi = mutual_info_classif(pr[pr.columns[1:-1]], pr[pr.columns[-1]])
...     results.append([mi.mean(), mi.std(), mi, i])
...     print(i)
... 
results.sort()
results[-1]    
pd.DataFrame(results)

La mejor puntuación es lag 9, pero std es mejor en 0:

15  0.002473  0.002008  [0.0, 0.0, 0.0, 7.738132773948969 e-05, 0.00428...   0
16  0.002482  0.002536  [0.0027194272625081783, 0.004082692968791601, ...   4
17  0.002544  0.002137  [0.00016451381901605444, 0.003159073557252867,...   2
18  0.002678  0.002174  [0.0, 0.0015686230398428425, 0.000974887322880...   8
19  0.002749  0.001978  [0.0, 0.001425018820565338, 0.0, 0.0, 0.002788...   1
20  0.002793  0.002378  [0.00535509344523355, 0.0, 0.00400320235670181...  12
21  0.002897  0.002330  [0.00406257691063705, 0.001421806087245736, 0....  13
22  0.003113  0.002501  [0.0, 0.0, 0.004822852461999094, 3.66068989796...  10
23  0.003195  0.002560  [0.0024128008240758003, 0.0, 0.001845732619932...  11
24  0.003255  0.002406  [0.0, 0.0, 0.0034648745240082324, 0.0063568287...   9

Okabe mira backtests de ambos, 9:

0-я:

El 0 tiene, lógicamente, una menor dispersión de valores en el backtest, porque la std para mi es inicialmente menor. Pero no afecta a los resultados en OOS, como tampoco lo hace el mayor valor de mi (Información mutua)

Bien, digamos que estamos reentrenando un gran número de características (14 características aquí).

MA_PERIODS = [i for i in range(10, 150, 10)]

Veamos las estadísticas de cada característica y elijamos sólo las mejores para el modelo con 9 retardos:

>>> results[24]
[0.003255328338368026, 0.002405621052220332, array([0.        , 0.        , 0.00346487, 0.00635683, 0.00490859,
       0.        , 0.00305732, 0.00268664, 0.00877952, 0.00305562,
       0.00138638, 0.00320064, 0.00415751, 0.00452067]), 9]
>>> 

Algunas características se anulan por completo, es decir, no tienen valor. Elijamos sólo las que tengan un valor superior a 0,004 y entrenemos con ellas:

>>> per = results[24][2]
>>> np.array(per) > 0.004
array([False, False, False,  True,  True, False, False, False,  True,
       False, False, False,  True,  True])
>>> 

MA_PERIODS = [40, 50, 90, 130, 140] - отобранные фичи

Entrenamiento y prueba:

Mnde.

Conclusión: una mayor correlación de información en la muestra de entrenamiento no ayuda a mejorar el modelo en la muestra de prueba.

Pero puede servir para exprimir fracciones de % en los concursos, que es lo que dicen los profesionales, que la preselección de características para modelos modernos como Busting no da casi nada.

 
Maxim Dmitrievsky #:

Resulta ser una prueba bastante buena del modelo a través del sesgo de ventana. Si produce una gran cantidad de rezagos, en lugar de cero, con mejores estadísticas (como mi), entonces el modelo se basa en la aleatoriedad

de lo contrario sería inequívoco, no puede haber tantos TCs rentables a la vez.

Traté de seleccionar a través de std de acuerdo con las instrucciones de Sanych - aproximadamente la misma imagen. Pero seleccioné conjuntos de signos, no cada uno por separado.

Voy a mirar los rasgos por separado de nuevo

¿Std de la estimación numérica de la correlación entre un rasgo y un rasgo objetivo?

Primero hay que eliminar los correlacionados. Por alguna razón, la correlación óptima en mis rasgos es del 75%.

A continuación, seleccione 5-10 rasgos con la máxima puntuación.

Haz dibujos, como arriba en mi post, para asegurarte de que la correlación divide las notas.

El error de predicción debe ser inferior al 30%. Si no lo es, habrá que descartar los rasgos.

 
СанСаныч Фоменко #:

std ¿una estimación numérica de la relación de un rasgo con un objetivo?

Primero hay que eliminar los que están correlacionados. En mis rasgos, por alguna razón, la correlación óptima es del 75%.

A continuación, seleccione 5-10 atributos con la máxima puntuación.

Haga dibujos, como arriba en mi post, para asegurarse de que la correlación se divide por clases.

El error de predicción debe ser inferior al 30%. Si no lo es, habrá que descartar las características.

La entropía muestra que la correlación es insignificante (0,003), pero debería tender a 1.

Pero he estimado la diferencia, así que no importa. Todavía debería haber una pequeña mejora. Quizá no la haya porque la diferencia es mínima.

En general, incluso si todo es bueno (hay buenos en el conjunto), no es necesario eliminar las otras características

Es así, un tocho para otras cosas como una ventana no estándar
 
Maxim Dmitrievsky #:

se desprende de la entropía que la correlación es despreciable (0,003), pero debería tender a 1.

pero he estimado la diferencia, así que no importa. Todavía debería haber una pequeña mejora. Quizá no la haya porque la diferencia es mínima.

en general, incluso si todo es bueno (hay buenos en el conjunto), el resto de los chips no necesitan ser removidos

La puntuación en sí es algo relativo.

Repetiré las imágenes.

Mal, sin remedio%.


Mejor, si hay varias, podemos hablar de un 30% de error de predicción.



Y hay que eliminar la basura, porque en el conjunto de entrenamiento la ficha puede estar a favor de la basura, es más fácil encontrar el valor que lleva al óptimo.

 
Maxim Dmitrievsky #:

La preselección de características para los modelos modernos de tipo Busting no aporta casi nada.

Busting busca las mejores divisiones de todas las columnas y todos los ejemplos. Es decir, utiliza las mejores fichas.
Schuch. forest toma la mitad de las fichas y la mitad de los ejemplos (la fracción es configurable) para cada árbol y luego, de 20 a 100 árboles, encuentra la media. Si sólo hay 5 fichas informativas de 200 fichas, entonces algunos de los árboles no contendrán fichas informativas (una media de 2,5 fichas informativas por árbol). Y promediaremos una parte de árboles informativos con árboles de ruido. El resultado también será muy ruidoso.
Un árbol de ruido funcionará bien si hay muchas fichas informativas (como en los ejemplos clásicos/tareas MO).

Busting encontrará y utilizará las fichas más informativas, ya que las comprueba todas. Por tanto, según la lógica del bousting, seleccionará las mejores fichas por sí mismo. Pero el bousting también tiene sus propios problemas.

 
elibrarius #:

Busting encontrará y utilizará las fichas más informativas, porque las comprueba todas. Así que, según la lógica del bousting, seleccionará las mejores fichas. Pero el bousting también tiene sus propios problemas.

He creado un tema con una muestra que demuestra lo contrario - el bousting no es omnipotente, especialmente fuera de la caja.

 
elibrarius #:

Busting busca las mejores divisiones de todas las columnas y todos los ejemplos. Es decir, utiliza las mejores fichas.
Schuch. forest toma la mitad de las fichas y la mitad de los ejemplos (la proporción es configurable) para cada árbol y luego, de 20 a 100 árboles, encuentra la media. Si sólo hay 5 fichas informativas de 200 fichas, entonces algunos de los árboles no incluirán fichas informativas (una media de 2,5 fichas informativas por árbol). Y promediaremos una parte de árboles informativos con árboles de ruido. El resultado también será muy ruidoso.
Un bosque esporádico funciona bien si hay muchas fichas informativas (como en los ejemplos clásicos/problemas de MO).

Busting encontrará y utilizará las fichas más informativas, ya que las comprueba todas. Así que por la lógica del bousting, seleccionará las mejores fichas por sí mismo. Pero el bousting también tiene sus propios problemas.

No puedo estar de acuerdo contigo sobre bousting.

El bousting encontrará características que tengan una fuerte correlación (poder predictivo), créelo. Todo está bien si la magnitud de la correlación es constante. Renunciando a la estimación del propio rasgo, en el bousting no podemos seguir la variabilidad de la magnitud de la asociación, y según mis datos la SD de la estimación de la asociación puede variar del 10% al 120 (en mis rasgos). ¿Qué nos aportará el bousting? Al fin y al cabo, necesitamos muestrear los rasgos que tienen más variabilidad.

 
СанСаныч Фоменко #:

La valoración en sí es algo relativo.

Repetiré las imágenes.

Es malo, es desesperante.


Mejor, si son varios, podemos hablar de un 30% de error de predicción.


Y hay que eliminar la basura, porque en el conjunto de entrenamiento la ficha puede estar a favor de la basura, es más fácil encontrar el valor que lleva al óptimo.

cuanta más información mutua en la partición de clases, menos se solapan las distribuciones, lo cual es lógico

Las distribuciones seguirán flotando sobre nuevos datos.

Yo no confiaría mucho en tal manipulación, sólo es una idea para probar.