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

 
elibrarius:

Yo he entendido este método de otra manera.
Para el predictor en estudio, no se desea alimentar valores aleatorios con una distribución normal, sino simplemente barajar las filas de esa columna.

De todos modos, los resultados del artículo son impresionantes. Es necesario probarlo en la práctica.

mezclarlo, ¿qué diferencia hay?

 
elibrarius:
Alglib revisa todos los predictores restantes del 50%, divide cada uno en 4 partes por cuartiles y elige la división con el mejor error de todas las opciones.

En principio, no es difícil conseguir divisiones aleatorias.
No he visto árboles individuales con buenos resultados en las pruebas (45-50%), pero un bosque de ellos es más interesante).


Ya veo, eso es lo que pensaba, así que es muy probable que la división de las raíces en la mayoría de los árboles sea la misma, lo que en sí descarta otras opciones.

Supongo que cualquier hoja es sólo un intento de describir un patrón, y no podemos saber de antemano si la descripción será correcta o si se trata de una coincidencia aleatoria en la muestra. Por eso estoy reclutando hojas diferentes y únicas (que no se repiten) y comprobándolas individualmente, en lugar de todo el árbol.

Alglib tiene una ramificación excesiva, por lo que no es aprender, sino recordar. Creo que el andamiaje es una buena idea, pero funcionará correctamente si cada árbol contiene reglas únicas (hojas) y el número de divisiones no es muy grande - 4-10.


elibrarius:
En cuanto a la importancia de los predictores examinados:
Los paquetes xgboost, lightGBM tenían métodos incorporados para estimar la importancia de las características para los "modelos de madera":

  1. Ganar
    Esta medida muestra la contribución relativa de cada característica al modelo. Para calcularla, vamos a cada nodo del árbol, miramos qué característica lleva a la división del nodo y cuánto se reduce la incertidumbre del modelo según la métrica (impureza de Gini, ganancia de información).
    Para cada característica, su contribución se suma en todos los árboles.
  2. Portada
    Muestra el número de observaciones de cada característica. Por ejemplo, tienes 4 características, 3 árboles. Supongamos que la ficha 1 tiene 10, 5 y 2 observaciones en los nodos del árbol 1, 2 y 3 respectivamente. Entonces la importancia para esta ficha sería 17 (10 + 5 + 2).
  3. Frecuencia
    Muestra la frecuencia con la que se encuentra una determinada característica en los nodos del árbol, es decir, se cuenta el número total de nodos del árbol divididos para cada característica en cada árbol.
Realmente no dividen la importancia correctamente.
Tengo un bosque entrenado para 5 bares da mejores resultados en la prueba que a 100. Pero cuando se entrena por 100 los primeros 5 no se marcan como importantes, sino algunos lejanos.
Cuando se entrena a 100, el error de los árboles y bosques individuales es menor, obviamente debido al sobreentrenamiento y a la importancia que se da a las barras de 30 a 100. Pero obviamente no son importantes por la lógica convencional, sino por el hecho de que el bosque a 5 bares da mejores resultados.

Sí, con la estimación de la importancia los enfoques estándar no son muy eficaces. Quiero probar algún tipo de puntuación de unicidad, es decir, cuando ya hay hojas listas, y tratamos de cambiar cada predictor a su vez a cualquier otro (teniendo en cuenta la división de la cuadrícula), recoger las estadísticas, y comparar la mejor variante de reemplazo con la variante por defecto, considerar la precisión u otra puntuación (el concepto es importante), y así recoger las puntuaciones de cada predictor para todo el modelo.

elibrarius:
Después de una mirada superficial al código, vi una selección genética de características para construir un árbol del paquete rpart. Es decir, a cada árbol se le ofreció un conjunto diferente de características para el aprendizaje. Debido a la genética, este conjunto de características es más rápido que la fuerza bruta completa.
Pero el árbol no es mágico, es el que ofrece rpart. Creo que es lo normal allí.

El árbol en sí es completamente estándar, la idea original del guión es encontrar los predictores más significativos, y la genética parece contribuir a ello.

No entiendo cómo se puede cambiar la entropía por cualquier otro indicador (precisión o integridad o lo que sea) para crear una nueva generación.

 

Estaba viendo una conferencia sobre ME no hace mucho tiempo, y había una situación en la que un modelo opera dentro de un estrecho rango de probabilidad, y para los modelos de refuerzo esto se considera casi la norma, ya que el modelo no está esencialmente produciendo una probabilidad pura, y debido a esto hay un concepto de calibración de dicho modelo para las interpretaciones correctas de las predicciones. Y justamente tuve una situación así el año pasado, cuando los modelos daban sus resultados en el rango de 40 a 60, y me aseguraron que era un caso muy malo... Tenía mis dudas porque los modelos eran estables y daban buenos resultados financieros.

 
Aleksey Vyazmikin:

Estuve viendo una conferencia sobre ME no hace mucho tiempo, y había una situación en la que un modelo opera dentro de un estrecho rango de probabilidad, pero para los modelos de refuerzo esto se considera casi la norma, ya que el modelo no es esencialmente la salida de la probabilidad pura, y en relación con este hecho hay un concepto de calibración de dicho modelo para las predicciones correctas. Y justamente tuve una situación así el año pasado, cuando los modelos daban sus resultados en el rango de 40 a 60 y me aseguraron que era una variante muy mala... Tenía mis dudas, porque los modelos eran estables y daban buenos resultados financieros.

Alexei, digamos que la tasa de error es del 99%, ¿es eso bueno o malo?

Entiendo que el 1% restante es la probabilidad de éxito.

No mucho, pero está bien, porque ya sabemos dónde está el error y cómo evitarlo.

Dicho esto, la proporción es de 99k1
 
Renat Akhtyamov:

Alexei, digamos que la probabilidad de error es del 99%, ¿es eso bueno o malo?

Supongo que el 1% restante es la probabilidad de éxito.

Es pequeño, pero genial, porque ya sabemos dónde está el error y cómo evitarlo.

Una probabilidad de error tan alta nos indica que no sabemos mucho sobre lo que está pasando.

Es lo suficientemente preciso y eso es bueno, pero está muy lejos del éxito: el 1% podría ser sólo una casualidad.

Y eso si hablamos específicamente de probabilidad.

 
Aleksey Vyazmikin:

Ya veo, eso es lo que pensaba, así que hay muchas posibilidades de que la división de las raíces en la mayoría de los árboles sea la misma, lo que en sí descarta las otras opciones.

Alrededor del 50%. Pero este parámetro puede ser cambiado, en cualquier momento deseado en otra llamada forestal fiion.

Aleksey Vyazmikin:
Quiero intentar como evaluación de algún tipo de indicador de unicidad, es decir, cuando ya hay hojas listas y tratamos de cambiar cada predictor uno por uno a cualquier otro (teniendo en cuenta la división de la cuadrícula), recoger las estadísticas, y comparar la mejor variante de reemplazo con la variante por defecto, considerar la precisión u otro indicador (el concepto es importante), y por lo tanto recogemos puntos para cada predictor para todo el modelo.

Algo similar a la permutación que encontró Maxim. ¿Pero tiene sentido sustituir un predictor con variación de 0,1 a 0,2 por una variación de 800 a 300000 en lugar de un predictor con variación de 0,1 a 0,2? ¡No!
Pero barajar sus líneas sí. El rango de números y la distribución de probabilidades se mantendrán, pero los valores de cada ejemplo pasarán a ser aleatorios.

Aleksey Vyazmikin:

Lo que no entiendo es cómo se puede cambiar la entropía por algún otro valor (precisión o integridad o lo que sea) para crear una nueva generación.

Algunos paquetes de R permiten utilizar su función de error. Xgboost puede, pero ahí tienes que encontrar una fórmula para la derivada de tu f-fi y alimentarla junto con ella. Para mí, la derivación es un problema. Mira la descripción del paquete rpart, tal vez puedas usar tus funciones allí también, o incluso sin derivar.

 
elibrarius:

Algo parecido con la permutación que encontró Maxim. Pero, ¿tiene algún sentido sustituir un predictor con un cambio de 0,1 a 0,2 por un predictor con un cambio de 800 a 300000? ¡No!
Pero barajar sus filas sí. El rango de números y la distribución de probabilidades se mantendrán, pero los valores de cada ejemplo pasarán a ser aleatorios.

Escribí,"digamosn. propagación". Encuentra la media y la varianza y sigue adelante. Es mejor aleatorizar por medio de ruidos que simplemente barajar.

Aquí hay un montón de tontos a los que les gusta tergiversar las palabras y hacer capturas de pantalla, tratando de probarse a sí mismos después

 
Maxim Dmitrievsky:

Escribí:"supongamosuna distribución n.". Naturalmente tiene sentido con los rasgos normalizados. Encuentra la media y la varianza y sigue adelante.

Aquí hay muchos tontos a los que les gusta tergiversar las palabras y hacer pantallazos, intentando hacerse valer con ello después
La normalización ayudará con el rango - así es.
Pero la distribución de probabilidad de una distribución normal estará en el centro (alrededor de 0,5), mientras que el predictor real puede estar desplazado hacia los lados, por ejemplo, alrededor de 0,8. O algún tipo de silla de montar alrededor de 0,2 y 0,8, o algo más...
Si se remueve, también se conservará la distribución.
 
elibrarius:
La normalización ayudará con el rango - eso es un sí.
Pero la distribución de probabilidad de una distribución normal estará en el medio (alrededor de 0,5), y el predictor real puede estar desplazado hacia los lados, por ejemplo, alrededor de 0,8. O algún tipo de silla de montar alrededor de 0,2 y 0,8, o algo más...
Si se remueve, también se conservará la distribución.

Toma la media y la varianza, lol, y no te preocupes.

 
Maxim Dmitrievsky:

Toma la media y la varianza, lol, y no te preocupes.

es más fácil de mezclar)

Y por el enlace al interesante método (permutación) - ¡gracias!