Uso de validación cruzada anidada

14

La página de Scikit Learn sobre Selección de modelos menciona el uso de validación cruzada anidada:

>>> clf = GridSearchCV(estimator=svc, param_grid=dict(gamma=gammas),
  ...                    n_jobs=-1)  
>>> cross_validation.cross_val_score(clf, X_digits, y_digits)

Se realizan dos bucles de validación cruzada en paralelo: uno mediante el estimador GridSearchCV para establecer gamma y el otro mediante cross_val_score para medir el rendimiento de predicción del estimador. Las puntuaciones resultantes son estimaciones imparciales de la puntuación de predicción en los nuevos datos.

Por lo que entiendo, clf.fitutilizará la validación cruzada de forma nativa para determinar la mejor gama. En ese caso, ¿por qué necesitaríamos usar cv anidado como se indicó anteriormente? La nota menciona que el cv anidado produce "estimaciones no sesgadas" del puntaje de predicción. ¿No es ese también el caso clf.fit?

Además, no pude obtener las mejores estimaciones de clf del cross_validation.cross_val_score(clf, X_digits, y_digits)procedimiento. ¿Podría aconsejarme cómo se puede hacer eso?

xbsd
fuente

Respuestas:

18

La validación cruzada anidada se utiliza para evitar estimaciones de rendimiento sesgadas de manera optimista que resultan del uso de la misma validación cruzada para establecer los valores de los hiperparámetros del modelo (por ejemplo, el parámetro de regularización, Cy parámetros del kernel de una SVM) y estimación del rendimiento. Escribí un artículo sobre este tema después de estar bastante alarmado por la magnitud del sesgo introducido por un atajo aparentemente benigno que a menudo se usa en la evaluación de máquinas de kernel. Investigué este tema para descubrir por qué mis resultados fueron peores que otros grupos de investigación que utilizan métodos similares en los mismos conjuntos de datos, la razón resultó ser que estaba usando validación cruzada anidada y, por lo tanto, no me beneficié del sesgo optimista.

GC Cawley y NLC Talbot, Ajuste excesivo en la selección del modelo y posterior sesgo de selección en la evaluación del rendimiento, Journal of Machine Learning Research, 2010. Research, vol. 11, págs. 2079-2107, julio de 2010. ( http://jmlr.org/papers/volume11/cawley10a/cawley10a.pdf )

Las razones del sesgo con ejemplos ilustrativos y evaluación experimental se pueden encontrar en el documento, pero esencialmente el punto es que si el criterio de evaluación de desempeño se usa de alguna manera para tomar decisiones sobre el modelo, entonces esas elecciones se basan en (i) mejoras genuinas en el rendimiento de generalización y (ii) las peculiaridades estadísticas de la muestra particular de datos sobre la cual se evalúa el criterio de evaluación del desempeño. En otras palabras, el sesgo surge porque es posible (demasiado fácil) sobrepasar el error de validación cruzada al ajustar los hiperparámetros.

Dikran Marsupial
fuente
5

Con un conjunto de prueba extendido clf.fitproduce una estimación imparcial, mientras que la validación cruzada anidada cross_val_scoreproduce varias estimaciones imparciales. La ventaja de la validación cruzada anidada es una mejor evaluación del rendimiento real utilizando datos que el algoritmo aún no ha visto. Mejor evaluación porque obtienes, por ejemplo, tres puntajes de prueba con cv anidado en lugar de solo uno.

La respuesta a su segunda pregunta con respecto a las mejores estimaciones es que actualmente (v0.14) no es posible obtener los parámetros de los modelos ajustados utilizando cv anidado cross_val_score. Vea mi respuesta aquí con un ejemplo.

tobip
fuente