¿Cómo funciona la validación cruzada de dejar uno fuera? ¿Cómo seleccionar el modelo final de modelos diferentes?

25

Tengo algunos datos y quiero construir un modelo (digamos un modelo de regresión lineal) a partir de estos datos. En el siguiente paso, quiero aplicar la validación cruzada Leave-One-Out (LOOCV) en el modelo, así que vea qué tan bien funciona.

Si entendí LOOCV correctamente, construyo un nuevo modelo para cada una de mis muestras (el conjunto de prueba) usando cada muestra excepto esta muestra (el conjunto de entrenamiento). Luego uso el modelo para predecir el conjunto de pruebas y calcular los errores .(predicho-real)

En el siguiente paso, agrego todos los errores generados usando una función elegida, por ejemplo error cuadrático medio. Puedo usar estos valores para juzgar la calidad (o bondad de ajuste) del modelo.

Pregunta: ¿Qué modelo es el modelo para el que se aplican estos valores de calidad, entonces qué modelo debo elegir si considero que las métricas generadas por LOOCV son apropiadas para mi caso? LOOCV examinó modelos diferentes (donde es el tamaño de la muestra); ¿Cuál es el modelo que debo elegir?nortenorte

  • ¿Es el modelo que utiliza todas las muestras? ¡Este modelo nunca se calculó durante el proceso LOOCV!
  • ¿Es el modelo que tiene el menor error?
theomega
fuente
Relacionado: stats.stackexchange.com/questions/11602 .
ameba dice Reinstate Monica

Respuestas:

24

Es mejor pensar en la validación cruzada como una forma de estimar el rendimiento de generalización de los modelos generados por un procedimiento particular, en lugar del modelo en sí. La validación cruzada Leave-one-out es esencialmente una estimación del rendimiento de generalización de un modelo entrenado en muestras de datos, que generalmente es una estimación ligeramente pesimista del rendimiento de un modelo entrenado en muestras.norte-1norte

En lugar de elegir un modelo, lo que hay que hacer es ajustar el modelo a todos los datos y usar LOO-CV para proporcionar una estimación ligeramente conservadora del rendimiento de ese modelo.

Sin embargo, tenga en cuenta que LOOCV tiene una alta varianza (el valor que obtendrá varía mucho si utiliza una muestra aleatoria de datos diferente), lo que a menudo lo convierte en una mala elección del estimador para la evaluación del rendimiento, a pesar de que es aproximadamente imparcial. Lo uso todo el tiempo para la selección del modelo, pero en realidad solo porque es barato (casi gratis para los modelos de kernel en los que estoy trabajando).

Dikran Marsupial
fuente
Gracias por la respuesta. ¿No es la frase "usar LOO-CV para proporcionar una estimación ligeramente conservadora del rendimiento de ese modelo"? mal es el caso general? El modelo podría empeorar si agrego otro punto, en ese caso el LOO-CV podría ser un. estimación optimista
theomega
1
Cuantos más datos use para construir el modelo, generalmente mejor será el modelo. Si bien el punto adicional puede empeorar un poco el modelo, es más probable que lo haga un poco mejor. Entonces, en general, loocv tiene un ligero sesgo pesimista, pero es muy leve, la varianza del estimador LOOCV suele ser una consideración mucho mayor.
Dikran Marsupial
¿Qué debería usar para la evaluación del desempeño? (Suponiendo que la recopilación de datos es costosa, por lo que desea utilizar todos los datos disponibles para adaptarse al modelo).
Sideshow Bob
Bootstrap probablemente. La mayoría de los modelos que uso tienen parámetros de regularización, etc., que deben ajustarse, por lo que a menudo uso LOOCV para ajustar los modelos y bootstrap o la retención repetida para la evaluación del rendimiento.
Dikran Marsupial
@DikranMarsupial ¿Está seguro del hecho de que Leave-One-Out CV proporciona un sesgo pesimista? Hasta donde sé, por lo general, proporciona una estimación de error más baja que K-Fold, por ejemplo. Además, ¿LOOCV no tiene varianza 0? Solo puedes hacer LOOCV una vez, luego "te quedas sin muestra". La única variación que se me ocurre es la producida por los algoritmos de entrenamiento utilizados para ajustarse al modelo. Pero esto debería ser una varianza asociada con la varianza de los parámetros óptimos, no con el error del modelo en sí. Gracias.
D1X