Me pregunto cómo elegir un modelo predictivo después de hacer la validación cruzada K-fold.
Esto puede expresarse de manera incómoda, así que permítanme explicarlo con más detalle: cada vez que ejecuto la validación cruzada K-fold, uso K subconjuntos de los datos de entrenamiento y termino con K diferentes modelos.
Me gustaría saber cómo elegir uno de los modelos K, para poder presentarlo a alguien y decir "este es el mejor modelo que podemos producir".
¿Está bien elegir cualquiera de los modelos K? ¿O hay algún tipo de mejor práctica involucrada, como elegir el modelo que logra el error de prueba mediano?
cross-validation
model-selection
Berk U.
fuente
fuente
Respuestas:
Creo que todavía te falta algo en tu comprensión del propósito de la validación cruzada.
Aclaremos cierta terminología, generalmente cuando decimos 'un modelo' nos referimos a un método particular para describir cómo algunos datos de entrada se relacionan con lo que estamos tratando de predecir. Generalmente no nos referimos a instancias particulares de ese método como modelos diferentes. Entonces podría decir 'Tengo un modelo de regresión lineal' pero no llamaría a dos conjuntos diferentes de coeficientes entrenados diferentes modelos. Al menos no en el contexto de la selección del modelo.
Entonces, cuando realiza la validación cruzada K-fold, está probando qué tan bien su modelo puede ser entrenado por algunos datos y luego predice datos que no ha visto. Usamos la validación cruzada para esto porque si entrenas usando todos los datos que tienes, no tienes ninguno para probar. Podría hacerlo una vez, por ejemplo, utilizando el 80% de los datos para entrenar y el 20% para probar, pero ¿qué pasa si el 20% que eligió para probar contiene un montón de puntos que son particularmente fáciles (o particularmente difíciles)? para predecir? No habremos logrado la mejor estimación posible de la capacidad de los modelos para aprender y predecir.
Queremos usar todos los datos. Entonces, para continuar con el ejemplo anterior de una división 80/20, haríamos una validación cruzada de 5 veces entrenando el modelo 5 veces en el 80% de los datos y probando en un 20%. Nos aseguramos de que cada punto de datos termine en el conjunto de prueba del 20% exactamente una vez. Por lo tanto, hemos utilizado todos los puntos de datos que tenemos para contribuir a una comprensión de qué tan bien nuestro modelo realiza la tarea de aprender de algunos datos y predecir algunos datos nuevos.
Pero el propósito de la validación cruzada no es llegar a nuestro modelo final. No usamos estas 5 instancias de nuestro modelo entrenado para hacer una predicción real. Para eso queremos utilizar todos los datos que tenemos para llegar al mejor modelo posible. El propósito de la validación cruzada es la verificación del modelo, no la construcción del modelo.
Ahora, digamos que tenemos dos modelos, digamos un modelo de regresión lineal y una red neuronal. ¿Cómo podemos decir qué modelo es mejor? Podemos hacer una validación cruzada K-fold y ver cuál prueba mejor para predecir los puntos de ajuste de prueba. Pero una vez que hemos utilizado la validación cruzada para seleccionar el modelo con mejor rendimiento, entrenamos ese modelo (ya sea la regresión lineal o la red neuronal) en todos los datos. No utilizamos las instancias del modelo real que capacitamos durante la validación cruzada para nuestro modelo predictivo final.
Tenga en cuenta que existe una técnica llamada agregación bootstrap (generalmente abreviada a 'embolsado') que de alguna manera usa instancias de modelos producidas de manera similar a la validación cruzada para construir un modelo de conjunto, pero esa es una técnica avanzada más allá del alcance de tu pregunta aquí.
fuente
For that we want to use all the data we have to come up with the best model possible.
: al realizar una búsqueda en cuadrícula con validación cruzada K-fold, ¿significa esto que usaría los mejores parámetros encontrados por la búsqueda en cuadrícula y ajustaría un modelo en todos los datos de entrenamiento, y luego evaluaría el rendimiento de generalización utilizando el conjunto de prueba?Permítanme agregar algunos puntos además de la respuesta de Bogdanovist
Como dices, entrenas diferentes modelos. Se diferencian en que 1 / (k-1) th de los datos de entrenamiento se intercambia con otros casos. Estos modelos a veces se denominan modelos sustitutos porque el rendimiento (promedio) medido para estos modelos se toma como un sustituto del rendimiento del modelo entrenado en todos los casos.k
Ahora, hay algunas suposiciones en este proceso.
Supuesto 1: los modelos sustitutos son equivalentes al modelo de "datos completos".k
Es bastante común que esta suposición se rompa, y el síntoma es el conocido sesgo pesimista de la validación cruzada de pliegues (u otros esquemas de validación basados en remuestreo). El rendimiento de los modelos sustitutos es, en promedio, peor que el rendimiento del modelo de "datos completos" si la curva de aprendizaje todavía tiene una pendiente positiva (es decir, menos muestras de entrenamiento conducen a modelos peores).
El supuesto 2 es una versión más débil del supuesto 1: incluso si los modelos sustitutos son en promedio peores que el modelo de datos completo, asumimos que son equivalentes entre sí. Esto permite resumir los resultados de la prueba para modelos sustitutos como un rendimiento promedio. La inestabilidad del modelo lleva a la ruptura de esta suposición: el verdadero desempeño de los modelos entrenados en casos de entrenamiento varía mucho. Puede medir esto haciendo iteraciones / repeticiones de la validación cruzada pliegue (nuevas asignaciones aleatorias a los subconjuntos) y observando la varianza (diferencias aleatorias) entre las predicciones de diferentes modelos sustitutos para el mismo caso.N k - 1k Nk−1k k k
kk
El número finito de casos significa que la medición del rendimiento estará sujeta a un error aleatorio (varianza) debido al número finito de casos de prueba. Esta fuente de variación es diferente de (y por lo tanto se suma a) la variación de inestabilidad del modelo.
Las diferencias en el rendimiento observado se deben a estas dos fuentes de variación.
La "selección" en la que piensa es una selección de conjunto de datos: seleccionar uno de los modelos sustitutos significa seleccionar un subconjunto de muestras de entrenamiento y afirmar que este subconjunto de muestras de entrenamiento conduce a un modelo superior. Si bien este puede ser realmente el caso, generalmente la "superioridad" es espuria. En cualquier caso, como elegir "el mejor" de los modelos sustitutos es una optimización basada en datos, necesitaría validar (medir el rendimiento) este modelo elegido con nuevos datos desconocidos. El conjunto de pruebas dentro de esta validación cruzada no es independiente, ya que se utilizó para seleccionar el modelo sustituto.
Es posible que desee ver nuestro artículo, se trata de la clasificación donde las cosas suelen ser peores que la regresión. Sin embargo, muestra cómo se suman estas fuentes de varianza y sesgo.
Beleites, C. y Neugebauer, U. y Bocklitz, T. y Krafft, C. y Popp, J .: Planificación del tamaño de la muestra para modelos de clasificación. Anal Chim Acta, 2013, 760, 25-33.
DOI: 10.1016 / j.aca.2012.11.007
manuscrito aceptado en arXiv: 1211.1323
fuente
picking "the best" of the surrogate models is a data-driven optimization, you'd need to validate (measure performance) this picked model with new unknown data. The test set within this cross validation is not independent as it was used to select the surrogate model.
y se diceBut once we have used cross-validation to select the better performing model, we train that model (whether it be the linear regression or the neural network) on all the data.
Esto es bastante común y es crucial que se especifica un método estandarizadoEncontré este excelente artículo Cómo entrenar un modelo final de aprendizaje automático muy útil para aclarar todas las confusiones que tengo con respecto al uso de CV en el aprendizaje automático.
Básicamente, utilizamos CV (p. Ej., División 80/20, pliegue en k, etc.) para estimar qué tan bien funcionará todo su procedimiento (incluida la ingeniería de datos, la elección del modelo (es decir, el algoritmo) y los hiperparámetros, etc.) en futuros no vistos. datos. Y una vez que haya elegido el "procedimiento" ganador, los modelos ajustados de CV han cumplido su propósito y ahora pueden descartarse. Luego, utiliza el mismo "procedimiento" ganador y entrena su modelo final utilizando todo el conjunto de datos.
fuente
Es una pregunta muy interesante. Para que quede claro, debemos entender la diferencia del modelo y la evaluación del modelo. Utilizamos un conjunto de entrenamiento completo para construir un modelo, y esperamos que este modelo finalmente se use.
La evaluación cruzada de K fold construiría modelos K pero todos serían descartados. Los modelos K solo se utilizan para la evaluación. y solo produjo métricas para decirle qué tan bien se ajusta este modelo con sus datos.
Por ejemplo, elige el algoritmo LinearRegression y realiza dos operaciones en el mismo conjunto de entrenamiento: uno con validación cruzada 10 veces y el otro con 20 veces. el modelo de regresión (o clasificador) debería ser el mismo, pero el coeficiente de correlación y el error al cuadrado relativo de la raíz son diferentes.
A continuación se muestran dos ejecuciones para validación cruzada de 10 veces y 20 veces con weka
1a carrera con 10 veces
2da carrera con 20 veces
fuente
No estoy seguro de que la discusión anterior sea completamente correcta. En la validación cruzada, podemos dividir los datos en Entrenamiento y Pruebas para cada ejecución. Usando solo los datos de entrenamiento, uno necesita ajustar el modelo y elegir los parámetros de ajuste en cada clase de modelos que se están considerando. Por ejemplo, en las redes neuronales, los parámetros de ajuste son el número de neuronas y las opciones para la función de activación. Para hacer esto, uno solo valida en los datos de entrenamiento .
Una vez que se encuentra el mejor modelo en cada clase, se evalúa el mejor modelo utilizando los datos de la prueba. El bucle de validación cruzada "externo" se puede utilizar para dar una mejor estimación del rendimiento de los datos de prueba, así como una estimación de la variabilidad. Una discusión puede comparar el rendimiento de la prueba para diferentes clases, por ejemplo, Neural Nets vs. SVM. Se elige una clase de modelo, con el tamaño del modelo fijo, y ahora se utilizan todos los datos para aprender el mejor modelo.
Ahora, si como parte de su algoritmo de aprendizaje automático desea seleccionar constantemente la mejor clase de modelo (por ejemplo, cada semana), ¡incluso esta opción debe evaluarse en los datos de entrenamiento! La medición de datos de prueba no se puede usar para juzgar la elección de clase de modelo si es una opción dinámica.
fuente
¿Por qué usamos k-fold cross validation?
La validación cruzada es un método para estimar la habilidad de un método en datos no vistos. Como usar una división de prueba de tren.
La validación cruzada crea y evalúa sistemáticamente múltiples modelos en múltiples subconjuntos del conjunto de datos. Esto, a su vez, proporciona una población de medidas de desempeño .
Esto también es útil para proporcionar una comparación más matizada de un procedimiento a otro cuando intenta elegir qué algoritmo y procedimientos de preparación de datos usar.
Además, esta información es invaluable, ya que puede usar la media y la difusión para proporcionar un intervalo de confianza en el rendimiento esperado en un procedimiento de aprendizaje automático en la práctica.
referencia
fuente