¿Cómo elegir un clasificador después de la validación cruzada?


13

Cuando hacemos validación cruzada k-fold, ¿deberíamos usar el clasificador que tiene la mayor precisión de prueba? ¿Cuál es generalmente el mejor enfoque para obtener un clasificador de la validación cruzada?


Creo que esta pregunta depende mucho de la métrica utilizada para determinar el "mejor enfoque". Cuantificablemente muchas personas usan la precisión, pero dependiendo del conjunto de datos, se pueden usar otras métricas, como una media armónica como F1-Score. Por lo tanto, la elección métrica puede ser igualmente importante.
Nathan McCoy

@NathanMcCoy bien asumiendo que elegimos la precisión, ¿elegiríamos el clasificador con la mayor precisión de prueba?
Armon Safai

¡Seguro! Solo trato de mencionar algo más en lo que pensar :)
Nathan McCoy

Respuestas:


15

Realiza la validación cruzada cuando desea hacer cualquiera de estas dos cosas:

  • Selección de modelo
  • Estimación de error de un modelo

La selección del modelo puede venir en diferentes escenarios:

  • Seleccionar un algoritmo frente a otros para un problema / conjunto de datos en particular
  • Seleccionar hiperparámetros de un algoritmo particular para un problema / conjunto de datos particular

(Tenga en cuenta que si ambos seleccionan un algoritmo, mejor llamarlo modelo, y también realizan una búsqueda de hiperparámetros, deben realizar la validación cruzada anidada. ¿Es realmente necesario el CV anidado? )

La validación cruzada asegura hasta cierto punto que la estimación del error es la más cercana posible como error de generalización para ese modelo (aunque esto es muy difícil de aproximar). Al observar el error promedio entre pliegues, puede tener una buena proyección del error esperado para un modelo construido en el conjunto de datos completo. También es importante observar la varianza de la predicción, es decir, cuánto varía el error de un pliegue a otro. Si la variación es demasiado alta (valores considerablemente diferentes), entonces el modelo tenderá a ser inestable. Bootstrapping es el otro método que proporciona una buena aproximación en este sentido. Sugiero leer detenidamente la sección 7 sobre el libro "Elementos de aprendizaje estadístico", disponible gratuitamente en: ELS-Standford

Como se mencionó anteriormente, no debe tomar el modelo construido en ninguno de los pliegues. En su lugar, debe reconstruir el modelo con el conjunto de datos completo (el que se dividió en pliegues). Si tiene un conjunto de pruebas separado, puede usarlo para probar este modelo final, obteniendo un error similar (y seguramente más alto) que el obtenido por CV. Sin embargo, debe confiar en el error estimado dado por el procedimiento de CV.

Después de realizar el CV con diferentes modelos (combinación de algoritmos, etc.), elija el que mejor se desempeñó con respecto al error y su variación entre pliegues. Deberá reconstruir el modelo con todo el conjunto de datos. Aquí viene una confusión común en términos: nos referimos comúnmente a la selección del modelo, pensando que el modelo es el modelo listo para predecir basado en datos, pero en este caso se refiere a la combinación de algoritmo + procedimientos de preprocesamiento que aplica. Entonces, para obtener el modelo real que necesita para hacer predicciones / clasificación, necesita construirlo utilizando la combinación ganadora en todo el conjunto de datos.

Lo último a tener en cuenta es que si está aplicando algún tipo de preprocesamiento, utiliza la información de clase (selección de características, reducción de dimensionalidad LDA, etc.), esto debe realizarse en cada pliegue y no previamente en los datos. Este es un aspecto crítico. Debería hacer lo mismo si está aplicando métodos de preprocesamiento que implican información directa de datos (PCA, normalización, estandarización, etc.). Sin embargo, puede aplicar un preprocesamiento que no dependa de los datos (eliminar una variable según la opinión de un experto, pero esto es algo obvio). Este video puede ayudarlo en esa dirección: CV en la forma correcta e incorrecta

Aquí, una buena explicación final sobre el tema: selección de CV y ​​modelo


Ya veo, ¿realmente necesita tener datos de prueba separados o puede entrenar su clasificador en el 100% de todos los datos que tiene ya que ya hicimos la validación cruzada y obtuvimos el error de prueba aproximado para el modelo?
Armon Safai

+1 para "eligió el que mejor se desempeñó con respecto al error y su variación entre pliegues ". Todos parecen ignorar la variación entre los pliegues al seleccionar modelos.
stmax

¿Por qué debería importarme el error de prueba si solo el error CV es lo que me importa? Le pregunté porque escribió "realmente en el error estimado dado por el procedimiento de CV".
HelloWorld

Otra pregunta. ¿Qué sucede si el mejor modelo de CV no es el mejor modelo cuando se construye para todo el conjunto de datos?
HelloWorld

1
Construye el modelo en el 100% de los datos, esto significa en el 100% de los datos utilizados para la validación cruzada. Si previamente dividió los datos originales en 80% -20% para capacitación y pruebas adicionales, entonces realiza CV en 80%, selecciona el modelo y vuelve a entrenar en todo el 80%. Tener un conjunto de pruebas en este caso (20%) solo le permite ver cómo se comporta con los nuevos datos no vistos (puede considerarlos como datos que estuvieron disponibles en el futuro), pero la estimación del error que usa es la de CV . Con suerte, producirá un error similar con los nuevos datos si es un buen modelo (ese 20%, o datos realmente nuevos). @ArmonSafai
Javierfdr

8

No. No selecciona ninguno de los k clasificadores creados durante la validación cruzada de k-fold. En primer lugar, el propósito de la validación cruzada no es crear un modelo predictivo, sino evaluar con qué precisión funcionará un modelo predictivo en la práctica. En segundo lugar, por razones de argumento, supongamos que debe usar la validación cruzada k-fold con k = 10 para descubrir cuál de los tres algoritmos de clasificación diferentes sería el más adecuado para resolver un problema de clasificación dado. En ese caso, los datos se dividen aleatoriamente en k partes de igual tamaño. Una de las partes está reservada para pruebas y las demás partes k-1 se usarán para capacitación. El proceso de validación cruzada se repite k (veces) para que en cada iteración se utilice una parte diferente para las pruebas. Después de ejecutar la validación cruzada, observa los resultados de cada pliegue y se pregunta qué algoritmo de clasificación (¡ninguno de los modelos entrenados!) Es el más adecuado. No desea elegir el algoritmo que tenga la mayor precisión de prueba en una de las 10 iteraciones, porque tal vez solo sucedió al azar que los datos de prueba en esa iteración en particular contenían ejemplos muy fáciles, que luego conducen a una alta precisión de prueba. Lo que quieres hacer es elegir el algoritmo que produjo la mejor precisión que luego conducen a una alta precisión de prueba. Lo que quieres hacer es elegir el algoritmo que produjo la mejor precisión que luego conducen a una alta precisión de prueba. Lo que quieres hacer es elegir el algoritmo que produjo la mejor precisiónpromediado sobre todos los k pliegues . Ahora que ha elegido el algoritmo, puede entrenarlo con todos sus datos de entrenamiento y comenzar a hacer predicciones en la naturaleza.

Esto está más allá del alcance de esta pregunta, pero también debe optimizar los hiperparámetros del modelo (si los hay) para aprovechar al máximo el algoritmo seleccionado. Las personas suelen realizar la optimización de hiperparámetros mediante validación cruzada.


Pensé que k-fold cross validation crea k modelos diferentes ya que hay 10 conjuntos diferentes de datos de entrenamiento.
Armon Safai

Mira mi respuesta actualizada. Lo refiné para abordar la pregunta más directamente y explicar mejor con un ejemplo.
tuomastik

Ya veo, así que cuando finalmente entrenar a su clasificador, hacer que utilice todos sus datos para entrenar el clasificador después de que haya elegido el algoritmo de validación cruzada
Armon safai

Sí, si no desea realizar ningún análisis adicional, como la optimización de hiperparámetros, que requiere una validación cruzada anidada donde el bucle CV interno se encarga de la sintonización del hiperparámetro y el bucle CV externo evalúa el rendimiento del modelo en un conjunto de datos independiente con óptimo hiperparámetros
tuomastik

1

Entonces, supongamos que tiene capacitación, de la cual está utilizando el 80% como capacitación y el 20% restante como datos de validación. Podemos entrenar en el 80% y probar en el 20% restante, pero es posible que el 20% que tomamos no se parezca a los datos de las pruebas reales y podría funcionar mal después. Entonces, para evitar esto, podemos usar la validación cruzada k-fold.

Entonces, digamos que tiene diferentes modelos y desea saber cuál funciona mejor con su conjunto de datos, la validación cruzada de k-fold funciona muy bien. Puede conocer los errores de validación en los rendimientos de validación k y elegir el mejor modelo basado en eso. Este es generalmente el propósito de la validación cruzada k-fold.

Si llega a un solo modelo y si está verificando con la validación cruzada k-fold, puede obtener una aproximación de los errores de los datos de prueba, pero when you are actually training it finally, you can use the complete training data(porque aquí se supone que todos los datos funcionarán juntos mejor que una parte) Puede que no sea el caso a veces, pero esta es la suposición general).


Entonces, cuando hacemos la validación cruzada, ¿simplemente elegimos el modelo que tiene la mayor precisión de prueba?
Armon Safai

cuando dices prueba, te refieres a la prueba de validación del conjunto de datos ¿verdad?
Hima Varsha

sí, eso es lo que quiero decir
Armon Safai

una vez que hemos utilizado la validación cruzada para seleccionar el modelo con mejor rendimiento (por ejemplo, tiene 2 modelos: regresión lineal o red neuronal), entrenamos ese modelo (ya sea la regresión lineal o la red neuronal) en todos los datos
Hima Varsha

1
@HimaVarsha, así que si decidimos tomar el promedio, ¿cómo elegiríamos el "clasificador promedio"?
Armon Safai
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.