Validación cruzada en StackingClassifier Scikit-Learn

Aug 20 2020

StackingClassifier En la documentación de Scikit-Learn está escrito:

Tenga en cuenta que estimators_se ajustan en el Xtiempo completo que final_estimator_se entrena usando predicciones validadas cruzadas de los estimadores base usando cross_val_predict.

... la validación cruzada de 5 veces por defecto

Mi pregunta, ¿por qué usar la validación cruzada de 5 veces solo en el estimador final? ¿Por qué el estimador final no está ajustado en el X completo (salida de los estimadores base)?

Respuestas

1 RobbytheBelgian Aug 26 2020 at 13:03

Esto incluye 2 preguntas, abordaré cada una de ellas.

  1. Podríamos usar la validación cruzada en todo el sistema, pero eso nos perjudicaría demasiado.

El propósito de la validación cruzada es encontrar los parámetros óptimos, aquellos que permiten que el modelo se ajuste bien a los datos sin sobreajustarse. Basta con que nuestro estimador final haga esto; no hay necesidad de calcular individualmente la configuración de todos los estimadores base. Los estimadores base pueden incluir un montón de configuraciones de parámetros diferentes, por ejemplo; así como una selección de diferentes tipos de clasificadores. Si alguno de ellos es propenso a sobreajustarse, esto debería compensarse con otros que no tengan ese problema. Mientras el estimador final no ponga todos sus huevos en la canasta equivocada, deberíamos estar bien (y es por eso que necesitamos una validación cruzada aquí, para asegurarnos de que esto no suceda).

  1. Entrenaremos el estimador final en el conjunto de entrenamiento completo; esto sucede después de encontrar los parámetros óptimos o el conjunto de estimadores base mediante la validación cruzada. Como su nombre lo indica, la validación cruzada está destinada a validar el método. No para crear el modelo final.