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

 

La conferencia sobre boosting - había una más reciente (en python con catbust como opción) con el mismo conferenciante - no la encuentro


 
Aleksey Vyazmikin:

Catbust tiene más personalización y es una extensión de la idea de XGBoost, la principal ventaja y desventaja es que tiene árboles de dimensión fija que evitan el reentrenamiento si el número de árboles no es grande.

....

Es una cuestión puramente técnica. Supongamos que tenemos 3 predictores - x1, x2, x3. También sabemos que x1-x2, x1-x3, x2-x3 son también predictores y generan condiciones. Por lo que sé de los árboles, estos predictores adicionales también deberían introducirse en el modelo.

Pero el caso es ligeramente peor, los predictores son unos a11*x1-b2*x2, a12*x1-a3*x2, etc, generando algo así como sistemas de ecuaciones. Los coeficientes no los conozco, por supuesto. También son posibles combinaciones más complejas de predictores, que se dan sólo como ejemplo.

NS puede manejar estas cosas (combinaciones lineales de predictores e incluso no lineales) y no tengo que ponerme sofisticado, así que sólo introduzco x1, x2 y x3 sin molestarme.

¿Qué hacer con los árboles en estos casos? No he podido encontrar nada muy vívido sobre este tema. ¿O los árboles lo harán por sí mismos?

 

CatBoost masterclass - hay enlaces para descargar el código por vídeo para trabajar en python


 
Yuriy Asaulenko:

Una cuestión puramente técnica. Supongamos que tenemos 3 predictores - x1, x2, x3. También sabemos que x1-x2, x1-x3, x2-x3 son también predictores. Por lo que sé de los árboles, estos predictores adicionales también deberían introducirse en el modelo.

Pero el caso es ligeramente peor, los predictores son unos a11*x1-b2*x2, a12*x1-a3*x2, etc. No conozco los coeficientes, por supuesto. Son posibles combinaciones más complejas de predictores, éstas se dan sólo como ejemplo.

NS hace frente a estas cosas (combinaciones lineales de predictores) y no tengo que ponerme a jugar, y alimentamos sólo x1, x2 y x3 a las entradas, sin molestarnos.

¿Qué hacer con los árboles en estos casos? No he podido encontrar nada muy vago sobre este tema. ¿O pueden hacerlo los árboles por sí mismos?

Teóricamente, un árbol puede describir una función, pero obtendrá una sección con coeficientes (x) que, si se cambian, pero la función en sí no será tan efectiva, porque almacena el campo de eventos con constantes. Estos son mis pensamientos, tal vez me equivoque. Para este tipo de problemas, es mejor utilizar NS y dar al árbol alguna respuesta preparada de la función, que no cambiará la lógica de la interpretación dependiendo del cambio de argumentos de la función. Por lo tanto, es preferible dar al árbol un conjunto limitado de argumentos.

El mero hecho de cambiar estas x hará que sea necesario volver a entrenar el modelo.

En general, si los argumentos de la función están en un rango conocido, que está representado por la muestra de entrenamiento, entonces el árbol debería hacer el trabajo. Pero esta es una tarea de regresión, no de clasificación.
 
Aleksey Vyazmikin:

Teóricamente, el árbol puede describir una función, pero resultará ser una trama con coeficientes (x), que, si se cambia, pero se conserva la función en sí, ya no será tan eficaz, porque recuerda el campo de eventos con constantes. Estos son mis pensamientos, tal vez me equivoque. Para este tipo de problemas, es mejor utilizar NS y dar al árbol alguna respuesta preparada de la función, que no cambiará la lógica de la interpretación dependiendo del cambio de argumentos de la función. Por lo tanto, es preferible dar al árbol un conjunto limitado de argumentos.

Un simple cambio en estas x hará que sea necesario volver a entrenar el modelo.

Con NS trabajo, son comprensibles. Lo bueno de los árboles es que generan lógica como si...entonces.... que, en general, es lo que se necesita: la salida debe ser una decisión de sí/no. Pero parece que los árboles no pueden manejar ni siquiera este tipo de lógica, incluso si les damos todo esto como entrada.

Сs11=PredTraid==[] and Stoch[0][i] > Stoch[1][i]+0.3 and Stoch[0][i-1] <= Stoch[1][i-1]
 
Yuriy Asaulenko:

Trabajo con NS, los entiendo. El atractivo de los árboles es que generan lógica como si...entonces.... que, en general, es lo que se necesita: la salida debe ser una decisión de sí/no. Pero parece que los árboles ya no pueden hacer frente a esa lógica, aunque les demos todo esto como entrada.

Es necesario introducirlas y comprobarlas - hacer muestras y comprobarlas.

 
Aleksey Vyazmikin:

Tenemos que presentarnos y ver: hacer un muestreo y comprobarlo.

No, un ejemplo desafortunado. Este servirá).

 
Yuriy Asaulenko:

No, un ejemplo desafortunado. Se puede manejar).

Por supuesto, puede hacer frente a ello, pero el NS utiliza las neuronas para obtener fórmulas, mientras que los árboles sólo obtienen la interpretación de los resultados de los cálculos. Creo que si dibujamos una primitiva difícil de describir con una función, por ejemplo, una casa a partir del dibujo de un niño, NS tardaría mucho tiempo en encontrarla, mientras que el árbol determinaría rápidamente las coordenadas de este objeto y las convertiría simplemente en vectores. Pero si se cambia la escala, el árbol no podrá identificar esta casa, pero la NS debería poder hacerlo.

 
Aleksey Vyazmikin:

CatBoost masterclass - hay enlaces para descargar el código por vídeo para trabajar en python


buena, bien explicada.

 
Maxim Dmitrievsky:

bueno, bien explicado

Sí, las configuraciones básicas están bien dadas, sobre todo si empiezas en python desde el principio. Pero esto no es suficiente para mí.

Razón de la queja: