Regresión Bayesiana - ¿Alguien ha hecho un EA utilizando este algoritmo? - página 26

 
СанСаныч Фоменко:

Sí, lo hice... No recuerdo...

Si hablamos del probador, este es el problema, en mi opinión.

Tomamos alguna muestra y utilizamos el comprobador para calcular, por ejemplo, el factor de beneficio. A continuación, tomamos otra muestra y obtenemos un nuevo valor del factor de beneficio. En total obtenemos dos cifras. ¿Son dos cifras la base de las conclusiones estadísticas? Estas cifras no significan nada en absoluto.

Hay que resolverlo y se resuelve de otra manera.

Se toma una muestra. De esta muestra se selecciona aleatoriamente algún subconjunto y se cuenta con un factor de beneficio en ella. A continuación, se toma una muestra aleatoria y así sucesivamente, por ejemplo, 1000 veces. Obtendrás 1000 factores de beneficio. Este conjunto ya puede servir de base para las conclusiones estadísticas.

Por cierto, este método no excluye el uso de un probador, demo...

SS, ¡buenos días!

¿Una muestra de qué? ¿Tratos?

Ya veo a dónde quieres llegar: estimar los cuantiles de las estadísticas muestrales por tipo de bootstrap.

Pero la cuestión sigue siendo que, si el TS se ajusta a toda la muestra disponible, este método mostrará lo que ya sabemos, que es que el factor de beneficio es muy bueno.

Voy a enfocar la cuestión de forma un poco diferente en mi blog. En primer lugar, el entrenamiento con k-fold crossvalidation; tome 5 subconjuntos (en mi caso serán datos de 5 pares de divisas) y obtendrá un experimento interesante: entrenar el modelo en 4 pares y probar en el 5º. Quiero repetir este experimento 5 veces. Pero eso no es todo. En un principio, sólo me interesaba demostrar que el mercado de divisas es predictivo. Por lo tanto, los m-mejores modelos (en el corte de validación cruzada) pasarán la validación en una gran muestra que la máquina aún no ha visto. Otra propiedad del muestreo de validación es que agrega los precios separados por tiempo en el futuro. Espero obtener una matriz de 100 * 18 con los resultados de validación de los 100 mejores modelos sobre 18 variables de salida predichas (de 2 a 724 minutos en el futuro), por ejemplo, según el criterio R^2. Esto mostrará inmediatamente si mis "cajas" predicen mejor que la media.

Y si hubiera un patrocinador para mi autodescubrimiento, se podría alquilar una nube de Amazon y repetir el experimento 1.000 veces, generando cada vez un conjunto de entrenamiento y validación diferente. Y luego habría una matriz tridimensional de 1000 * 100 * 18 que permitiría estimar el error estándar de la métrica R^2 para los mejores modelos y para diferentes objetivos. Pero eso ya es grueso.

Lo que quiero decir es que debemos hacer pruebas con datos futuros (o con datos pasados, pero claramente separados por el tiempo) y todo irá bien.

 
Alexey Burnakov:

CC, ¡buenas tardes!

¿Una selección de qué? ¿Transacciones?

Ya veo a dónde quieres llegar: estimar los cuantiles de las estadísticas muestrales por tipo de bootstrap.

Pero la cuestión sigue siendo que, si el TS se ajusta a toda la muestra disponible, este método mostrará lo que ya sabemos, que es que el factor de beneficio es muy bueno.

Voy a enfocar la cuestión de forma un poco diferente en mi blog. En primer lugar, el entrenamiento con k-fold crossvalidation; tome 5 subconjuntos (en mi caso serán datos de 5 pares de divisas) y obtendrá un experimento interesante: entrenar el modelo en 4 pares y probar en el 5º. Quiero repetir este experimento 5 veces. Pero eso no es todo. En un principio, sólo me interesaba demostrar que el mercado de divisas es predictivo. Por lo tanto, los m-mejores modelos (en el corte de validación cruzada) pasarán la validación en una gran muestra que la máquina aún no ha visto. Otra propiedad del muestreo de validación es que agrega los precios separados por tiempo en el futuro. Espero obtener una matriz de 100 * 18 con los resultados de validación de los 100 mejores modelos sobre 18 variables de salida predichas (de 2 a 724 minutos en el futuro), por ejemplo, según el criterio R^2. Esto mostrará inmediatamente si mis "cajas" predicen mejor que la media.

Y si hubiera un patrocinador para mi autodescubrimiento, se podría alquilar una nube de Amazon y repetir el experimento 1.000 veces, generando cada vez un conjunto de entrenamiento y validación diferente. Y luego habría una matriz tridimensional de 1000 * 100 * 18 que permitiría estimar el error estándar de la métrica R^2 para los mejores modelos y para diferentes objetivos. Pero eso ya es grueso.

Lo que quiero decir es que hay que hacer pruebas con datos futuros (o con datos pasados, pero claramente separados en el tiempo) y no habrá problema.

La palabra clave de su mensaje está resaltada en rojo.

El sobreajuste (overfitting) de un modelo es un problema metodológico de toda ciencia: un modelo sobreajustado (cualquiera en cualquier rama del conocimiento) da cuenta de algunas particularidades en los datos de entrenamiento, y luego esas particularidades no se encuentran fuera de los datos de entrenamiento. Al hacerlo, el modelo no capta ciertos patrones que son comunes a la población general.

Según tengo entendido, este problema no lo resuelven los propios modelos ni ninguna técnica de comprobación estadística: usted señala correctamente que los resultados sobreentrenados estarán justificados. Intentar utilizar técnicas de "engrosamiento" del modelo en mis manos no ha dado resultados.

Para mí, el problema del sobreentrenamiento lo genera por completo el conjunto de datos de entrada. A nivel intuitivo: ¿los datos brutos (predictores) se relacionan con la variable o no? El caso extremo -no tener ninguno- no lo considero. Intermedio: algunos lo hacen y otros no. Una situación perfectamente factible por experiencia personal es cuando los predictores que no son relevantes para la variable objetivo "silencian" a los predictores que son relevantes para la variable objetivo. Si se ha conseguido filtrar manualmente los predictores ruidosos más odiosos, en algún momento los algoritmos de filtrado de predictores empiezan a funcionar.

Los números son los siguientes. He seleccionado unos 30 predictores del conjunto inicial de 50-200 por mis propios métodos. Estos 30 elementos no generan ningún modelo sobreentrenado, es decir, la eficacia en la muestra de entrenamiento, AOVA, prueba y validación es aproximadamente la misma. A continuación, utilizando paquetes (yo utilizo varSelRF, otros también son posibles) selecciono los predictores utilizando una ventana deslizante, alrededor de 300-500 barras. Obtengo un conjunto de trabajo de 10-15 predictores. A medida que la ventana se mueve, la composición de los predictores cambia. Cualquiera de los conjuntos de predictores resultantes tampoco conduce al sobreentrenamiento, sino que aumenta el rendimiento del 5% al 10%. En el caso de las tareas de clasificación, se trata de un error del 20% aproximadamente.

 
СанСаныч Фоменко:


Para mí, el problema del sobreaprendizaje lo genera por completo el conjunto de datos de entrada. A nivel intuitivo: si los datos brutos (predictores) son o no relevantes para la variable. El caso extremo -no tener ninguno- no lo considero. Intermedio: algunos lo hacen y otros no. Una situación perfectamente factible por experiencia personal es cuando los predictores que no son relevantes para la variable objetivo "silencian" a los predictores que son relevantes para la variable objetivo. Si se ha conseguido filtrar manualmente los predictores ruidosos más odiosos, en algún momento los algoritmos de filtrado de predictores empiezan a funcionar.

Los números son los siguientes. He seleccionado unos 30 predictores del conjunto inicial de 50-200 por mis propios métodos. Estos 30 elementos no generan ningún modelo sobreentrenado, es decir, la eficacia en las muestras de entrenamiento, AOVA, prueba y validación es aproximadamente la misma. A continuación, utilizando paquetes (yo utilizo varSelRF, otros también son posibles) selecciono los predictores utilizando una ventana deslizante, alrededor de 300-500 barras. Obtengo un conjunto de trabajo de 10-15 predictores. A medida que la ventana se mueve, la composición de los predictores cambia. Cualquiera de los conjuntos de predictores resultantes tampoco conduce al sobreentrenamiento, sino que aumenta el rendimiento del 5% al 10%. En el caso de las tareas de clasificación, se trata de un error del 20% aproximadamente.

Se puede lidiar con el ruido mediante la selección de variables, como has dicho. Pero, ¿tengo razón al decir que los datos ruidosos impiden la selección de las buenas variables y es necesario encontrarlas y eliminarlas de antemano mediante alguna eurística?

Y otra pregunta. Estás utilizando una especie de bosque de decisiones, según entiendo por este acrónimo (yo no he utilizado ese método).

Cualquier árbol de decisión es un algoritmo de selección de variables codicioso + una métrica que permite trazar una división (límite de corte) en el área de valores de esa variable. Así, basándose en los árboles "codiciosos", deberían seleccionar las variables más significativas individualmente en los niveles superiores de las ramas. En los niveles inferiores del árbol (empezando ya por el segundo nivel, de hecho), la selección de las siguientes variables más importantes se realiza ya sobre una submuestra de observaciones que han sido generadas por los cortes intermedios. Y en esta submuestra también buscamos la siguiente variable más importante (para cada variable pasamos por todos los cortes posibles y seleccionamos el mejor, para el que se calcula la métrica de relevancia de la variable). Pero como ya se está trabajando con una submuestra de observaciones, resulta que en general entra en juego la distribución condicional: la var #18 es mejor en la submuestra #4 dada la variable #2 utilizada anteriormente. Por lo tanto, la importancia de las variables depende cada vez más de las variables utilizadas anteriormente a medida que aumenta la profundidad del árbol.

Según la idea de los autores, las variables de ruido deben quedar fuera. PERO! La naturaleza codiciosa del enfoque conduce al hecho de que, por ejemplo, las variables rechazadas en el nivel 1, en conjunción con otras posibles variables en otro posible nivel 2, también pueden dar una ganancia significativa en la métrica objetivo, lo que en sí mismo es un exceso. También puede ocurrir, en el caso extremo, que dos variables independientes, cada una de las cuales es ruido en términos de la variable objetivo, den una distribución conjunta tal con la variable objetivo que se conviertan en una interacción significativa. Un modelo codicioso buscará esto, pero rara vez sucede, me refiero a esta configuración de datos.

¿Qué te parece?

 
Por favor, respondan a una pregunta, ¿alguno de ustedes ha ganado dinero con el forex? Yo ya he gastado 5 años de mi vida y más de un millón de rublos y hasta la fecha no me ha salido nada.
 
Alexey Burnakov:

Se puede lidiar con el ruido mediante la selección de variables, como has dicho. Pero, ¿estoy en lo cierto al afirmar que los datos con ruido nos impiden seleccionar buenas variables y necesitamos encontrarlas y eliminarlas de antemano utilizando alguna eurística?

Exactamente.

Y otra pregunta. Estás utilizando una especie de bosque de decisiones, según he entendido por este acrónimo (yo no he utilizado ese método).

Forest como ejemplo, pero el modelo elegido del problema, cuando las variables de ruido "ahogan" las variables normales, no resuelve el problema: la selección de variables es un problema independiente.

 
Mikhail Gorenberg:
Por favor, respondan a una pregunta, ¿alguno de ustedes ha ganado dinero con el forex? Yo ya he gastado 5 años de mi vida y más de un millón de rublos y hasta la fecha no me ha salido nada.
Empieza con las señales, aprende a seleccionar las rentables...
 
Mikhail Gorenberg:
Por favor, respondan a una pregunta, ¿alguno de ustedes ha ganado dinero con el forex? Yo ya he gastado 5 años de mi vida y más de un millón de rublos y hasta la fecha no me ha salido nada.
No es de extrañar, no eres un botánico en términos de cuantiles, crossvaluations y bootstraps.
 
Mikhail Gorenberg:
Ya he gastado 5 años de mi vida y más de un millón de rublos y no he conseguido nada hasta ahora.

Terminé con aproximadamente cero (tal vez un poco más). Todas mis empresas se han arruinado por la codicia.

Aunque tengas un robot de trading rentable (yo tengo uno) -me refiero a realmente rentable y consistente- cuando funciona y estás esperando resultados durante meses, empieza a parecer que un 30% de crecimiento no es suficiente. Y luego viene más lejos. Es decir, incluso con el comercio totalmente automatizado, donde se calculan los riesgos y se controla la reducción máxima, psicológicamente no me siento cómodo.

Por lo tanto, he decidido utilizar los cuantiles.

PD: si hago un buen sistema de trading automatizado, lo pondré a disposición de todo el mundo. Y lo alquilaré a alguien con dinero.

 
СанСаныч Фоменко:

Se puede lidiar con el ruido mediante la selección de variables, como has dicho. Pero, ¿estoy en lo cierto al afirmar que los datos con ruido nos impiden seleccionar buenas variables y necesitamos encontrarlas y eliminarlas de antemano utilizando alguna eurística?

Exactamente.

Y otra pregunta. Estás utilizando una especie de bosque de decisiones, según he entendido por este acrónimo (yo no he utilizado ese método).

Forest como ejemplo, pero el modelo elegido del problema anterior, cuando las variables de ruido "ahogan" las variables normales, no resuelve el problema: la selección de variables es un problema independiente.

¿Por qué el ruido ahoga la señal? No me queda del todo claro.

Verá, si el propio modelo incorpora la regularización de características, entonces todos los datos de ruido se ignoran después de comparar su efecto sobre la variable objetivo. Si el modelo no ofrece protección contra el sobreentrenamiento (por ejemplo, no se ha establecido un umbral inferior de número de observaciones en el nodo terminal del árbol), se utilizará todo el ruido. Pero esto se resuelve incluso dentro del bosque aleatorio.

¿Tal vez pueda explicar su idea con más detalle?

 
Alexey Burnakov:

¿Por qué el ruido interfiere en la señal? No me queda del todo claro.

Verá, si el propio modelo incluye la regularización de características, entonces todos los datos de ruido se ignoran después de comparar su efecto en la variable objetivo. Si el modelo no ofrece protección contra el sobreentrenamiento (por ejemplo, no se ha establecido un umbral inferior de número de observaciones en el nodo terminal del árbol), se utilizará todo el ruido. Pero esto se resuelve incluso dentro del bosque aleatorio.

¿Tal vez podría explicar su idea con más detalle?

¿Por qué el ruido interfiere en la señal? No me queda muy claro.

No lo sé.

Tengo un programa que calcula una medida de la relación entre el predictor y la variable objetivo. Es un valor abstracto.

Si es < 1, es ruido.

1-2 - mejor no meterse con él.

más de 3 - bien.

más de 5 - buena suerte, pero rara.

Por lo tanto, si hay demasiados predictores con una puntuación inferior a 2, no puedo distinguir los predictores útiles por ningún otro medio que no sea el mío. No sé cómo interpretar esto. No olvidemos que los predictores tienen un impacto no sólo en la variable objetivo, sino también entre ellos mismos. A menudo, lo importante no es sólo la lista de predictores que hay que eliminar, sino también el orden en que se eliminan.

¿Cuál es mi punto?

El problema básico del comercio es el problema del sobreentrenamiento (overfitting), este es un problema en sí mismo y no depende de los modelos y métodos utilizados.

Razón de la queja: