¿Cómo puedo evitar el sobreajuste?

En resumen, las estrategias generales son

  1. recopilar más datos
  2. usar métodos de ensamblaje que modelen “promedio”
  3. elegir modelos más simples / penalizar la complejidad

Para el primer punto, puede ser útil trazar curvas de aprendizaje, trazar el entrenamiento versus el rendimiento de validación o validación cruzada. Si observa una tendencia de que más datos ayudan a cerrar el límite entre los dos, y si puede permitirse el lujo de recopilar más datos, entonces esta sería probablemente la mejor opción.

En mi experiencia, el ensamblaje es probablemente la forma más conveniente de construir modelos predictivos robustos en conjuntos de datos de pequeño tamaño. Como en la vida real, consultar a un grupo de “expertos” no suele ser una mala idea antes de tomar una decisión;).

Con respecto al tercer punto, generalmente comienzo una tarea de modelado predictivo con el modelo más simple como punto de referencia: generalmente regresión logística. El sobreajuste puede ser un problema real si nuestro modelo tiene demasiada capacidad: demasiados parámetros del modelo para ajustarse y demasiados hiperparámetros para ajustar. Si el conjunto de datos es pequeño, un modelo simple siempre es una buena opción para evitar el sobreajuste, y también es un buen punto de referencia para la comparación con alternativas más “complejas”.

Supongo que su pregunta no solo será evitar el sobreajuste, sino también tener en cuenta la falta de ajuste, lo que significa que su modelo es mucho más simple para adaptarse a un modelo relativamente bueno.
<1> Entonces, antes que nada, echemos un vistazo a un caso exagerado,
[1] Del libro de Christoph Bishop: reconocimiento de patrones y aprendizaje automático.
Los puntos azules son datos observados [matemática] X = \ {x_1, \ ldots, x_n \} [/ matemática] asociados con un modelo de ruido:
[math] f (x) = sin (x) + \ epsilon [/ math], donde [math] \ epsilon [/ math] podría ser un ruido gaussiano de media cero.
Si usa una función de 9 polinomios muy compleja para ajustar los datos, la línea roja es lo que tiene. Y esto es lo que llamamos “Overfitting”. En este caso, el polinomio hace todo lo posible para adaptarse a los datos vistos, mientras que los ruidos dominan la ganancia de información.
<2> Ahora el mismo caso, pero con más datos observados
Como es de esperar, la función se está suavizando, incluso con un ajuste de curva de 9 polinomios. En este caso, las narices se promedian para no dominar el escenario. Entonces, la primera contramedida del sobreajuste es
Sol. (1): ¡INTENTE OBTENER MÁS DATOS DE ENTRENAMIENTO!


¿Qué pasa si no es posible obtener más datos? (En muchos casos reales, es una desgracia). Luego, debemos recurrir para controlar la complejidad de su función estimada [matemáticas] f (x) [/ matemáticas], que generalmente se puede hacer de las siguientes maneras.
Sol. (2): VALIDACIÓN CRUZADA o SELECCIÓN DE MODELO
Esto es bastante sencillo. El objetivo es detectar un parámetro de modelo óptimo, por ejemplo, exponentes de potencia, plazo de penalización, etc. Para ello, debe evaluar su modelo varias veces con varias configuraciones, más un criterio de evaluación adecuado, por ejemplo, la tasa de error, la puntuación F1 , y elegir el que tenga la salida óptima.
Sol. (3): REGULARIZACIÓN
Esta técnica se usa comúnmente en muchos modelos, incluso si el modelo no está configurado con la adición de un término de regularización al principio, de alguna manera se puede convertir como equivalente a una regularización. La idea básica es bastante simple.
[matemáticas] W = \ suma V (f (x_i), t_i) + \ lambda \ Omega (f) [/ matemáticas]
La [matemática] V (\ cdot) [/ matemática] es una función de pérdida del error empírico de las observaciones. Y [math] \ Omega (f) [/ math] es el término de penalización, lo que significa que la complejidad de [math] f [/ math] también debe considerarse lo más pequeña posible. El coeficiente [math] \ lambda [/ math] controla la compensación de la pérdida empírica y la complejidad. Tenga en cuenta que si este objetivo es convexo, la solución es única.
Una cosa más….
Vale la pena mencionar también la descomposición del sesgo-varianza. Cuando solo tiene unos pocos puntos de datos y trata de entrenarlo con una función muy compleja, es muy posible que golpee el sobreajuste. Si repite este proceso muchas veces, también notará que la función [matemática] f (x) [/ matemática] que obtiene es diferente de vez en cuando. Esto es lo que llamamos variación, donde su modelo es bastante inestable. Esto es muy fácil de entender desde arriba, porque su modelo está dominado por los ruidos aleatorios, incluso su error de entrenamiento (Bias) es mínimo. También hay una compensación entre Bias y Variance, que es un papel central en Machine Learning.
Espero que esta respuesta también sea útil con respecto a los brillantes ya existentes.

Si su objetivo es la predicción (como es típico en el aprendizaje automático) en lugar de la adaptación del modelo / prueba de parámetros (como es típico en la estadística clásica), entonces, además de las excelentes respuestas proporcionadas por los otros encuestados, agregaría un punto más.

Sea muy riguroso en los pasos de capacitación y validación. NO SE ADAPTE A LOS DATOS DE VALIDACIÓN.

Esto suena muy obvio, pero te sorprendería con qué frecuencia sucede esto … generalmente de esta manera insidiosa.

Considere este ciclo de vida de modelado típico seguido por nuestro protagonista:

Nuestro héroe divide el conjunto de datos en un conjunto de entrenamiento y un conjunto de espera para la validación. Luego aplica su bolsa de trucos favorita al conjunto de entrenamiento. Finalmente, obtiene tasas de error del 5% mediante validación cruzada en el conjunto de entrenamiento. Sintiéndose bastante confiado en este modelo, nuestro héroe lo aplica a los datos de reserva.

Lamentablemente, la fortuna no le sonríe: error de predicción del 50%.

Entonces, nuestro héroe, siendo un investigador diligente, trata de descubrir dónde falló el modelo. Y descubre que solo algunas pequeñas correcciones al modelo producen un error del 10% en los datos de validación.

Genial verdad? ¡NO! El modelo ahora se ha ajustado a los datos de validación: los nuevos resultados son demasiado ajustados y efectivamente inútiles. BOOM!

Moraleja de la historia:

Absolutamente no mire los datos de reserva hasta el final. Realice todos los ajustes, la selección del modelo, etc. en el conjunto de entrenamiento.

Y si el modelo falla en la resistencia, mala suerte. ¡Pero no ejecute diagnósticos en la muestra externa y NO ajuste el modelo basándose en los resultados de la muestra!

De hecho, en muchas aplicaciones de misión crítica del aprendizaje automático (por ejemplo, el comercio), se piensa que el conjunto de datos se quema de manera efectiva y el modelador debería pasar a un problema diferente.

Este es, IMO, uno de los mayores defectos de gran parte de la investigación académica y por qué muchos métodos que se ven bien en el papel fallan en la práctica.

El sobreajuste ocurre cuando un modelo ajusta el ruido por error junto con la señal. En el contexto de los modelos de regresión lineal, consulte AIC, Criterio de información de Akaike, que es muy fácil de aplicar como prueba. Cuando la intención de un modelo es maximizar la probabilidad de registro, la literatura favorece el BIC, Criterio de Información Bayesiano, también conocido como criterio de Schwartz.

Desde el punto de vista de la teoría de la información, la intención de un modelo es una codificación óptima, y ​​aquí las otras medidas son casos especiales de MDL, Longitud mínima de descripción (piense en la compresión o la Navaja de afeitar de Occam en demasiadas variables explicativas 🙂 Para aprovechar al máximo sus datos, adapte algunas de las prácticas de partición de bootstrapping (Efron), y vea, por ejemplo, cómo se realizan los ajustes dentro de la muestra cuando realiza predicciones fuera de la muestra. que sería analíticamente intratable para modelos complejos no lineales). Todo está en el arte de ignorar la precisión ilusoria mediante la combinación de modelos robustos.

Edición de 2015 : para tener una idea de la práctica, consulte Validación cruzada para series de tiempo de Adriano Stephan en cómputo donde recomiendo la publicación de compensación de Bias-Variance para comprender el ajuste excesivo en general.

Para elaborar sobre W. Chen muy buena respuesta.

Tiene 24 puntos de datos y un espacio de características tridimensional. Eso es muy pocos puntos de datos o muy alta dimensión.

Un buen R ^ 2 significa que tiene un “error de entrenamiento” bajo pero, por supuesto, puede estar sobreajustado. Como puedes saber Desea evaluar el error de generalización, que es el error que comete en puntos de datos invisibles.

Para eso puedes hacer una validación cruzada 4 veces. Eso es lo que haría si tuviera un millón de puntos. Pero en su caso, como solo tiene 24 puntos, debe aprovecharlo al máximo e incluso realizar una validación cruzada de 24 veces, ya que no le costará mucho en términos de potencia computacional.

Lo que significa que deja de lado 1 punto, calcula su mejor estimador lineal en los 23 puntos restantes y el error que comete para el primer punto usando este estimador. Repite para todos los puntos y promedia el error.

Eso le dará la mejor evaluación que puede obtener de su error de generalización. Y eso es lo que quieres minimizar.

Si tiene una diferencia significativa entre el error de generalización y el error de entrenamiento, entonces probablemente esté sobreajustando.

¿Cómo curar eso?
Tienes que reducir la dimensionalidad de tu modelo. Lo que significa que, en lugar de mantener 3 variables independientes, reduce este número a 2 o 1. Esto debería aumentar el error de entrenamiento (R ^ 2 es menos bueno) pero podría mejorar el error de generalización. ¡Y eso es lo que quieres!

¿Cómo reducir la dimensionalidad?
Puede ir al Análisis de componentes principales. El primer componente principal (el que tiene el valor singular más alto) le dará la mejor combinación de sus 3 variables independientes. Lo que significa que si mantiene solo esta combinación de características y realiza una regresión lineal, tendrá el mejor R ^ 2 en comparación con todas las demás combinaciones lineales posibles de características.
Básicamente, la filosofía detrás de esto es que asume que toda la información relevante en el sistema está contenida en esta primera combinación lineal de las características y el resto es ruido (lo que conducirá a un sobreajuste si usa estas características ruidosas en su regresión).
Y, por supuesto, también puede hacer lo mismo manteniendo las 2 primeras PC y nuevamente calcular el error de entrenamiento y el error de generalización.

Al final, tiene algo como esto (imagen tomada de pca – Prueba de si los valores propios pequeños producen una “señal” – Validación cruzada):

Aquí la Complejidad del modelo es la cantidad de PC que conserva. Y tal vez verá que la mejor opción corresponde a mantener un modelo de complejidad = 2 y que agregar el último mejora R ^ 2 pero le da el peor error de generalización (= validación cruzada).

En el contexto de modelos que usan pesos para características como Regresión logística o Máquinas de vectores de soporte, el uso de controles de regularización (regularización L2 o L1) sobreajusta. El parámetro de costo de regularización le brinda una forma de controlar qué tan fuerte se ajustan a los datos. Si lo ajusta para que el modelo se ajuste fuertemente a los datos, corre el riesgo de sobreajustar, pero si lo configura demasiado alto, el modelo no se ajustará a los datos con la suficiente fuerza y ​​no será efectivo. Como han mencionado otras personas, la mejor manera de controlar esto es retener una pequeña porción de datos (o hacer una validación cruzada) y ajustar el parámetro de costo para obtener el mayor rendimiento en estos datos.

Si bien la regularización es bastante popular para el aprendizaje supervisado de clasificadores, otro método que ha sido bastante popular recientemente para el aprendizaje no supervisado es el uso de probabilidades previas no paramétricas bayesianas en los modelos. Estos ayudan a penalizar la complejidad del modelo de una manera similar a la longitud mínima de descripción (que se mencionó anteriormente). Esto, a su vez, ayuda a prevenir el sobreajuste.

Ankit Awasthi, co-CEO de una empresa global de comercio de alta frecuencia, y he hablado sobre los pasos para eliminar el sobreajuste en el comercio de ciencia de datos.

TL; DR: (1) Realice pruebas futuras y no posteriores (2) Medición de avance

En este video (grupo de encuentro Data Science + FinTech en el área de la ciudad de Nueva York), lo que hemos enfrentado en esta área y las reglas generales que hemos aprendido. Si está en el campo del comercio basado en la ciencia de datos, le resultará útil.

Esta es una de las habilidades más importantes de un científico de datos, y una que realmente no se nos enseña en la escuela. Gran parte de la complejidad puede ser muy dependiente del dominio también.

Algunos me consideran un experto en el campo de “algo-trading” y “machine-learning en finanzas”. La mayoría de las personas que me preguntan cómo detectar los quants buenos de los quants malos, hablo de una cosa

Asegúrese de que el administrador de cartera no se ajuste demasiado.

Diapositivas aquí: Invertir es una ciencia

¿Qué hace que una buena estrategia cuantitativa y un buen administrador de inversiones?

La conclusión es que debemos entregar lo que anunciamos. Ya sea que trabajemos en una empresa comercial propietaria o en un roboadvisor, debemos ofrecer el rendimiento que anunciamos.

TL; DR: Debemos asegurarnos de que no haya un ajuste excesivo en los resultados que calculamos para la estrategia.

Más aquí

¿Cómo debería funcionar un quant para no sobreajustar?

Permítanme tratar de explicar el problema que enfrentamos cuando operamos. Cuando me uní a algo-trading de PhD, estaba decidido a hacer que mi trabajo durara para siempre. Estaba decidido a encontrar estrategias que funcionen para siempre. Traté de tomar la mayor cantidad de datos posible al hacer modelos, pero me encontré con el problema de que los datos antiguos no eran muy relevantes. Traté de utilizar el enfoque de dividir datos entre entrenamiento y pruebas. Sin embargo, hubo un problema. Los datos más recientes son los más relevantes en algo-trading. No tiene sentido no incluirlo.

Una estrategia comercial centrada en el día generalmente se basa en un “modelo” de mercados y un conjunto de parámetros “paramset”, que utilizamos para tomar decisiones comerciales. Un enfoque de la vieja escuela para encontrar buenas estrategias comerciales era tomar un montón de datos y encontrar el modelo y el parámetro que hubieran tenido las mayores ganancias en esos datos. Veamos algunas mejoras que los gerentes de cartera cuantitativa emplearon en un esfuerzo por reducir el ajuste excesivo a datos pasados ​​y mejorar las ganancias comerciales en datos futuros no vistos.

  1. Primero sería tomar muchos datos. Sin embargo, esto no siempre funciona. Explicaré esto mejor en el punto 3. La respuesta corta es que los mercados cambian y los datos antiguos se vuelven menos relevantes.
  2. Una mejora en el paso de optimización de la búsqueda de estrategias fue cambiar el criterio de búsqueda de ganancias más altas a una medida de ganancias más estable como Sharpe Ratio. La motivación fue que estamos buscando estrategias que tengan un flujo de ingresos estable y no solo uno que hubiera ocasionado una ganancia inesperada ocasional. Las estrategias con fuentes esporádicas de rentabilidad pueden tener largos parches en el futuro sin rentabilidad.
  3. Otra mejora realizada por la comunidad cuantitativa fue dividir los datos en datos de entrenamiento y datos de prueba cada vez que el modelo fue reentrenado. El administrador de la cartera, también conocido como PM, se aseguraría de elegir solo modelos cuyo rendimiento no se degrade sustancialmente entre el período de entrenamiento y el período de prueba. Sin embargo, a menudo era muy difícil emplear este método en las finanzas. Déjame explicarte por qué. Hay frecuentes cambios de régimen en las finanzas. Las correlaciones entre los diferentes productos cambian. La volatilidad del mercado puede cambiar, de repente puede volverse mucho más volátil de lo que solía ser antes. Existe una gran cantidad de investigaciones que muestran la heterocedasticidad en los mercados y que la volatilidad en los mercados aumenta rápidamente y disminuye lentamente. Un primer ministro que intente encontrar una estrategia para negociar mañana probablemente pensará que los datos de hoy son los más relevantes, y que los datos de ayer serán relevantes. No les importarían los datos hace un año, por ejemplo. Ahora, si incluimos los datos de hoy en el entrenamiento, no podemos incluirlos en el período de prueba. Entonces, incluso si los resultados se deterioran en las pruebas, el primer ministro podría sentir que el deterioro es de esperar y la capacitación sobre los datos más recientes les ha permitido capturar la estacionalidad en las finanzas. Esta es la razón por la cual el método tradicional de dividir datos entre capacitación y pruebas no funciona en las finanzas.

Incluso con todo el trabajo anterior, hay evidencia establecida de la degradación de los resultados entre el backtest y el rendimiento comercial real Suhonen2016. Creemos que no hay nada fundamentalmente malo en un administrador de cartera que utiliza datos disponibles recientemente para volver a capacitar sus modelos. La única mejora que pueden hacer es encontrar datos en el pasado que sean conductualmente muy similares a los datos recientes. Sin embargo, la principal fuente de degradación de los resultados es la forma en que medimos el rendimiento esperado.

En la vida real, el administrador de la cartera estaría realizando cambios periódicamente en función de los nuevos datos. Por ejemplo, si el mercado se ha vuelto muy volátil y vemos que nuestro parámetro no está bien ajustado a este nuevo régimen, el administrador de cartera querrá recalibrar el parámetro a este nuevo régimen, ya que generalmente continúa por un tiempo. En este proceso de reentrenamiento, como sucede la mayoría de las veces, el PM terminará eligiendo un parámetro que haga que los resultados probados se vean bien. Estos resultados probados serían una predicción demasiado optimista de lo que es probable que veamos en el comercio real si comerciamos con la estrategia recientemente reentrenada.

La forma correcta de medir las ganancias esperadas requeriría que veamos este proceso de actualización de la estrategia como una parte esencial de la tubería y asegurarnos de que nunca medimos las ganancias esperadas en un día de negociación con una estrategia que se habría construido mirando datos no disponibles hasta el día antes.

¿Cuál es el desafío al usar la optimización Walk-Forward?

La optimización de avance es la forma correcta de optimizar un modelo. Sin embargo, nos obligaría a bajar la vista. Por ejemplo, es muy fácil para mí encontrar una estrategia que hubiera tenido un Sharpe Ratio de 2 en los últimos veinte años. ¡Solo compre bonos! Para aquellos que no conocen Sharpe of 2 es bastante impresionante. Incluso Warren Buffett solo ha logrado un Sharpe de 0.73. El problema es que no sabía que los bonos hubieran disfrutado de una relación de Sharpe de 2.

Gracias por el A2A!

Referencias

  • Documento de investigación sobre cómo evitar el ajuste excesivo de datos pasados ​​al hacer estrategias comerciales
  • Cómo eliminar el sobreajuste en el comercio
  • Cómo evitar el sobreajuste en las estrategias comerciales

Mantenlo simple

Opta por modelos más simples sobre modelos más complicados. En general, cuantos menos parámetros tenga que ajustar, mejor. Si puede eliminar uno de sus parámetros sin aumentar significativamente el error (predicción fuera de la muestra), ¡genial!

Validación cruzada

Una forma estándar de encontrar un error de predicción fuera de la muestra es usar una validación cruzada de 5 veces. En este caso, puede probar la validación cruzada 4 veces. Use 18 puntos de datos para construir el modelo y luego evalúe el error en los 6 puntos de datos que quedan fuera del modelo. Repita esto 4 veces, usando un conjunto diferente de 6 puntos de datos cada vez. Este es un mejor representante del error que esperaría cuando intente predecir un valor futuro, en lugar de cuán bien puede ajustar los datos disponibles.

Regularización

Algún tipo de regularización puede ayudar a penalizar ciertas fuentes de sobreajuste. Uno común que puede usar en modelos lineales es la Regresión de cresta (también conocida como regularización de Tikhonov) o LASSO, donde penaliza su modelo si la suma de las normas de las pendientes es demasiado alta.

Contar una historia

¿Puedes justificar por qué tus predictores están en el modelo? Las posibilidades de ajuste en patrones espurios son mayores si no puede explicar por qué su modelo es así (por eso las redes neuronales son sospechosas cuando intenta ajustar datos en una señal débil). Comprenda por qué cada predictor realmente da señal en la predicción.

Ser escéptico

Lamentablemente, muchos resultados iniciales son incorrectos. Con experiencia, puede desarrollar un instinto sobre lo que está mal y lo que está bien, y asegúrese de probar su modelo a fondo antes de compartirlo o publicarlo.

William Chen da una muy buena respuesta. Agregaría una arruga al enfoque de validación cruzada porque sus observaciones no son independientes (el orden de las observaciones tiene significado). Debería hacer una validación cruzada de series de tiempo.

http://robjhyndman.com/hyndsight

Básicamente, está evaluando la capacidad de los modelos para predecir la ventana de tiempo que está fuera de su conjunto de entrenamiento.

Entrene un modelo con solo los primeros 3 años de datos. Predice el año 4 usando tu modelo. Calcule MSE para el año 4. Entrene un modelo con los primeros 4 años de datos. Predecir el año 5. Calcular MSE para el año 5. Modelo de tren con los primeros 5 años de datos. Predecir y calcular MSE para el año 6.

Tome el promedio de MSE para los años 4, 5 y 6. Llame a este valor su MSE esperado.

Entrene a su modelo con 6 años de datos. Su pronóstico para el año 7 debe tener un MSE que sea similar a su MSE esperado.

  1. Agregue un término de regularización (L1, L2, puntaje BIC, probabilístico previo) a su función objetivo.
  2. Use un conjunto de validación (un subconjunto de sus datos que no se utilizará durante el entrenamiento) y elija los parámetros que se desempeñen mejor en él.

Las respuestas anteriores son apropiadas para los problemas generales relacionados con el ajuste excesivo, pero no para su caso específico. La respuesta a su pregunta depende de su objetivo de modelado. Si su intención es medir la tendencia en el período de tiempo existente, entonces sus métricas de bondad de ajuste (como R2) le están diciendo lo que necesita saber. 24 puntos de datos no son muchos datos para estimar cuatro parámetros, pero si la señal en los datos es fuerte, entonces puede estar bien. Puede hacer una regresión gradual comparando los valores de AIC para el modelo completo y los modelos reducidos. Esto le dirá si está o no mejor con un modelo más pequeño.

Sin embargo, si su objetivo es utilizar este modelo para predecir los valores futuros, sus preocupaciones son bastante diferentes. Toda predicción estadística se basa en el supuesto de que el futuro se comportará como el pasado. Esta suposición podría ser bastante débil cuando tiene tan pocos datos para continuar. Debe evaluar cada parámetro del modelo y decidir si es probable que el proceso reflejado por ese término del modelo continúe comportándose de esa manera en el futuro.

Como ejemplo concreto, imagine que tiene un modelo de serie temporal que predice pulgadas de lluvia la próxima semana. Si todos sus datos son del mes de junio, será un mal predictor de lluvia en diciembre. Pero puede ser un buen predictor de lluvia en julio. Sin embargo, si sus datos se extienden a lo largo de todo el año, puede ser igualmente malo predecir julio y diciembre, ya que no hay suficientes datos para medir adecuadamente la variación a lo largo de un año.

El resultado final: describir lo que sucedió es un objetivo fundamentalmente diferente de predecir lo que sucederá. Su proceso de construcción de modelos debe reflejar eso.

El sobreajuste implica modelar el ruido y la señal. El sobreajuste puede depender de su objetivo de modelado: ya sea para pruebas de hipótesis, pronósticos o análisis de políticas. En otras palabras, los criterios para sobreajustar son
depende de este objetivo. Necesitarás al menos una exogeneidad débil de nuestro
variables explicativas para la construcción de modelos si desea probar hipótesis de manera confiable, pero necesitará una fuerte exogeneidad de esas variables si desea pronosticar, y necesitará una súper exogeneidad si desea aplicar su modelo a la evaluación de políticas. Ver Engle, Hendry y Richard (1983) para su artículo titulado “Exogeneidad” en Econometrica (51).
Existen múltiples métodos para asegurar estos criterios. Un libro recomendado es la antología de Neil Ericsson y Jeremy Iron “Testing Exogeneity (1994)”.
Para asegurar la parsimonia del modelo, puede ajustar el modelo con un criterio de Schwartz.
Puede probar la exogeneidad débil al construir un modelo parcial y observar el efecto de disminuir la distribución marginal.
Segmentar sus datos en una estimación y una muestra de validación ayuda. Es posible que desee pronosticar su muestra de validación, después de lo cual puede evaluar su pronóstico para la precisión. El profesor Fang en Princeton le recomienda que invierta la dirección, repita el proceso y luego observe los errores de pronóstico comunes a ambos pronósticos. Para una fuerte exogeneidad, no querrá retroalimentación ni retroalimentación en ecuaciones dinámicas simultáneas. Para una súper exogeneidad, necesitará tanto la no causalidad de Granger como la constancia de los parámetros de las variables explicativas en el modelo condicional para mantener.
En modelos de espacio de estado o componentes no observados, no es difícil examinar las relaciones q de los componentes para evaluar la situación.

El método mejor y más eficiente es la ‘ Optimización Walk Forward ‘. Todos los desarrolladores de sistemas comerciales aficionados o profesionales conocerán los conceptos de Backtesting y Optimización. De hecho, es la parte más integral del desarrollo del sistema algorítmico. Sin embargo, de lo que la mayoría de la gente no es consciente es de cómo interpretar los resultados de las pruebas y la optimización. Esto lleva a una trampa y las personas pierden suficiente dinero incluso cuando se demostró que el sistema comercial era rentable durante las pruebas retrospectivas. Walk Forward Optimization es un método importante para determinar la solidez o credibilidad de su sistema de negociación. Al igual que la optimización simple, también es un proceso para determinar los mejores parámetros para su sistema de negociación. Sin embargo, en Walk Forward Optimization, el sistema está optimizado para un período particular de datos para encontrar los mejores parámetros, y los parámetros obtenidos se prueban en los datos que siguen a ese período (conocidos como datos directos). Si los parámetros parecen rentables en ambos conjuntos de datos, el sistema se considera confiable. Este proceso se repite en múltiples fragmentos de datos para llegar a los mejores parámetros. El propósito básico de Walk Forward Optimization es evitar el ajuste de curvas en una optimización simple.

Antes de realizar una prueba o optimización, es necesario configurar los datos requeridos, que son los datos históricos de un período de tiempo específico. Este segmento de datos históricos se divide en los siguientes dos tipos:

  • Datos en muestra : es un segmento anterior de datos de mercado (datos históricos) reservados para fines de prueba. Estos datos se utilizan para la prueba inicial y cualquier optimización y son los parámetros originales de un sistema bajo prueba.
  • Datos fuera de la muestra : es el conjunto de datos reservado (datos históricos) que no forma parte de los datos dentro de la muestra. Es importante ya que esto garantiza que el sistema se pruebe en otro período de datos históricos no antes, eliminando así cualquier sesgo o influencia en la verificación del rendimiento del sistema.

El proceso consiste en desarrollar primero un sistema de negociación utilizando datos dentro de la muestra y luego aplicar los datos fuera de la muestra al sistema. Los resultados de ambos casos se pueden comparar y probar. Todo el proceso de optimización de Wak Forward se puede entender mejor utilizando el siguiente gráfico:

Consulte el siguiente enlace para obtener instrucciones sobre la optimización de Walk Forward en Amibroker:

Optimización y prueba de Walk Forward – Tutorial de Amibroker – Matrículas comerciales

Evite ajustar el ” ruido ” en los datos.

Hágalo aprendiendo con el menor número posible de parámetros .

El modelo simple resultante será muy limitado en los patrones de ajuste en los datos que no son parte de la señal real , y están ahí solo porque tiene un conjunto de entrenamiento finito .

Pero si se vuelve demasiado simple, es posible que no pueda capturar los patrones reales en los datos (es como la quimioterapia; ataca las células cancerosas y, desafortunadamente, también las células sanas).

El truco consiste en construir un algoritmo de aprendizaje que asuma conocimiento previo que sea adecuado para sus datos y su tarea (por ejemplo, el vecino más cercano asume que los puntos de datos cercanos tienen etiquetas similares).

De esa manera, aunque sintonice menos parámetros, su clase de hipótesis contiene una mayor proporción de funciones sensibles. Como resultado, tiene una menor probabilidad de aprender una hipótesis engañosa (también conocida como sobreajuste) y una mayor probabilidad de encontrar una buena hipótesis (debido a las sugerencias que le dio al algoritmo) .

Me gustaría presentar una opinión sobre el tema en lugar de una receta (que ya están cubiertas por las otras respuestas).

Estas recetas generalmente abordan la cuestión de si un modelo es probablemente un sobreajuste al tratar de expulsar la hipótesis de que no lo es. Eso es diferente de la pregunta de si un modelo NO es un sobreajuste. Todos lo abordan de una manera en muestra, porque simplemente no tiene datos (todavía).

Y lo que es peor, es posible que haya producido un sobreajuste en el nivel de los hiperparámetros del modelo o la selección de la clase de modelo (porque posiblemente descarte aquellas clases de modelo que no pasan su prueba, que nuevamente utilizaron TODOS los datos).

Volviendo a su pregunta: no puede evitar el sobreajuste. Pero puede disminuir las posibilidades de que sus modelos lo hagan y rechazar los modelos que lo hacen.

Tengo cierta credibilidad de responder a estos datos: trabajo en el dominio de las telecomunicaciones y generalmente tengo datos de clientes que tienen millones de filas. Siempre enfrentamos un problema de sobreajuste e intentamos minimizarlo. A continuación se detallan algunos métodos que aplicamos, lo que se aplica a todos los demás trabajos de ciencia de datos:

Obtenga los datos correctos

Todas las estadísticas en el mundo y la ciencia de datos no pueden ayudarlo si no tiene los datos correctos. Si no debería tener demasiada información faltante, y debería haberse capturado correctamente. Además, es importante que tenga datos sin procesar con usted, no datos resumidos para trabajar.

Muestreo

Esta es la tarea más importante.

Los datos de capacitación, que usará para el modelo de aprendizaje, deben seleccionarse al azar de los datos disponibles. Nunca debería ser el caso en el que toma el primer 70% de los datos para modelar y los datos de descanso para fines de prueba. Siempre debe tomar una muestra aleatoria para aprender, y descansar para valorar el modelo.

Usar enfoque de conjunto

No confíe en un solo modelo para obtener los resultados correctos. Utilice varios algoritmos combinados para la salida. La mayoría de las veces da buenos resultados.

William Chen golpeó la cabeza con clavos con sus respuestas. Mis puntos son extensión de su respuesta.

Podemos evitar el sobreajuste siguiendo dos formas:

  1. Reduce la cantidad de funciones.
  1. Selecciona manualmente qué características mantener.
  2. Algoritmo de selección de modelo.
  • Regularización
    1. Mantenga todas las características, pero reduzca la magnitud o los valores de los parámetros de las características.
    2. Funciona bien cuando tenemos muchas características, cada una de las cuales contribuye un poco a predecir los valores deseados.

    Ref: Curso de Machine Learning en Coursera de la Universidad de Stanford.

    Pruebe una combinación de los siguientes enfoques:

    1) Elimine las funciones redundantes (agregan ruido y probablemente confunden al clasificador). Intente usar la selección de funciones (adelante, atrás, etc.) [1]

    2) Use dos niveles de validación cruzada Test / Train / Validation [2]

    3) Intente utilizar una gran cantidad de datos diversos al entrenar su modelo

    4) Si es posible, asegúrese de que el número de características no sea mucho mayor que el número de muestras de entrenamiento (maldición de dimensionalidad). Si no puede evitar esta situación, hay formas de mitigarla. (es decir, reduzca el espacio de sus características utilizando una transformación como el Análisis de componentes principales (PCA) [3]

    5) Escala / Normaliza tus datos.

    [1] http://en.wikipedia.org/wiki/Fea
    [2] http://en.wikipedia.org/wiki/Cro
    [3] http://en.wikipedia.org/wiki/Pri

    Una adición a la respuesta de William Chen: ¡no te olvides de probar al humano también! Si bien la validación cruzada y la regularización evitarán que la computadora se ajuste demasiado, también debe guardar un conjunto de prueba de usted mismo, que usará después de que haya terminado con la ingeniería y selección de características, y la creación y selección de modelos. Aquí hay una buena discusión sobre otro método inteligente de sobreajuste: http://hunch.net/?p=22

    En general, el sobreajuste aumenta con la complejidad del modelo.

    Los modelos rígidos simples ajustan los datos y tienen grandes errores en valor absoluto. A medida que aumenta la complejidad del modelo, describe la estructura subyacente de los datos de entrenamiento cada vez mejor, y con esto, el error disminuye.

    Si el modelo es demasiado complejo, se sobreajusta a los datos de entrenamiento y su error de predicción aumenta nuevamente.

    Algunos trucos para controlar el sobreajuste son:

    1-Use un conjunto más pequeño de atributos que simplifique los modelos y los haga más fáciles de interpretar por los usuarios. También requiere un entrenamiento más corto y reduce el sobreajuste.

    2- También para evitar el sobreajuste, es importante que el conjunto de datos utilizado para entrenar la fase de postprocesamiento no sea el mismo que el usado para entrenar el modelo de reconocimiento de actividad.

    3- Uso de técnicas de validación cruzada.