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

 

Si se tiran muchos errores de golpe, el maestro degenera (pueden quedar muchos errores y cero granos), por lo que hay que ir tirando poco a poco en cada iteración

y el error en OOS disminuye gradualmente, en este caso r^2 aumenta

Iteration: 0, R^2: 0.10170503363002426
Iteration: 1, R^2: 0.3786110827222656
Iteration: 2, R^2: 0.36326063198923375
Iteration: 3, R^2: 0.4316690005974817
Iteration: 4, R^2: 0.71390099630815
Iteration: 5, R^2: 0.8178962191209952
en esencia, este es un análogo de bestinterval de fxsaber, sólo que aquí el TS se prepara a la vez
 
Aleksey Vyazmikin #:

Creo que está todo en la lista. Este es un libro de Jeremy Howard, fundador de Kaggle y framevoc fast.ai.

Fast.ai.

Libro en original

Libro en ruso

Versión gratuita

 
Maxim Dmitrievsky #:

Si se tiran muchos errores de golpe, el maestro degenera (pueden quedar muchos errores y cero granos), por lo que hay que ir tirando poco a poco en cada iteración

y el error OOS disminuye gradualmente, en este caso r^2 aumenta.

en esencia es un análogo de bestinterval de fxsaber, sólo que aquí el TS se prepara a la vez

Para mí hay un exceso de ajuste en la cita.

¿Dónde está "Fuera de muestra"?

 
A lo mejor si te metes con los árboles así y luego sacas las reglas, te sale mejor.
 
СанСаныч Фоменко #:

Para mí hay un super ajuste a la cita.

¿Dónde está "Fuera de muestra"?

Ya no tiene gracia.

 
Aleksey Vyazmikin #:

Propongo hacer este sombrero con un árbol en python con una selección de hojas, en kolab, usted puede poner sus conjuntos de datos allí.

si tienes alguna idea de que es mejor/peor, reglas para tomar solo lo mejor o a traves de algunos filtros, sugierelo.

Quiero comparar, después de haber corrido un conjunto de datos a través de ambos enfoques. Entonces vamos a entender qué es qué :)

 
Maxim Dmitrievsky #:

Esto se automatiza fácilmente y funciona sin intervención humana

en el último artículo se mostró un algoritmo similar.

En esencia, se trata de filtrar los errores del modelo y ponerlos en una clase separada "no negociar", mejor a través de un segundo modelo, que aprende a separar el grano de la paja

y sólo los granos permanecen en el primer modelo

Es lo mismo que con las reglas de árbol, pero de lado. Pero las reglas deben depurarse y compararse entre sí, y ya hay una TS depurada en la salida.

Por ejemplo, la primera iteración de selección de granos de la paja (a la izquierda de la línea de puntos vertical - OOS):

Y aquí está la décima:


Sí, la cuestión es la misma: trabajar en última instancia con datos que describan mejor los predictores.

Cómo hacerlo de la forma más eficiente sigue siendo una cuestión abierta: cada método tiene sus pros y sus contras.

 
Rorschach #:

Creo que está todo en la lista. Este es un libro de Jeremy Howard, fundador de Kaggle y framevoc fast.ai.

Fast.ai.

El libro en el original

El libro en ruso

Versión gratuita

¡Gracias! Tendré que buscar uno gratuito en ruso - el traductor a veces hace perlas y me habla de la salmuera, lo que puede ser útil :)

 
Maxim Dmitrievsky #:

Propongo hacer este sombrero en python con un árbol con una selección de hojas, en kolab, puede deslizar sus conjuntos de datos en él

si tienes alguna idea de que es mejor/peor, reglas para tomar solo lo mejor o mediante algunos filtros, sugierelo

Quiero comparar, después de haber corrido un conjunto de datos a través de ambos enfoques. Entonces vamos a entender qué es qué :)

¡Interesante idea!

En primer lugar, tenemos que entender qué implementación de árbol permitirá extraer fácilmente las reglas de la hoja para seguir trabajando con ellas.

A continuación, la forma de construir el árbol - codiciosos o genética. He comprobado las hojas de los árboles de todas las poblaciones (si no lo he hecho bien :))

Por supuesto, usted puede utilizar el bosque en lugar de la genética, pero entonces usted necesita más árboles para buscar las hojas, y hay que podar al porcentaje de ejemplos en la hoja de toda la muestra. Los árboles forestales pueden ser más rápidos que los genéticos y, obviamente, tendrán menos ajustes.

El proceso de generación de nuevas hojas debe llevarse a cabo hasta que se alcance el número necesario (especificado) de hojas seleccionadas.

En este caso, antes de construir el árbol, es necesario asegurar la generación de una submuestra aleatoria de dos tipos de muestras - la primera es la selección de N partes de intervalos uniformes continuos del tamaño especificado como porcentaje de la muestra de entrenamiento, la segunda es una submuestra obtenida completamente al azar.

Un conjunto aleatorio de predictores utilizados para construir el árbol.

Sobre el preprocesamiento para todos los datos - hay que reflexionar más.

Criterios para evaluar las hojas: también se pueden añadir más adelante, pero lo esencial es que las métricas tengan un umbral establecido. No sé qué métricas tienes y no recuerdo lo que he utilizado - Tengo que analizar el código. Usted puede tomar el equilibrio, la matriz de expectativas, y el factor de recuperación.

La estimación debe tener lugar en cada intervalo de toda la muestra de entrenamiento, el número de intervalos se establece. Si no se alcanza el criterio requerido en algún intervalo, la hoja se archiva o se descarta. He mantenido una base de datos de hojas, eliminando los duplicados para no tener que comprobarlos de nuevo.

Después de seleccionar las hojas, hay que agruparlas por similitud, tal vez la correlación de rangos lo haga correctamente. Luego distribuir pesos dentro del grupo y decidir las reglas de votación para los grupos. Sin embargo, tal vez eso ya es mucho, y vale la pena al menos aprender a seleccionar las hojas hasta ahora que será eficaz un nuevo dato.


No sé muy bien con qué muestra quieres hacer el experimento: ¿con la que yo daré o con la que se creará aleatoriamente?

En cualquier caso, para comparar los métodos, la muestra debe ser la misma y para un intervalo de tiempo grande, lo que permitirá tener en cuenta si no la ciclicidad, entonces las tendencias de las diferentes fases del mercado en grandes TFs.

Permítanme decir de una vez que el método que he utilizado es muy lento. Tal vez es mejor hacer el proceso de evaluación de la hoja en MQL5 - que permitirá distribuir la carga en los núcleos.

 
Aleksey Vyazmikin #:

¡Una idea interesante!

Esbozaré un ejemplo sencillo en un árbol por ahora y lo probaré inmediatamente, luego lo ampliaremos como se desee

en cualquier conjunto de datos, a través de google disc se puede descargar y probar allí sin instalar nada.

Quiero que funcione rápido )