Para agregar a respuestas anteriores, comenzaremos desde el principio:
Hay pocas formas de adaptar sus modelos a los datos de entrenamiento, algunas son obvias, otras no tanto. Primero, y el más importante es el sobreajuste de los parámetros de entrenamiento (pesos) a los datos (parámetros de ajuste de curvas en regresión logística, pesos de red en redes neuronales, etc.). Luego modelaría el ruido en los datos: si sobreajusta, no solo captura la función generadora subyacente, sino también la aleatoriedad debido al tamaño de la muestra y al hecho de que la muestra no es una representación perfecta de la población. Este sobreajuste puede mitigarse en cierta medida penalizando ciertos atributos (en general, la complejidad) del modelo. Esto se puede hacer deteniendo el entrenamiento una vez que el rendimiento en la muestra del tren ya no mejora significativamente, eliminando algunas neuronas de una red neuronal (llamada abandono),https://ieeexplore.ieee.org/document/614177/ ) etc.). Sin embargo, estas estrategias de regularización están parametrizadas (¿cuándo se detienen ?, ¿cuántas neuronas eliminar? Etc.). Además, la mayoría de los modelos de aprendizaje automático tienen varios hiperparámetros que deben establecerse antes de que comience la capacitación. Y estos hiperparámetros se sintonizan en la fase de ajuste de parámetros.
Eso nos lleva al segundo y más sutil tipo de sobreajuste: sobreajuste de hiperparámetros. La validación cruzada se puede utilizar para encontrar los "mejores" hiperparámetros, entrenando repetidamente su modelo desde cero en los pliegues k-1 de la muestra y probando en el último pliegue.
Entonces, ¿cómo se hace exactamente? Dependiendo de la estrategia de búsqueda (dada por tenshi), usted establece hiperparámetros del modelo y entrena su modelo k veces, cada vez usando diferentes pliegues de prueba. Usted "recuerda" el rendimiento promedio del modelo en todos los pliegues de prueba y repite todo el procedimiento para otro conjunto de hiperparámetros. Luego, elige un conjunto de hiperparámetros que corresponde al mejor rendimiento durante la validación cruzada. Como puede ver, el costo de cálculo de este procedimiento depende en gran medida del número de conjuntos de hiperparámetros que deben considerarse. Es por eso que se han desarrollado algunas estrategias para elegir este conjunto (aquí voy a generalizar lo que dijo tenshi):
- Búsqueda de cuadrícula: para cada hiperparámetro enumera un número finito de valores posibles. Luego, el procedimiento se realiza exhaustivamente para todas las combinaciones de hiperparámetros enumerados. Obviamente, si tiene hiperparámetros continuos, no puede probarlos todos.
- Búsqueda de cuadrícula aleatoria: similar a la búsqueda de cuadrícula normal, pero esta vez no prueba todas las combinaciones exhaustivamente, sino que muestra una cantidad fija de veces para todos los valores posibles. Tenga en cuenta que aquí es posible no solo enumerar los valores posibles para un hiperparámetro, sino que también puede proporcionar una distribución para muestrear.
- BayesianSearch: la combinación de valores de hiperparámetros se elige para maximizar la mejora esperada de la puntuación. Para más información: http://papers.nips.cc/paper/4522-practical-bayesian-optimization-of-machine-learning-algorithms.pdf . Y una biblioteca que solo se ocupa de eso: https://github.com/hyperopt/hyperopt . Como no es tan fácil combinar con sklearn como lo que tenshi recomendó, úselo solo si no está trabajando con sklearn.
- Otras formas de búsqueda guiada en el espacio de hiperparámetros. Según mi experiencia, rara vez se usan, por lo que no los cubriré aquí.
Sin embargo, este no es el final de la historia, ya que los hiperparámetros también pueden (y lo harán) sobreajustar los datos. Para la mayoría de los casos, puede vivir con él, pero si desea maximizar el poder de generalización de su modelo, también puede intentar regularizar los hiperparámetros. Primero, puede evaluar el rendimiento de los datos fuera de la muestra un poco mejor mediante la búsqueda de cuadrícula anidada (detalles: http://scikit-learn.org/stable/auto_examples/model_selection/plot_nested_cross_validation_iris.html , discusión: validación cruzada anidada para la selección del modelo), o simplemente use un conjunto de validación que no se use para el ajuste de hiperparámetros. En cuanto a la regularización en el espacio de hiperparámetros, es una pregunta más o menos abierta. Algunas ideas incluyen elegir no el mejor conjunto de valores de hiperparámetros, sino algo más cercano al medio; El razonamiento es el siguiente: los mejores valores de hiperparámetros probablemente sobreajusten los datos solo porque funcionan mejor que los otros datos del tren, los parámetros malos son simplemente malos, pero los que están en el medio pueden lograr una mejor generalización que los mejores. . Andrew Ng escribió un artículo al respecto. Otra opción es limitar su espacio de búsqueda (está regularizando introduciendo un fuerte sesgo aquí; los valores fuera del espacio de búsqueda nunca se seleccionarán obviamente).
Observación secundaria: usar la precisión como una métrica de rendimiento es, en la mayoría de los casos, una muy mala idea, analizar las puntuaciones f1 y f_beta: estas métricas en la mayoría de los casos reflejarán mejor lo que realmente está tratando de optimizar en problemas de clasificación binaria.
Para resumir: la validación cruzada en sí misma se usa para evaluar el rendimiento del modelo en datos fuera de la muestra, pero también se puede usar para ajustar hiperparámetros junto con una de las estrategias de búsqueda en el espacio de hiperparámetros. Encontrar buenos hiperparámetros permite evitar o al menos reducir el sobreajuste, pero tenga en cuenta que los hiperparámetros también pueden sobreajustar los datos.