Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 1276
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
todos los castores construyen la misma presa, aunque no lo sepan.
pero cada uno se obstina en creer que ha inventado algo nuevo.
El castor es una criatura trabajadora y justa, otra cosa es que un castor estudioso sea una criatura malvada, ahuyéntalo con una escoba de cualquier sitio, o mejor simplemente ignóralo.
El castor es una criatura trabajadora y correcta, otra cosa es que el Aprendiz de Jinete sea una criatura desagradable, ahuyéntalo con una escoba de todas partes, o mejor aún, ignóralo.
"Analista en un frasco" :)) lavavajillas a la mierda
La cuestión es que incluso si el 50% de todos se toman, entonces más allá hay una clara selección de este 50% a la primera división de la raíz (o en Alglib no es así?). CatBoost no sólo tiene una selección aleatoria de predictores, sino también una división aleatoria (los pesos se añaden aleatoriamente a los cálculos) en los primeros árboles.
Obtengo resultados diferentes, y mi objetivo no es estimar todo el modelo, sino obtener hojas, que con alta probabilidad describen la mayor parte de la muestra. Luego esas hojas se prueban en la historia año a año y se hace una composición de las mismas, que tal vez no describa todo el mercado, pero creo que es mejor tener respuestas más precisas a lo que se sabe que adivinar con un 50% de probabilidad en la mayoría de las veces.
Los predictores, ahora serán del orden de 600, por lo que un exceso total ya no es realista.
En principio, la partición aleatoria no es difícil de hacer.
No he visto árboles individuales con buenos resultados en las pruebas (45-50%), pero un bosque de ellos es más interesante).
Los paquetes xgboost, lightGBM tenían métodos incorporados para estimar la importancia de las características para los "modelos de madera":
Esta medida muestra la contribución relativa de cada característica al modelo. Para calcularla, recorremos cada árbol, miramos en cada nodo del árbol qué característica lleva a una 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.
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).
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.
Tengo un bosque entrenado en 5 barras que resulta mejor en una prueba que en 100. Pero cuando se enseña por 100, no se marcan los 5 primeros 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 es evidente que no son importantes según la lógica habitual, sino porque el bosque a 5 bares da mejores resultados.
Hay un script en R con un algoritmo genético para crear un árbol, seleccionar generaciones por mejora de entropía. Luego hay una especie de selección final. Tomo todos los árboles para la selección final y extraigo hojas de ellos para realizar otras mediciones por separado en MT5. El guión no se ha hecho público, por lo que tampoco hay descripciones detalladas. Aparentemente es como seleccionar el mejor árbol del bosque, pero hay una limitación de profundidad para evitar el sobreentrenamiento, bueno el proceso toma alrededor de 2 días en todos los núcleos en la última muestra, donde no todas las barras, pero sólo las señales para entrar, y si todas las barras durante 3 años, entonces el cálculo toma 1,5 meses allí. Después del cálculo hago una división del árbol, es decir, quito la columna con el predictor raíz del mejor árbol de la población y empiezo de nuevo, parecía que incluso en 40 este procedimiento a veces se crean hojas muy buenas, así que he llegado a la conclusión, de que el mejor árbol matemático no es siempre el más efectivo, y una información interfiere con otra, que apareció más tarde utilizada en el mismo CatBoost, cuando los predictores son elegidos al azar de toda la muestra para construir un árbol.
Pero el árbol no es mágico, es el que ofrece rpart. Creo que es lo normal allí.
primero entrenar el modelo en todas las características, guardar los errores
Luego, uno por uno, aleatorice cada uno de los predictores, digamos por distribución normal, y compruebe el error de nuevo en todas las características, incluyendo esta aleatorizada (cambiada), y compárelo con el inicial. No es necesario volver a entrenar el modelo. Y así comprobar cada uno de los predictores. Si el predictor era bueno, el error de toda la muestra (incluidos todos los demás predictores originales) aumentará drásticamente en comparación con el original. Guarde las diferencias de error y seleccione las mejores fichas en función de ellas. Luego, al final, entrenar sólo a los mejores y modelar en la producción. Los malos predictores son ruido para el modelo, no los necesitamos con su 1%. Los buenos suelen quedarse en 5-10, la importancia del resto disminuye exponencialmente (ley de Zipf).
He intentado enseñar filtros, pero no mucho, no le veo mucho sentido, es mejor meter todo en un modelo a la vez
Si se puede, sólo sobre la selección de predictores MUY competente(ya tiró antes)
Es una variante interesante. Tendré que probarlo.
Aunque me temo que si lo aplico a un modelo sobre 100 barras, e intento eliminar 95 barras y dejar las 5 primeras, el resultado será del 50%. Al fin y al cabo, esos 5 primeros apenas participaron en escisiones (de media, sólo el 5% de los nodos se construyen en ellos).
Encontré tu post sobre la permutación.
Una variante interesante. Tengo que probarlo.
Aunque me temo que si lo aplico al modelo de 100 barras e intento quitar 95 barras y dejar las 5 primeras, el resultado será del 50%. Al fin y al cabo, esos 5 primeros apenas participaron en escisiones (de media, sólo el 5% de los nodos se construyen en ellos).
No sé lo que estás haciendo con 100 barras, probablemente deberías aplicarlo correctamente y estarás bien
No sé qué estás haciendo con las 100 barras, probablemente tengas que aplicarlo bien y funcionará
Quiero automatizar el proceso de selección de los predictores sin importancia)
primero entrenar el modelo en todas las características, guardar los errores
Luego, uno por uno, aleatorice cada uno de los predictores, digamos por distribución normal, y compruebe el error de nuevo en todas las características, incluyendo esta aleatorizada (cambiada), y compárelo con el inicial. No es necesario volver a entrenar el modelo. Y así comprobar cada uno de los predictores. Si el predictor era bueno, el error de toda la muestra (incluidos todos los demás predictores originales) aumentará drásticamente en comparación con el original. Guarde las diferencias de error y seleccione las mejores fichas en función de ellas. Luego, al final, entrenar sólo a los mejores y modelar en la producción. Los malos predictores son ruido para el modelo, no los necesitamos con su 1%. Los buenos suelen quedarse en 5-10, la importancia del resto disminuye exponencialmente (ley de Zipf).
He intentado enseñar filtros, pero no mucho, no le veo mucho sentido, es mejor meter todo en un modelo a la vez
Si se puede, sólo sobre la selección de predictores MUY competente(ya tiró antes)
Yo entendí este método de otra manera.
De todos modos, los resultados del artículo son impresionantes. Debería probarlo en la práctica.Para el predictor en estudio, no debemos alimentar valores aleatorios con una distribución normal, sino simplemente barajar las filas de esta columna.