¿Cómo construir el modelo final y el umbral de probabilidad de sintonización después de la validación cruzada anidada?


17

En primer lugar, disculpas por publicar una pregunta que ya se ha discutido extensamente aquí , aquí , aquí , aquí , aquí, y para recalentar un viejo tema. Sé que @DikranMarsupial ha escrito sobre este tema extensamente en publicaciones y artículos de revistas, pero todavía estoy confundido, y a juzgar por la cantidad de publicaciones similares aquí, todavía es algo que otros luchan por comprender. También debo decir que he recibido contradicciones sobre este tema, lo que ha aumentado mi confusión. También debe saber que originalmente soy un físico y no un estadístico, por lo que mi experiencia en el dominio aquí es algo limitada. Estoy escribiendo un artículo de diario en el que quiero usar un CV anidado para estimar el rendimiento que puedo esperar de mi modelo final. En mi dominio, este es el primero. (Casi nunca usamos ninguno¡Forma de CV robusto en mi campo, pero bombeo alegremente documentos con resultados de estudios que utilizan redes neuronales y árboles de decisión potenciados!) Por lo tanto, es muy importante que tenga una comprensión muy completa y clara para no arruinar y propagar ¡un procedimiento erróneo para mi comunidad que podría desaprender años! ¡Gracias! Con la pregunta ...

¿Cómo construyo el modelo final después de la validación cruzada anidada?

Estoy entrenando un modelo glmnet simple con regularización L1 y L2. Es rápido, simple e interpretable. Realizo transformaciones de centrado de características, escalado y Box-Cox para que las distribuciones de características estén centradas en la media, estandarizadas y sean algo gaussianas. Realizo este paso dentro de la validación cruzada, para evitar fugas de información. Simplemente porque mi hardware es increíblemente lento y no tengo acceso a más potencia de CPU, también realizo una selección rápida de funciones basadas en filtros dentro de CV después del preprocesamiento de funciones. Estoy usando la búsqueda de cuadrícula aleatoria para elegir los hiperparámetros alfa y lambda. Entiendo que no deberíaCV loop para obtener esta estimación. Entiendo que el bucle CV interno se usa para la selección del modelo (en este caso, los hiperparámetros óptimos) y que el bucle externo se usa para la evaluación del modelo , es decir, el CV interno y externo tienen dos propósitos diferentes que a menudo se combinan erróneamente. (¿Cómo estoy hasta ahora?)

Ahora, los enlaces que publiqué sugieren que "la forma de pensar en la validación cruzada es estimar el rendimiento obtenido utilizando un método para construir un modelo, en lugar de estimar el rendimiento de un modelo". Dado eso, ¿cómo debo interpretar los resultados del procedimiento de CV anidado?

El consejo que he leído parece indicar lo siguiente --- corríjame si esto está mal: el CV interno es parte del mecanismo que me permite seleccionar los hiperparámetros óptimos alfa y lambda de mi modelo glmnet. El CV externo indica la estimación que puedo esperar obtener del modelo final si aplico el procedimiento exactamente como se usa en el CV interno, incluida la sintonización de hiperparámetros y el uso del conjunto de datos completo para construir el modelo final. Es decir, el ajuste del hiperparámetro es parte del "método para construir el modelo". ¿Es esto correcto o no? Porque esto es lo que me confunde. En otras partes he visto que el procedimiento para construir el modelo final que se implementará implica la capacitación en todo el conjunto de datos utilizando los valores fijosde los hiperparámetros elegidos con CV. Aquí, el "método para construir el modelo" no incluye el ajuste. Entonces, cual es? ¡En algún momento se eligen y fijan los hiperparámetros óptimos para construir el modelo final! ¿Dónde? ¿Cómo? Si mi ciclo interno es de 5 CV y ​​mi ciclo externo es de 5 CV, y selecciono, por ejemplo, 100 puntos para probar como parte de la búsqueda aleatoria de cuadrícula en el CV interno, ¿cuántas veces realmente entreno el glmnet? ¿modelo? (100 * 5 * 5) + 1 para la compilación final, ¿o hay más pasos que desconozco?

Básicamente, necesito una descripción muy clara de cómo interpretar la estimación de rendimiento del CV anidado y cómo construir el modelo final.

También me gustaría saber el procedimiento apropiado para seleccionar el umbral de probabilidad para convertir los puntajes de probabilidad de mi modelo glmnet final en etiquetas de clase (binarias). ¿Se necesita otro ciclo de CV?

Respuestas:


8

Validación cruzada anidada explicada sin anidamiento

Así es como veo la validación cruzada (anidada) y la construcción de modelos. Tenga en cuenta que soy químico y, al igual que usted, mira desde el lado de la aplicación hasta el proceso de construcción del modelo (ver más abajo). Mi punto principal aquí es, desde mi punto de vista, no necesito una variedad anidada dedicada de validación cruzada. Necesito un método de validación (por ejemplo, validación cruzada) y una función de entrenamiento modelo:

model = f (training data)

La función de entrenamiento modelo "my" f no necesita hiperparámetros porque internamente realiza todos los ajustes de hiperparámetros (por ejemplo alpha, su lambday threshold).

En otras palabras, mi función de entrenamiento puede contener cualquier cantidad de validaciones cruzadas internas (o fuera de bolsa o cualquier estimación de rendimiento que pueda considerar útil). Sin embargo, nota que la distinción entre parámetros y hiperparámetros normalmente es que los hiperparámetros tienen que estar sintonizados en el conjunto de datos / aplicación en cuestión, mientras que los parámetros pueden ser equipados con independencia de qué datos se trata. Por lo tanto, desde el punto de vista del desarrollador de un nuevo algoritmo de clasificación, tiene sentido proporcionar solo la función de ajuste "desnudo" ( g (training data, hyperparameters)) que se ajusta a los parámetros si se proporcionan datos e hiperparámetros.

El punto de tener la función de entrenamiento "externo" fes que después de que realizó su ejecución de validación cruzada, le brinda una forma directa de entrenar "en todo el conjunto de datos": simplemente use en f (whole data set)lugar de la llamada f (cv split training data)para los modelos sustitutos de validación cruzada.

Por lo tanto, en su ejemplo, tendrá 5 + 1 llamadas a f, y cada una de las llamadas ftendrá, por ejemplo, 100 * 5 llamadas a g.


umbral de probabilidad

Si bien puede hacer esto con otra validación cruzada, esto no es necesario: es solo un hiperparámetro más que tiene su modelo listo para usar y se puede estimar en su interior f.

Lo que necesita para solucionarlo es una heurística que le permite calcular dicho umbral. Existe una amplia variedad de heurísticas (desde ROC y especificar lo importante que es evitar falsos positivos en comparación con falsos negativos sobre sensibilidad o especificidad mínima aceptable o PPV o NPV para permitir dos umbrales y, por lo tanto, un nivel "incierto" (NA), etc. ) que son adecuados en diferentes situaciones: las buenas heurísticas suelen ser muy específicas de la aplicación.

Pero para la pregunta aquí, puede hacer esto adentro fy, por ejemplo, usar las predicciones obtenidas durante la validación cruzada interna para calcular ROC y luego encontrar su punto de trabajo / umbral en consecuencia.


Comentarios específicos a partes de la pregunta

Entiendo que no debería informar el rendimiento del CV utilizado para elegir los hiperparámetros óptimos como una estimación del rendimiento esperado de mi modelo final (que sería demasiado optimista), sino que debería incluir un ciclo CV externo para obtener esta estimación .

Si. (Aunque la estimación interna contiene información en relación con la estimación externa: si es mucho más optimista que la estimación externa, generalmente está sobreajustando).

Entiendo que el bucle CV interno se usa para la selección del modelo

Cualquier tipo de ajuste de modelo basado en datos, realmente -> eso incluye ajustar su umbral de corte.

(en este caso, los hiperparámetros óptimos) y que el bucle externo se usa para la evaluación del modelo, es decir, el CV interno y externo tienen dos propósitos diferentes que a menudo se combinan erróneamente.

Si.

Es decir, el ajuste del hiperparámetro es parte del "método para construir el modelo".

También prefiero verlo de esta manera: soy químico y, como se ve desde el lado de la aplicación: para mí, un modelo entrenado / ajustado no está completo sin los hiperparámetros, o más precisamente, un modelo es algo que puedo usar directamente para obtener predicciones Aunque, como observa, otras personas tienen una vista diferente (sin ajuste de hiperparámetro). En mi experiencia, este suele ser el caso de las personas que desarrollan nuevos modelos: el ajuste de hiperparámetros es un "problema resuelto" y no se considera. (nota al margen: su opinión sobre lo que puede hacer la validación cruzada en términos de validación también es ligeramente diferente de lo que puede hacer la validación cruzada desde el lado de la aplicación).

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.