¿Hay algún patrón en el caos? ¡Intentemos encontrarlo! Aprendizaje automático a partir de una muestra concreta. - página 20

 
Aleksey Vyazmikin #:

¿Y cómo lo interpretas? ¿Hay un patrón, pero no lo encuentras? ¿O el patrón está en la aleatoriedad?

Simplemente lee atentamente lo que dice.

No hay nada entre líneas, es textual y muy claro.

Has formado por segunda vez una pregunta que no corresponde a lo que escribí.

 
elibrarius #:

¿Cómo lo haces sin avaricia? Calcula otro para cada split y selecciona un par a la vez, pero en tu caso el tiempo de cálculo aumentará 5000+ veces. Es más fácil promediar un centenar de modelos.

Pienso más bien hacia la calidad, es decir, hacia criterios de evaluación adicionales.

Otro enfoque: ponderaciones para los predictores que garanticen la coherencia de su aplicación. Es algo así como "definir primero el tiempo", luego "estimar la volatilidad" y "posición actual del precio".

elibrarius #:

Para reducir la influencia de la aleatoriedad es correcto. De lo contrario usted tiene que hacer el promedio de 20-100 modelos como en el bosque.

Ahí tienen otro truco, y no entiendo bien el proceso - al principio construyen un árbol sobre una muestra truncada (si no se fuerza sobre toda la muestra), y luego cuentan los resultados en hojas sobre toda la muestra. Al parecer, las divisiones son en la submuestra, y los pesos en las hojas ya están en toda la muestra.

elibrarius #:

Es decir, resulta que los árboles de refinado pueden no ser los mejores, sino aleatoriamente peores.

De ahí la dispersión en los modelos de drenante a rentable.

Nah, el entrenamiento siempre mejora el resultado en cada iteración y los modelos de la muestra de entrenamiento siempre están en el lado positivo. Aunque con una dispersión financiera.

elibrarius #:

A juzgar por los gráficos de distribución, hay más modelos drenantes, es decir, si hacemos la media, el resultado medio será no rentable.

Sí, pero esto es más bien un caso especial.

elibrarius #:

¿Quizás random-strength = 0? Esperemos que los cambios de semillas dejará de cambiar el modelo después de eso. Tal vez crear un modelo con mejores árboles de refinamiento en lugar de los malos al azar. Si el mejor modelo será un drenaje, a continuación, buscar en estos datos de 10000 modelos aleatorios al azar el mejor es el camino a un drenaje en el real.

He intentado con cero, pero entiendo que lapuntuación de los árboles se convirtió en el mismo para todos, y por lo tanto los mismos fueron elegidos al azar :)). O todavía en algún lugar se utiliza generador de números aleatorios.

elibrarius #:

O todavía promedio de varios modelos seleccionados al azar, como en el bosque. Porque el mejor puede ser reentrenado.

Es decir, seleccionar modelos de tres muestras y luego promedio como? Tal vez así - No quiero pasar a conjuntos de modelos todavía, todavía tengo que mirar en la posibilidad de mejorar la construcción de los propios modelos.

 
Aleksey Vyazmikin #:

Otro enfoque son las ponderaciones para los predictores que garantizarán la coherencia en su aplicación, no un marco arbóreo claro. Es como "definamos primero el tiempo", luego "estimemos la volatilidad" y "posición actual del precio".

Intentado esto - dividido primero por día de la semana y/o hora del día. Los modelos resultaron peor que si encuentra las primeras divisiones por sí mismo. Usted puede hacerlo también - dividir la muestra en 5 partes por día de la semana y entrenar 1 modelo para cada día. O una hora o lo que quieras.

Aleksey Vyazmikin #:

Nah, el entrenamiento siempre mejora el resultado en cada iteración y los modelos de la muestra de entrenamiento siempre están en el plus. Aunque con un diferencial financiero.

Está claro que habrá mejora, pero no la mejor, sino con aleatoriedad de puntuación.
No miro a Trein para nada, para no distraerme. Siempre será bueno.

Aleksey Vyazmikin #: Probado con cero, pero entiendo que lapuntuación de los árboles se convirtió en el mismo para todos, y significa que fueron elegidos entre los mismos al azar :)) O todavía un generador de números aleatorios se utiliza en alguna parte.

Si Score se ha convertido sin aleatorización y los resultados siguen siendo diferentes, significa que la aleatorización se utiliza en algún otro lugar.

Aleksey Vyazmikin #: ¿Es decir, seleccionar modelos por tres muestras y luego promediarlas? Puede que sí. Aún no quiero pasar a conjuntos de modelos, todavía tengo que estudiar la posibilidad de mejorar la construcción de los propios modelos.

No seleccionar - sino tomar todos los generados aleatoriamente. Y promediarlos. Como en un bosque. Allí también se promedian árboles aleatorios. Pero se puede experimentar con los mejores de los aleatorios.

 
elibrarius #:

Probé esto: dividí primero por día de la semana y/o hora del día. Los modelos eran peores que si encuentra las primeras divisiones por sí mismo. Puedes hacerlo también - divide la muestra en 5 partes por día de la semana y entrena 1 modelo para cada día. O una hora o lo que quieras.

Sí, tengo esa opción :) Conseguí obtener resultados interesantes en uno de los predictores y hacer una estrategia de señalización para él.

Sin embargo, aquí estoy hablando de otra cosa, de la prioridad de selección de predictores por parte del modelo durante el entrenamiento.

elibrarius #:

Si Score se hizo sin aleatorización y los resultados siguen siendo diferentes, significa que la aleatorización se está utilizando en otro lugar.

Obviamente :) El desarrollador sigue sin pronunciarse sobre este tema.

elibrarius #:

No culling - pero tomando todos los generados aleatoriamente en una fila. Y promediarlos. Como en un bosque. Allí también se promedian los árboles aleatorios. Pero puedes experimentar con el mejor de los aleatorios.

Se puede hacer con un Recall grande, o preagrupando los modelos por similitud de puntos de respuesta a una clase positiva, de lo contrario siempre habrá una recomendación negativa.

 

He reducido la muestra del último experimento -con los predictores que seleccioné antes-, he eliminado dos años 2014-2015 de la muestra del tren.

Si la última vez había 208 modelos con beneficios superiores a 3000 en la muestra de examen, ahora hay 277. Es casualidad o las muestras se han vuelto más parecidas?

Por cierto, el saldo medio de beneficios en la muestra de prueba la última vez fue de 982 puntos y en la muestra truncada fue de 2115, pero en examen casi no varía -1114 vs -1214.


¿Alguna idea de cómo mejorar el resultado?

 
Buenas tardes, puedes colgar los archivos del primer post, yo también quiero probar una idea.
 
Aleksey Vyazmikin #:

Si la última vez había 208 modelos con beneficios superiores a 3000 en el examen de muestra, ahora hay 277. Es una coincidencia o las muestras se han vuelto más parecidas?

Tienes una dependencia muy alta de Seed, es decir, de los nuevos datos. En datos donde hay patrones, la imagen sería como en el traine: todo en + con pequeñas desviaciones.
Intente cambiar la Semilla inicial (pruebe varias variantes). Si el número de patrones exitosos variará tanto, entonces es al azar, así como la secuencia de la HNC al cambiar la seeda.

Aleksey Vyazmikin #:

Por cierto, el saldo medio de beneficios en la muestra de modelos de prueba en el último paso es 982 puntos, y en la muestra truncada es 2115, pero en el examen es casi sin cambios -1114 vs -1214.

Es extraño que la media en el examen sea > 0. ¿Quizás te refieres a traine? La prueba no parece participar en el aprendizaje o participa indirectamente, para elegir un traine.

Aleksey Vyazmikin #:

¿Alguna idea de cómo mejorar el resultado?

Lo más probable es que el modelo esté sobreentrenado o infraentrenado. Y la última opción - no hay patrones.
Si está sobreentrenado, intente reducir el número de árboles a 1. Si está infraentrenado, puede aumentar la profundidad del árbol.
Probablemente ya haya probado la variante con más árboles.
La falta de patrones es más difícil. Si no los encontraste con más de 5000 predictores, no sé de qué otra forma buscarlos. Tampoco sé cómo has llegado a esos 5000+. Todavía no he escarbado en esa dirección. Ya que se necesita mucho más tiempo para calcular, pero supongo que tendré que hacerlo, ya que también es aproximadamente 50/50 en el OOS.

 

Por cierto, ¿construyes la línea de equilibrio con el tiempo en el eje horizontal o sólo con un paso uniforme entre operaciones? A juzgar por los gráficos - el segundo.

He aquí un ejemplo:

El de arriba tiene 3000+ operaciones, el de abajo tiene 600+. Si usted los hace sólo con igual espaciamiento, obtendrá hermosas tendencias. Pero aquí se puede ver que durante 5 años el comercio era sólo unos pocos días y no tiene sentido hacer un robot que va a dormir durante meses / años. Usted acaba de apagarlo.

La imagen es sólo en el tema de los cisnes blancos y negros. Como puedes ver, MO los "muerde" bien y se ajusta a ellos, si están presentes.
@fxsaber también ha investigado este tema https://www.mql5.com/ru/blogs/post/749420
Estoy completamente de acuerdo con él en que es necesario eliminar la influencia tanto de los cisnes blancos como de los negros.

Si en el optimizador puedes aplicar un criterio personalizado y de alguna manera seleccionar otras opciones, en MO sólo hay opciones estándar para seleccionar splits y aquí sólo puedes recortar trozos de historia. El problema es que el momento del cisne blanco se desconoce antes de entrenar el modelo. Y si lo cortas, el modelo será completamente diferente y puede haber su propio cisne blanco. Tenemos que pensar y experimentar...

Фильтр белых лебедей.
Фильтр белых лебедей.
  • www.mql5.com
В любом исследовании сначала идет подготовка исходных данных. На фин. рынках это почти всегда истории котировок. В зависимости от источника, они могут обладать определенными особенностями. Сегодня
 
RomFil #:
Buenas tardes, podeis colgar los archivos del primer post, yo también quiero probar una idea.

Hola. Sí, intentaré publicarlo hoy.

 
elibrarius #:

Tienes una dependencia muy alta de la Semilla, es decir, del HNC de los nuevos datos. En datos donde hay patrones, la imagen sería como en la bandejane: todo en + con pequeñas desviaciones.
Intente cambiar la Semilla inicial (pruebe varias variantes). Si el número de patrones exitosos varía tanto, entonces es aleatorio, así como la secuencia de la HGC al cambiar la seeda.

Semilla en cada modelo cambia secuencialmente de 1 a 10000 - ese es el punto de generar diferentes modelos. Qué ocurre si Seed no es fija y se toma de todo el espacio (o cómo se genera - también es una pregunta) - no lo sé - puedes comprobarlo.

¿En qué se basa la afirmación de que el resultado debe ser similar a la prueba? Asumo que las muestras no son homogéneas - no hay un número comparable de ejemplos similares en ellas, y creo que las distribuciones de probabilidad sobre los cuantos difieren un poco.

Sí, que el modelo se construya por azar - digamos, pero ¿significa eso que no describe la regularidad identificada?

elibrarius #:

Es extraño que la media de la prueba haya resultado > 0. ¿Quizás te refieres a la traza? El test no parece estar implicado en el aprendizaje, o lo está indirectamente, para seleccionar una traine.

Participa sólo para controlar la detención del entrenamiento, es decir, si no hay mejora en la prueba mientras se entrena en el tren, entonces el entrenamiento se detiene y los árboles se eliminan hasta el punto en el que se produjo la última mejora en el modelo de prueba.

Este es un caso en el que puede que no haya mejora, pero el deterioro no es fuerte, sino ejemplos más generalizados en la muestra de entrenamiento, y el algoritmo de aprendizaje dice que se detenga en este caso. Si desactiva esta función, entonces se abre otra pregunta - cuántos árboles se deben utilizar en el modelo. Pienso en otra opción - entrenamos un número fijo de árboles, y luego truncamos el modelo usando la muestra de prueba, pero tendremos que calcular el balance en cada paso, lo que es ciertamente caro.

Ahora creo que sería bueno hacer que el entrenamiento se detuviera no por una muestra, sino por un conjunto de submuestras, lo que daría una comprobación de la persistencia del patrón en el tiempo.

elibrarius #:

Lo más probable es que el modelo esté sobreentrenado o infraentrenado. Y la última opción es que no haya patrones.

Si está sobreentrenado, intente reducir el número de árboles a 1. Si está infraentrenado, puede aumentar la profundidad del árbol.
Seguro que ya ha probado la variante con un gran número de árboles.
La falta de patrones es más difícil. Si no los encontraste con más de 5000 predictores, no sé de qué otra forma buscarlos. Tampoco sé cómo has llegado a esos 5000+. Todavía no he escarbado en esa dirección. Ya que se necesita mucho más tiempo para calcular, pero supongo que tendré que hacerlo, ya que también es aproximadamente 50/50 en el OOS.

Aparentemente no indiqué claramente la muestra que utilicé - es la sexta (última) muestra del experimento descrito aquí, por lo que sólo hay 61 predictores.

Como señalé anteriormente - sí, los modelos no están completamente entrenados en el sentido de que no describen todo el tren de la muestra, y esto es generalmente normal, porque el mercado está cambiando y todas las combinaciones simplemente no pueden estar allí y en cada muestra posterior habrá un número diferente de ellos, y posiblemente con un resultado medio diferente para ellos. No estamos trabajando con una muestra representativa, por lo que no podemos esperar una descripción completa - mi objetivo es extraer un par de patrones estables.

En cuanto a los árboles, hay un ajuste para la tasa de aprendizaje (--learning-rate), que está relacionado con el número de árboles, es decir, cuanto mayor sea la tasa, menos árboles se necesitan para describir la muestra. Así, resulta que si aumenta la tasa (0,3), entonces el número de modelos que pasan el filtrado condicional es más, a veces más del doble, los últimos experimentos son sólo en tales ajustes y el número medio de árboles es de 10 piezas, mientras que su profundidad es de 6 divisiones. Los árboles en CB son algo diferentes - hay una división en todo el nivel de un árbol simétrico, lo que hace que su aplicación sea más rápida que la variante clásica, pero son menos informativos uno a uno. En las últimas versiones, puede utilizar los árboles clásicos, pero no tengo un intérprete para sus modelos en MQL5, así que no los uso, así que no me molesta.

En general, puedo añadir más predictores, porque ahora se utilizan sólo con 3 TF, con algunas excepciones - Creo que un par de miles más se puede añadir, pero si todos ellos se utilizarán correctamente en la formación es dudoso, dado que 10000 variantes de semillas para 61 predictores dar tal spread....

Y, por supuesto, hay que preseleccionar los predictores para acelerar el entrenamiento.

elibrarius #:

Por cierto, ¿construyes la línea de equilibrio con el tiempo en el eje horizontal o sólo con un paso uniforme entre operaciones? A juzgar por los gráficos - el segundo.

He aquí un ejemplo:

El de arriba tiene 3000+ operaciones, el de abajo tiene 600+. Si usted los hace sólo con igual sangría, obtendrá hermosas tendencias. Pero aquí se puede ver que durante 5 años el comercio era sólo unos pocos días y no tiene sentido hacer un robot que va a dormir durante meses / años. Usted acaba de apagarlo.

El balance se construye secuencialmente sin tener en cuenta la cronología del calendario. Sí, entiendo lo que quieres decir, pero en mi concepto se trata de las etapas posteriores de preparación de los patrones de trading.

elibrarius

La foto es justo en el tema de los cisnes blancos y negros. Como puedes ver el MO los "pica" bien y se ajusta a ellos, si los hay.

Es lógico que las emisiones sean desviaciones, sólo pienso que son ineficiencias, que deben aprenderse eliminando el ruido blanco. En otros ámbitos, las estrategias primitivas simples suelen funcionar, sobre todo en zonas de mercado plano.

Razón de la queja: