Tengo un conjunto de datos de 120 muestras en una configuración de validación cruzada 10 veces. Actualmente, elijo los datos de entrenamiento de la primera reserva y hago una validación cruzada de 5 veces para elegir los valores de gamma y C mediante la búsqueda de cuadrícula. Estoy usando SVM con el kernel RBF. Dado que estoy haciendo una validación cruzada de diez 10 para informar la precisión, recuerdo, ¿realizo esta búsqueda en la cuadrícula en los datos de entrenamiento de cada reserva (hay 10 reservas, cada una con un 10% de prueba y un 90% de datos de entrenamiento)? ¿No sería demasiado tiempo?
Si uso la gamma y la C de la primera reserva y la uso para el resto de las 9 reservas de la validación cruzada k-fold, es una violación porque habría usado los datos del tren para obtener gamma y C y nuevamente usar el porción de los datos del tren como prueba en la segunda reserva?
fuente
Respuestas:
Sí, esto sería una violación ya que los datos de prueba para los pliegues 2-10 de la validación cruzada externa habrían sido parte de los datos de entrenamiento para el pliegue 1 que se usaron para determinar los valores del núcleo y los parámetros de regularización. Esto significa que parte de la información sobre los datos de la prueba se ha filtrado potencialmente en el diseño del modelo, lo que potencialmente da un sesgo optimista a la evaluación del rendimiento, que es más optimista para los modelos que son muy sensibles a la configuración de los hiperparámetros (es decir, favorece más a los modelos con una característica indeseable).
Es probable que este sesgo sea más fuerte para los conjuntos de datos pequeños, como este, ya que la varianza del criterio de selección del modelo es mayor para los conjuntos de datos pequeños, lo que fomenta el ajuste excesivo del criterio de selección del modelo, lo que significa que puede filtrarse más información sobre los datos de la prueba. mediante.
Escribí un artículo sobre esto hace uno o dos años, ya que estaba bastante sorprendido por la magnitud de las desviaciones de sesgo de la validación cruzada anidada completa que puede introducirse, lo que puede reducir fácilmente la diferencia de rendimiento entre los sistemas clasificadores. El documento es "Sobre el ajuste excesivo en la selección del modelo y el sesgo de selección posterior en la evaluación del desempeño" Gavin C. Cawley, Nicola LC Talbot; JMLR 11 (julio): 2079-2107, 2010.
Esencialmente, ajustar los hiperparámetros debe considerarse una parte integral del ajuste del modelo, por lo que cada vez que entrene el SVM en una nueva muestra de datos, vuelva a sintonizar independientemente los hiperparámetros para esa muestra. Si sigues esa regla, probablemente no puedas equivocarte demasiado. Vale la pena el gasto computacional para obtener una estimación imparcial del rendimiento, ya que de lo contrario corre el riesgo de sacar conclusiones erróneas de su experimento.
fuente
Después de hacer la búsqueda de cuadrícula para cada modelo sustituto, puede y debe verificar algunas cosas:
Si la validación cruzada interna (es decir, el ajuste) se ve mucho mejor que la externa (validación del modelo final), entonces también está en problemas: está sobreajustando. Existe un riesgo sustancial de que los parámetros ajustados no sean óptimos en absoluto. Sin embargo, si la validación cruzada externa se realiza correctamente (todos los conjuntos de prueba son verdaderamente independientes de los respectivos modelos sustitutos), entonces al menos todavía tiene una estimación imparcial (!) Del rendimiento del modelo. Pero no puede estar seguro de que sea óptimo.
Hay mucho que decir sobre el sobreajuste por selección de modelo. Sin embargo, es bueno tener en cuenta que tanto la varianza como el sesgo optimista realmente pueden doler
Si está interesado en un ejemplo y puede leer alemán, podría poner mi tesis de Diploma en línea.
En mi experiencia, ajustar hiperparámetros es una idea extremadamente efectiva para sobreajustar ...
Ahora, si te das cuenta de que estás sobreajustando, tienes principalmente dos opciones:
Como alternativa a ajustar los hiperparámetros a cada conjunto de entrenamiento, puede preespecificar (hiper) parámetros (es decir, corregirlos de antemano). Hago eso lo más posible para mis modelos, ya que generalmente tengo incluso menos casos que usted, vea a continuación.
Sin embargo, esta fijación debe hacerse de manera real y honesta de antemano: por ejemplo, le pregunté a un colega por sus parámetros optimizados en un conjunto de datos similar (experimento independiente) o realicé un preexperimento, incluida la búsqueda de cuadrícula en los parámetros. Ese primer experimento se usa para corregir algunos parámetros experimentales, así como los parámetros del modelo para el experimento real y el análisis de datos. Ver abajo para más explicaciones.
Por supuesto, es posible realizar pruebas adecuadas en modelos optimizados automáticamente (validación doble o anidada), pero el tamaño de la muestra puede no permitir dividir los datos dos veces .
En esa situación, en mi humilde opinión, es mucho mejor informar una estimación honesta para un modelo que se construyó utilizando la experiencia profesional sobre cómo elegir los parámetros de modelado que informar una estimación demasiado optimista en algún tipo de modelo optimizado automáticamente.
Otro punto de vista sobre la situación es que debes intercambiar
Algunas ideas similares sobre una pregunta similar: /stats//a/27761/4598
Sobre la fijación de parámetros y los comentarios de Dikran Marsupial
Estoy usando el término hiperparámetros como Dikran Marsupial lo usa en su artículo (enlace en su respuesta)
Trabajo con datos espectroscópicos. Este es un tipo de medición en la que el análisis y el modelado de datos a menudo incluyen bastante preprocesamiento. Esto puede verse como hiperparámetros (p. Ej., ¿Qué orden de polinomio debe usarse para la línea de base? ¿Qué canales de medición deben incluirse?). Hay otras decisiones que están más cerca de sus parámetros svm, por ejemplo, ¿cuántos componentes principales usar si se realiza un PCA para la reducción de la dimensionalidad antes de entrenar el modelo "real"? Y a veces también uso la clasificación SVM, así que tengo que decidir sobre los parámetros SVM.
Ahora, en mi humilde opinión, la mejor manera de corregir los hiperparámetros es si tiene razones que provienen de la aplicación. Por ejemplo, generalmente decido qué tipo de línea de base usar por razones físicas / químicas / biológicas (es decir, conocimiento sobre la muestra y el comportamiento espectroscópico que se deriva de eso). Sin embargo, no estoy al tanto de tal argumentación que ayude con los parámetros SVM ...
El caso de los preexperimentos que mencioné anteriormente es el siguiente:
Se analizan los espectros, se ejecuta SVM de validación cruzada doble iterada (se pasa una o dos noches en el servidor de cómputo).
Mi conclusión es: aunque no puedo estar seguro de que los hiperparámetros finales sean óptimos, la validación cruzada externa me da una estimación adecuada del rendimiento de los modelos sustitutos.
Durante la parte experimental, decidimos algunos cambios en la configuración experimental (cosas que no afectan la señal al ruido de los datos, pero que van un paso más allá en la automatización del instrumento)
Mejoramos la configuración experimental y adquirimos nuevos espectros. Como son las células, necesitan crecer recientemente. Es decir, el nuevo conjunto de datos son incluso lotes de cultura independientes.
Ahora me enfrento a la decisión: ¿Debería "omitir" la validación cruzada interna y seguir los hiperparámetros que determiné con los datos antiguos?
Entonces, en ese caso, decidí ir con parámetros fijos (por experiencia en datos similares y sabiendo que en el futuro tendremos que hacer nuestra "tarea" incluyendo, entre otras cosas, volver a verificar estas decisiones con datos grandes).
Tenga en cuenta que lo importante es que omito el interno ( validación cruzada de ajuste ), no el externo. Con hiperparámetros fijos obtengo una estimación imparcial del rendimiento de un modelo posiblemente subóptimo. Es cierto que esta estimación está sujeta a una gran varianza, pero esta varianza es básicamente la misma tanto si realizo la afinación interna como si no.
Omitiendo la validación cruzada externa, obtendría una estimación sesgada optimista de un modelo ajustado, que dependiendo de la aplicación y los datos puede ser inútil (si es demasiado optimista) y el sesgo optimista puede ser simplemente inaceptable.
fuente
Creo que la clave es buscar cierta suavidad en la superficie alrededor de los mínimos locales (o cada proyección de 1 dim) y no solo tomar el mínimo global.
fuente