Validación cruzada (generalización de errores) después de la selección del modelo

21

Nota: El caso es n >> p

Estoy leyendo Elementos de aprendizaje estadístico y hay varias menciones sobre la forma "correcta" de hacer la validación cruzada (por ejemplo, página 60, página 245). Específicamente, mi pregunta es ¿cómo evaluar el modelo final (sin un conjunto de pruebas separado) usando k-fold CV o bootstrapping cuando ha habido una búsqueda de modelo? Parece que en la mayoría de los casos (algoritmos ML sin selección de funciones incorporadas) habrá

  1. Un paso de selección de características
  2. Un paso de selección de metaparámetro (por ejemplo, el parámetro de costo en SVM).

Mis preguntas:

  1. He visto que el paso de selección de características se puede hacer donde la selección de características se realiza en todo el conjunto de entrenamiento y se mantiene a un lado. Luego, usando k-fold CV, el algoritmo de selección de características se usa en cada pliegue (obteniendo diferentes características posiblemente elegidas cada vez) y promediando el error. Luego, usaría las características elegidas usando todos los datos (que se reservaron) para entrenar el modo final, pero usaría el error de la validación cruzada como una estimación del rendimiento futuro del modelo. ¿ES ESTO CORRECTO?
  2. Cuando utiliza la validación cruzada para seleccionar parámetros del modelo, ¿cómo calcular el rendimiento del modelo posteriormente? ¿ES EL MISMO PROCESO QUE EL NÚMERO 1 ARRIBA O DEBE USAR UN CV ANEXO COMO EL QUE SE MUESTRA EN LA PÁGINA 54 ( pdf ) O ALGO MÁS?
  3. Cuando realiza los dos pasos (configuración de características y parámetros) ..... ¿entonces qué hace? bucles anidados complejos?
  4. Si tiene una muestra de espera separada, ¿desaparece la preocupación y puede usar la validación cruzada para seleccionar características y parámetros (sin preocuparse ya que su estimación de rendimiento vendrá de un conjunto de espera)?
B_Miner
fuente
@ user2040 (+1) ¡Esas preguntas son muy buenas, de hecho! Aquí puede encontrar una pregunta algo relacionada: Selección de características para el modelo "final" cuando se realiza la validación cruzada en el aprendizaje automático .
chl
@chi Gracias, había visto esa publicación. ¿Crees que estoy en el camino correcto con mi proceso de pensamiento al menos? Parece que un conjunto de pruebas independiente nos permite ser más liberales en nuestro uso de CV para la selección de características y el ajuste / selección de modelos. De lo contrario, los bucles anidados parecen necesarios para entrenar, ajustar y estimar la generalización de errores, todo utilizando los mismos datos de entrenamiento.
B_Miner

Respuestas:

18

La clave para recordar es que para que la validación cruzada proporcione una estimación de rendimiento (casi) imparcial, cada paso involucrado en el ajuste del modelo también debe realizarse de forma independiente en cada pliegue del procedimiento de validación cruzada. Lo mejor que puede hacer es ver la selección de funciones, la configuración de meta / hiperparámetros y optimizar los parámetros como partes integrales del ajuste del modelo y nunca realizar ninguno de estos pasos sin realizar los otros dos.

El sesgo optimista que puede introducirse al partir de esa receta puede ser sorprendentemente grande, como lo demuestran Cawley y Talbot , donde el sesgo introducido por una partida aparentemente benigna fue mayor que la diferencia en el rendimiento entre clasificadores competidores. Los protocolos aún más sesgados favorecen los modelos malos con mayor fuerza, ya que son más sensibles al ajuste de hiperparámetros y, por lo tanto, son más propensos a sobreajustar el criterio de selección del modelo.

Respuestas a preguntas específicas:

El procedimiento en el paso 1 es válido porque la selección de características se realiza por separado en cada pliegue, por lo que lo que está validando de forma cruzada es el procedimiento completo utilizado para ajustarse al modelo final. La estimación de validación cruzada tendrá un ligero sesgo pesimista ya que el conjunto de datos para cada pliegue es ligeramente más pequeño que el conjunto de datos completo utilizado para el modelo final.

Para 2, dado que la validación cruzada se usa para seleccionar los parámetros del modelo, entonces debe repetir ese procedimiento de forma independiente en cada pliegue de la validación cruzada utilizada para la estimación del rendimiento, termina con una validación cruzada anidada.

Para 3, esencialmente, sí, debe hacer una validación cruzada anidada anidada. Esencialmente, debe repetir en cada pliegue de la validación cruzada más externa (utilizada para la estimación del rendimiento) todo lo que pretende hacer para adaptarse al modelo final.

Para 4: sí, si tiene un conjunto de resistencia separado, eso le dará una estimación imparcial del rendimiento sin necesidad de una validación cruzada adicional.

Dikran Marsupial
fuente
re su respuesta a Q1. Ese es el problema, ¿no? Muy a menudo pensamos que estamos validando el modelo de forma cruzada, cuando de hecho estamos validando el procedimiento de modelado. La diferencia puede ser filosófica, porque cuando escribe las matemáticas, la f podría representar el modelo o el procedimiento de modelado. Pero entonces uno podría preguntarse si está validando de forma cruzada el procedimiento que queremos o validando de forma cruzada el modelo. Cual es tu pensamiento
qoheleth
No puede validar de forma cruzada un modelo, ya que el modelo depende de la muestra de datos en la que se formó, tan pronto como lo ajuste a una muestra de datos diferente, es un modelo diferente. El punto que realmente estaba diciendo es que si ajusta el modelo de alguna manera en la muestra completa de datos (por ejemplo, al realizar la selección de características), la validación cruzada dará una estimación optimista de la generalización a medida que las particiones de prueba se han utilizado para ajustar aspectos del modelo (es decir, el conjunto de características utilizado). HTH.
Dikran Marsupial
No sé si está bien continuar nuestra discusión en la sección de comentarios, pero hasta que alguien diga lo contrario ... Sí, entiendo que su punto sobre CV debe hacerse en el nivel más externo y no lo estoy objetando. De hecho, ayer le di el mismo consejo a mi colega. Solo estoy señalando que a menudo no estamos seguros de lo que estamos validando de forma cruzada. Al mismo tiempo, me pregunto si lo que realmente queremos es obtener una evaluación del modelo, en lugar del procedimiento de modelado. Un remedio podría ser que uno puede pensar que está usando un error de procedimiento para estimar el error del modelo. Quizás esto funcione.
qoheleth
No podemos obtener una estimación directa del rendimiento de un modelo en particular sin tener un conjunto de pruebas externo. Sin embargo, el rendimiento del método para producir un modelo es un proxy razonable para el rendimiento del modelo en sí mismo, siempre que se valide de forma cruzada todo el método. En otras palabras, ¡estoy de acuerdo con el resumen en tu última oración!
Dikran Marsupial
5

He estado haciendo un extenso análisis de validación cruzada en un conjunto de datos que costó millones de adquisición, y no hay un conjunto de validación externo disponible. En este caso, realicé una validación cruzada anidada extensa para garantizar la validez. Seleccioné características y parámetros optimizados solo de los conjuntos de entrenamiento respectivos. Esto es computacionalmente costoso para grandes conjuntos de datos, pero es lo que tuve que hacer para mantener la validez. Sin embargo, hay complicaciones que vienen con él ... por ejemplo, se seleccionan diferentes características en cada conjunto de entrenamiento.

Entonces, mi respuesta es que en los casos en que no tiene acceso factible a un conjunto de datos externo, esta es una forma razonable de hacerlo. Cuando tienes un conjunto de datos externo, puedes ir a la ciudad como quieras en el conjunto de datos principal y luego probar una vez en el conjunto de datos externo.

usuario2643
fuente
@ user2643: ¿Tiene alguna referencia para compartir sobre cómo creó el CV anidado? ¿Estaba en la misma línea que el pdf al que me vinculé en mi pregunta? Además ... ¿son estos datos de marketing por casualidad?
B_Miner
@ user2643 El problema con ese enfoque (que es correcto) es que solo produce un único criterio de precisión (clasificación) o precisión (regresión); no podrá decir "esas son las características más interesantes", ya que varían de un lado a otro, como usted dijo. He estado trabajando con datos genéticos (600k variables) donde utilizamos 10 veces el CV con selección de características integradas, bajo un esquema de permutación (k = 1000, para estar cómodo al 5%) para evaluar la confiabilidad de los hallazgos. De esta manera, podemos decir: "nuestro modelo se generaliza bien o no", nada más.
chl
2
Si las características varían de un pliegue a otro, significa que no hay suficiente información para identificar con confianza las características útiles, por lo que lo vería como una ventaja de la validación cruzada (ya que es probable que solo mirar los resultados de un modelo único se ha sobrepasado el criterio de selección de características y, por lo tanto, puede ser engañoso). Para problemas con muchas características y pocas observaciones, la regresión de cresta a menudo brinda un mejor rendimiento, por lo que a menos que identificar las características sea un objetivo clave, a menudo es mejor no hacer ninguna selección de características.
Dikran Marsupial
nortepags
@ user2040: Perdón por la respuesta tardía. Creé mi propia implementación de software del enfoque de CV anidado. Debido a que mi investigación está relacionada con la bioinformática, planeo enviar una descripción del software pronto a una revista de bioinformática. Pero se puede usar en cualquier dominio de investigación. Si está interesado en probarlo, hágamelo saber. goldfish1434 en yahoo dot com
user2643