Rendimiento estadístico de XGBoost en el conjunto de pruebas de detección de modelosHola,
Estoy utilizando el cribado de modelos y la validación cruzada anidada para comparar varios modelos de aprendizaje automático (ML) y clasificar una enfermedad. XGBoost ofrece el mejor rendimiento en todos los conjuntos de prueba para ROC-AUC y la tasa de clasificación errónea. Sin embargo, al analizar otras estadísticas con más detalle mediante el análisis del umbral de decisión, obtengo todos los resultados (puntuaciones F1, MCC, sensibilidad, especificación, etc.) para todos los demás modelos, pero no para XGBoost en el conjunto de prueba. ¿Por qué? Quiero reportar estas estadísticas también. ¿Alguna sugerencia sobre cómo puedo obtener estas estadísticas para los conjuntos de prueba en el modelo XGBoost?
saludos,
Lunes
Análisis y modelado de datos básicosModelado predictivo y aprendizaje automáticoRe: Rendimiento estadístico de XGBoost en el conjunto de pruebas de detección de modelosHola @Lu ,
Solo para aclarar, los ajustes de los umbrales de decisión deben realizarse en el conjunto de validación, no en el conjunto de prueba.
A continuación se ofrecen algunos recordatorios sobre los términos utilizados y su uso:
- Conjunto de entrenamiento :Se utiliza para el entrenamiento real del(los) modelo(s).
- Conjunto de validación :Se utiliza para la optimización del modelo (ajuste fino de hiperparámetros, selección de características/umbrales, ... por ejemplo) y la selección del modelo.
- Conjunto de prueba :Se utiliza para la generalización y la evaluación del rendimiento predictivo del modelo seleccionado en datos nuevos/no vistos.
El propósito del conjunto de validación es ayudar a comparar y seleccionar un modelo, así como a ajustar los hiperparámetros o los umbrales de decisión.
El conjunto de pruebas no debe usarse de ninguna manera durante el entrenamiento y el ajuste del modelo, ya que sirve como una "validación" final imparcial de su modelo y una evaluación final del rendimiento de su modelo.
Puede leer más sobre la distinción entre conjuntos de validación y de prueba en las siguientes conversaciones:
Si vemos los resultados de "Entrenamiento" y "Validación" en la salida incluso cuando aplicamos el modelo a los datos de prueba y de entrenamiento por separado en JMP Pro, ¿qué debemos hacer para obtener solo los resultados de los datos de prueba y de entrenamiento? VALIDACIÓN CRUZADA - MÉTODO DE COLUMNA DE VALIDACIÓN
...
En cuanto a su pregunta específica, si no me equivoco, XGBoost solo está disponible para la versión JMP Pro a través de un complemento creado por @russ_wolfinger , por lo que dado que es una funcionalidad agregada a través de un complemento, es posible que no todas las opciones de ajuste del modelo estén disponibles (como el umbral de decisión. Puede crear un deseo en la lista de deseos de JMP o escribir un comentario sobre esta situación en la página dedicada al complemento XGBoost .
Sin embargo, si XGBoost es el modelo con mejor rendimiento, podría:
- Separe primero el conjunto de pruebas de los datos de entrenamiento/validación. De esta manera, el modelo no verá los datos de prueba en ningún paso y solo los usará una vez que el modelo haya fijado los hiperparámetros y el umbral de decisión.
- Cree una columna de validación de K-folds en su conjunto de datos de entrenamiento/validación.
- Inicie la plataforma XGBoost (desde el menú de complementos), especifique la validación de la columna K-folds:

- Ejecute el entrenamiento XGBoost y ajuste el umbral de decisión en el conjunto de validación:

- Guarde la fórmula de predicción y evalúe el rendimiento en el conjunto de pruebas.
Espero que esta respuesta te ayude.
Re: Rendimiento estadístico de XGBoost en el conjunto de pruebas de detección de modelosGracias por la excelente respuesta @Victor_G
@Lu , quería mencionar que, para la selección de modelos, corregimos un problema de fugas en la versión 19, disponible ya a través de Early Adopter y con lanzamiento previsto para unas semanas. Sugiero volver a ejecutar la versión 19 una vez que la tengas. Creo que los resultados de la prueba de XGBoost deberían estar presentes y, como bien indica @Victor_G , siempre usa la división del conjunto de pruebas para comparar modelos.
Nota: XGBoost y Torch se diferencian de otras plataformas JMP en que solo utilizan divisiones bidireccionales (entrenamiento y validación), pero no revisan la división de validación durante el entrenamiento, por lo que los resultados de la validación están libres de fugas. Su configuración está diseñada para la validación cruzada K-Fold completa y el almacenamiento de predicciones fuera de pliegue en lugar de realizar una única división triple.
Un par de sugerencias adicionales:
1. Prueba la opción Autotune en XGBoost, usando la configuración independiente descrita por @Victor_G . (También incluye la utilidad "Crear columnas K-Fold" con el complemento). Probablemente logres un rendimiento aún mejor fuera del plegado.
2. Las redes neuronales de aprendizaje profundo de Torch también merecen la pena probarse a modo de comparación y, para obtener el máximo rendimiento, combínelas con XGBoost.
Re: Rendimiento estadístico de XGBoost en el conjunto de pruebas de detección de modelosGracias por la excelente respuesta, Víctor y Ross. ¡Ya estoy deseando ver las novedades que traerá la plataforma de selección de modelos en la versión 19 próximamente!
Saludos,
Juego