Búsqueda de cuadrícula en k-fold cross validation


16

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?


Esta pregunta necesita más información. ¿Qué modelo te queda? ¿Qué es gamma y C en este modelo? Además, ¿podría dar esta información editando la pregunta y no con comentarios?
probabilidadislogic

Respuestas:


14

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.


1
Mi experiencia personal me hizo también muy cauteloso acerca de tales fuentes de sobreajuste.
cbeleites apoya a Monica el

6

Después de hacer la búsqueda de cuadrícula para cada modelo sustituto, puede y debe verificar algunas cosas:

  • variación de los parámetros optimizados (aquí y C ). ¿Son estables los parámetros óptimos? Si no, es muy probable que tengas problemas.γC
  • Compare el rendimiento informado de la validación cruzada interna y externa.
    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.
  • ¿Qué tan pronunciado es el óptimo? ¿El rendimiento se degrada rápidamente para parámetros subóptimos? ¿Qué tan bueno es el rendimiento ó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

  • La variación significa que puede terminar accidentalmente bastante lejos de los hiperparámetros verdaderamente óptimos.
  • pero también el sesgo puede doler: si está sobreajustando, puede encontrarse con situaciones en las que muchos modelos se ven perfectos para la validación cruzada interna (pero en realidad no lo son). En ese caso, el ajuste puede perderse porque no reconoce las diferencias entre los modelos.
  • Si el sesgo depende de los hiperparámetros, estás en un gran problema.

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:

  • informe que la optimización tuvo un problema con el sobreajuste pero que realizó una validación externa adecuada que resultó en ... (resultados de validación cruzada externa).
  • restringir la complejidad del modelo. Una forma de hacerlo es arreglar hiperparámetros:

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

  • peor rendimiento debido a dejar de lado otro grupo de casos para la optimización de parámetros (tamaño de muestra de entrenamiento más pequeño => peor modelo, pero parámetros "óptimos")
  • peor rendimiento debido a la fijación de parámetros subóptimos por parte del experto (pero en datos de entrenamiento más grandes).

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:

  • tomamos datos de un montón de celdas (queremos distinguir diferentes líneas celulares).
  • 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).

    • γC
    • También observo un cierto sobreajuste: la validación cruzada externa no es tan buena como los resultados de ajuste. Eso es como se esperaba.
    • Aún así, hay diferencias en el rendimiento en el rango de ajuste de los hiperparámetros, y el rendimiento en la cuadrícula de ajuste se ve razonablemente suave. Bueno.
  • 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?

  • Como se mencionó anteriormente, corro el riesgo de que estos hiperparámetros predeterminados no sean óptimos.
  • Pero tampoco puedo estar seguro de obtener hiperparámetros realmente óptimos haciendo la validación cruzada interna (ajuste).
  • Sin embargo, la sintonización de los datos antiguos era estable.
  • Haciendo la optimización, entrenaré con menos muestras: como de todos modos tengo muy pocas muestras (TM), tengo que esperar obtener modelos peores si dejo a un lado más muestras para una segunda ronda de validación cruzada.

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.


lamento tener que rechazar esta respuesta, pero el uso de valores preespecificados para los hiperparámetros no es una buena práctica, ya que la generalización óptima depende de la configuración adecuada para estos parámetros, que variará de un conjunto de datos a otro (y para problemas habrá pocos datos de la muestra a la muestra). Una búsqueda de cuadrícula previa al experimento es aún peor, ya que da como resultado exactamente la misma forma de sesgo discutida en mi artículo. Para los SVM, el problema de dividir los datos dos veces no se aplica, ya que puede usar la validación cruzada virtual de dejar uno fuera como criterio de selección del modelo en el CV interno, casi gratis.
Dikran Marsupial

Sin embargo, verificar la variación en los parámetros optimizados es una excelente sugerencia. Si tiene suficientes datos para que los parámetros e hiperparámetros puedan estimarse de manera confiable a partir de los datos, entonces el tipo de sesgo que menciono en mi artículo probablemente no será un gran problema. Sin embargo, si existe una gran variabilidad en los valores de hiperparámetros optimizados, debido a un pequeño conjunto de datos, ese es el tipo de situación en la que la validación cruzada anidada y otros enfoques rigurosos son realmente necesarios para evitar sesgos sustanciales en la estimación del rendimiento.
Dikran Marsupial

@DikranMarsupial: expliqué mi fondo un poco más claramente, eche un vistazo. Además, leí tu periódico más a fondo. Creo que nuestros puntos no están tan separados. Si te gusta, vamos a conocer en el chat - Tengo un montón de preguntas acerca de su papel ...
cbeleites apoya Mónica

@DikranMarsupial: (desafortunadamente, para la mayoría de mis datos, no puedo usar el análisis analítico, ya que he anidado / estructuras de datos jerárquicas). Además, me encontré con algunas sorpresas desagradables con la opción de dejar uno fuera, así que hice una validación iterativa de k-fold o out-of-bootstrap. Sin embargo, eso está fuera de tema para esta pregunta.
cbeleites apoya a Monica el

@DikranMarsupial: Si los parámetros optimizados no son estables, estoy en problemas de todos modos. Por supuesto, entonces no puedo concluir que puedo usar estos parámetros para los nuevos datos. Pero también, no los llamaría (¿cuál de los muchos conjuntos de parámetros?) Óptimos para el modelo final ... He visto que la optimización se vuelve completamente salvaje, pero eso siempre vino junto con resultados muy optimistas de la validación interna (ajuste) . Y eso lo puedo medir comparando la validación cruzada externa con la estimación de validación cruzada interna del modelo óptimo. Se actualizó la respuesta en consecuencia.
cbeleites apoya a Monica el

5

γCkterr(γ,C)γCγ,C{2nl,2nl+1,,2nu}γ

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.

γ(pσ)1pγCC


Entonces, digamos que tengo un conjunto de datos con 120 muestras. ¿Debo encontrar gamma y C inicialmente usando 120 muestras? Luego, ¿realiza una validación cruzada 10 veces utilizando la misma gamma y C para los k holdouts cuando se utiliza el 90% de los datos para entrenar y el 10% de los datos para probar? ¿No significaría que utilicé el mismo conjunto de entrenamiento para obtener gamma y C y parte de las muestras también están en el conjunto de prueba?
user13420

γC

(γ,C)(γ,C)(γ,C)

2
λβ

2
λβλββ(λ)
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.