Optimización y pruebas fuera de la muestra. - página 4

 

¡Sí, claro!

Además, (teniendo en cuenta también las críticas) me gustaría señalar que hay una objeción importante para aquellos que no están del todo de acuerdo con la simple ejecución de la idea.

"¡No hay que complicar la esencia de las cosas más allá de lo necesario!" (H. Occam)

La primera optimización seguida de la segunda (fuera de la muestra) es una solución sencilla y suficiente.

Al fin y al cabo, nuestro objetivo es obtener beneficios, no dedicarnos a la optimización por la optimización.

 
Vita:

--> El corte hace lo mismo (marcar, controlar). ¿Qué extra aporta el corte en comparación con una carrera directa?


La división filtra eficazmente la información. En términos de cantidad.

Vita escribió (a):

--> Si por "procesar los resultados de la optimización sobre toda la muestra" te refieres a descartar el conjunto D, entonces no estoy de acuerdo - descartar los resultados que dan pérdidas intermedias (en la muestra o fuera de la muestra) es una tarea elemental que se resuelve durante la propia optimización sobre toda la muestra, es decir, no es necesario ningún procesamiento después de la optimización. El resultado es el conjunto B de inmediato. Y no hay comprobaciones adicionales fuera de la muestra que requieran mucho tiempo.

¿Se refiere a la optimización en el sentido matemático o en el real? La muestra, según tengo entendido, incluye ahora ambas muestras. ¿Cree que puede ahorrar tiempo realizando tres series innecesarias sobre ambas muestras? En cuanto a la implementación, si escribes tu propio probador desde cero, quizás los costes de implementación sean insignificantes. Intenta ponerlo en práctica, y luego podemos volver a la pregunta.

 
leonid553:

¡Sí, claro!

Además, (teniendo en cuenta también las críticas) me gustaría señalar que hay una objeción importante para aquellos que no están del todo de acuerdo con la simple ejecución de la idea.

"¡No hay que complicar la esencia de las cosas más allá de lo necesario!" (H. Occam)

La primera optimización seguida de la segunda (fuera de la muestra) es una solución sencilla y suficiente.

Al fin y al cabo, perseguimos el objetivo del beneficio, no la optimización por la optimización.


Yo también, y estoy totalmente de acuerdo con Occam. No hay que hacer dos optimizaciones, con una es suficiente.

Usted dijo: "Después de la optimización de un Asesor Experto, a menudo tendremos que recorrer tediosamente y fuera de muestra más de una docena de conjuntos de parámetros sugeridos por el optimizador.

Una ejecución sobre toda la población, sin dividir en muestra-desmembramiento, es una solución no menos suficiente e incluso más sencilla.

 

Discrepo categóricamente, Vita. De lo contrario, en las redes neuronales no habría una división de todos los datos en tres partes, fundamentalmente diferentes: la optimización real - sólo en la primera parte; la segunda sirve sólo para determinar el momento de la terminación del entrenamiento, y la tercera - sólo para la prueba única. Es decir, el ajuste real sólo va en la primera, y en la tercera, es lo que resulte... Y la elección - "navaja de Occam" o pérdida de confianza en el sistema - se deja al creador del sistema.

A grandes rasgos, optimizar en A+B+C no es en absoluto lo mismo que el tratamiento descrito anteriormente.

 
Mathemat, creo que lo que quiere decir es recoger todo el montón (no olvides la combinatoria) de resultados, dividirlo en 4 conjuntos y descartar tres de ellos.
 
Mathemat:

Discrepo categóricamente, Vita. De lo contrario, no habría división de todos los datos en tres partes en las redes neuronales. Además, la optimización real sólo se realiza en la primera parte; la segunda sólo sirve para determinar el momento de finalización del entrenamiento, y la tercera es sólo para una prueba única.


Dividir los datos en redes neuronales en tres partes, sospecho, existe para aprender leyes (como 2x2=4), para revelar esos patrones. Y sólo si los hay. De lo contrario, la red neuronal se ajustará a la curva por sí misma.

Y entonces, como me pareció, la tarea del probador no es entrenar o detectar patrones, sino encontrar el conjunto óptimo de parámetros. Esto puede hacerse con algoritmos simples de fuerza bruta o genéticos, o tal vez con una red neuronal. Pero una vez que se ha encontrado un conjunto de parámetros óptimos para una muestra, ¿cómo evitar el ajuste de curvas? ¿El principio? ¿Cuáles son los elementos malos del conjunto que desaparecen cuando se hace la prueba fuera de la muestra?

 
lna01:
Vita:

--> El corte hace lo mismo (marcar, controlar). ¿Qué extra aporta el corte en comparación con una carrera directa?


La división filtra eficazmente la información. En términos de cantidad.

--> La división filtra los resultados con pérdidas en la muestra o fuera de la muestra, pero con ganancias totales agregadas. No es algo que quiera descartar.

Vita escribió (a):

--> Si por "procesar los resultados de la optimización sobre toda la muestra" te refieres a descartar el conjunto D, entonces no estoy de acuerdo - descartar los resultados que dan pérdidas intermedias (dentro de la muestra o fuera de la muestra) es una tarea elemental que se resuelve durante la propia optimización sobre toda la muestra, es decir, no es necesario ningún procesamiento después de la optimización. El resultado es el conjunto B inmediatamente. Y no hay que perder tiempo en comprobaciones adicionales fuera de la muestra.

¿Se refiere a la optimización en el sentido matemático o en el real? La muestra, según tengo entendido, incluye ahora ambas muestras. ¿Cree que puede ahorrar tiempo realizando tres series innecesarias sobre ambas muestras? En cuanto a la implementación, si escribes tu propio probador desde cero, quizás los costes de implementación sean insignificantes. Pruebe la aplicación, y luego podemos volver a la pregunta.

--> "El muestreo, tal y como yo lo entiendo, ahora incluye ambas muestras" - lo siento, no quería hacerte pensar eso. Olvídalo.

Lo que quería decir es que el probador real de MetaTrader permite obtener los mismos resultados al optimizar una población de muestra+sin muestra que al optimizar una muestra seguida de pruebas fuera de la muestra. En el probador, el botón "Propiedades del experto", y luego las pestañas "Pruebas" y "Optimización" le permiten deshacerse de las pérdidas de cualquier longitud y profundidad que desee. Y como me mantengo en que la optimización de una muestra seguida de una prueba fuera de muestra no elimina nada más y no añade nada en absoluto, esta es la solución al problema.

Desgraciadamente, es en el sentido matemático donde se puede conseguir una optimización perfecta de los parámetros bajo cualquier curva. El truco con como si la prueba "para el futuro" fuera de la muestra es una optimización oculta pero todavía la misma trivial en toda la poblacióndada de la muestra+fuera de la muestra. No hay garantías para el futuro, ni para deshacerse del ajuste de curvas. Hay que encontrar un conjunto de parámetros viable de otra manera.

 
La división de los datos en redes neuronales en tres partes, sospecho, existe para enseñar leyes (como 2x2=4), para revelar esos patrones.

Así es, Vita, para identificar patrones. ¿Y qué hacemos aquí? Se inventan dos conjuntos de datos más para evitar que esta identificación degenere en una "memorización" trivial de la población inicial (= curvafitting). En NS funciona así: aprendizaje sobre el conjunto A (conjunto de entrenamiento) hacia la reducción de la función objetivo (suele ser un error de predicción o clasificación). El aprendizaje se organiza de tal manera que el error en A disminuye monotónicamente.

Al mismo tiempo, se prueba el mismo error con los mismos parámetros en el conjunto B (conjunto de validación). Allí el error cambia como una función en cascada (primero baja, luego se minimiza y después sube). En cuanto se alcanza el mínimo de error en el conjunto B, el entrenamiento se detiene. Si se sigue entrenando en A, aunque el error disminuya, se produce una curva de ajuste, porque el error en el conjunto B ya empieza a crecer. En este punto, se dice que la capacidad de generalización de la red disminuye. Por eso el entrenamiento se detiene forzosamente, sin llevar el ajuste en A al límite (y ésta es la diferencia fundamental entre el algoritmo y el ajuste realizado por el optimizador de metacitas).

Por último, el conjunto de parámetros en el que se ha detenido el aprendizaje se ejecuta sobre el tercer conjunto C (el conjunto de prueba). Esta es la verdadera comprobación de la calidad de la formación, porque los datos de C no tienen ningún efecto sobre la formación anterior. Por supuesto no hay garantía de funcionamiento estable de NS con los parámetros encontrados, pero este algoritmo anula al menos el 95% de los pseudo-graves que son cada uno de los primeros aquí en el foro :).

Y una simple búsqueda en un solo fragmento de datos es el más puro curvafitting, ideal en el área de entrenamiento, pero sin valor fuera de ella.

Por supuesto que MT4 no es un programa de redes neuronales y habrá que rediseñar el algoritmo general, pero sigue siendo mejor que un ajuste de curvas trivial, que llamamos "optimización", jeje...

 
Vita:

Quería decir que el probador real de MetaTrader permite obtener los mismos resultados al optimizar una muestra + población fuera de la muestra que al optimizar una muestra seguida de una prueba fuera de la muestra. El botón "Propiedades del Asesor Experto" y las pestañas "Pruebas" y "Optimización" permiten deshacerse de pérdidas de cualquier duración y profundidad.

Todo depende de la definición de la tarea. Si no tenemos en cuenta el grado de uniformidad de la distribución de beneficios en el tiempo de prueba, las capacidades estándar del probador de MT son realmente suficientes y el tiempo empleado será comparable. ¿Merece la pena descuidar esto? Cada uno tiene su propia experiencia y puntos de vista. El proceso puede llamarse ajuste, pero creo que el término aproximación sería más preciso. No todas las aproximaciones pueden extrapolarse al futuro y el criterio de uniformidad de los beneficios sólo permite rechazar aquellas variantes que obviamente no son aptas para la extrapolación. En mi opinión, por supuesto.

 
Mathemat:

Y un simple rebasamiento en un solo dato es pura curvafitting, perfecta en la zona de entrenamiento y sin valor fuera de ella.

--> Exactamente, lo es.

Pero, ¿para qué sirve dividir la trama en fragmentos? ¿A qué conduce el "pseudoaprendizaje" en tres fragmentos diferentes? ¿Conduce a un beneficio en cada parcela individual? ¿Cómo es mejor ese ajuste? ¿Da una garantía de rentabilidad fuera de la parcela? Si crees eso, entonces por supuesto. Es más, el probador le ofrece la posibilidad de asfixiar la curva para que en cada fragmento A, B, C... que se obtiene un beneficio.

Sólo que prescindamos de las redes neuronales, porque ni siquiera se acercan a este tema. La gente está haciendo manualmente la molestia en aras de una ventaja dudosa, que, por cierto, he señalado, pero no han oído nada más de, de qué manera los resultados después de la optimización en la muestra y las pruebas en el fuera de la muestra son mejores que una ejecución trivial? Verás, estamos hablando de trabajo y resultados reales, no de teoría de redes neuronales. Serías tan amable de señalar alguna ventaja real, si es que aún la hay, aparte de la que he señalado.

Razón de la queja: