2 votos

F1 ponderado frente a pérdida logarítmica en SciKit learn RandomSearchCV

Siento hacer otra pregunta sobre este tema, pero sigo teniendo dudas sobre lo siguiente:

Cuando uso 'F1_weighted' como mi argumento de puntuación en un RandomizedSearchCV entonces el rendimiento de mi mejor modelo en el conjunto hold-out es mucho mejor que cuando neg_log_loss se utiliza en RandomizedSearchCV . En ambos casos, la puntuación brier es aproximadamente similar (tanto en el entrenamiento como en la prueba ~ 0,2). Sin embargo, dado el énfasis actual en neg_log_loss puntúa como función de coste casi da la sensación de que sería un error utilizar cualquier otro puntuador (incluso cuando el rendimiento es mejor). ¿Es esto cierto?

EDITAR I

Más información sobre el estudio y el tamaño de la muestra:

  1. El objetivo es encontrar los principales predictores relacionados con la hospitalización (esto podría ser indicativo del deterioro de la enfermedad) --> Estos hallazgos pueden guiar nuevas investigaciones sobre estos predictores y no están directamente pensados como herramienta de pronóstico.
  2. Tengo un conjunto de fechas que se divide en X_train, X_test, donde el conjunto de prueba sólo se utiliza para las predicciones después de la optimización de hiperparámetros.
  3. Las clases están desequilibradas (1/3 de los pacientes eran no hospitalizados y 2/3 fueron hospitalizados)
  4. Se consideraron los siguientes clasificadores (regresión logística con lasso, SVC con RBF o poli kernel, RF, XGBoost)
  5. RandomSearchCV con RepeatedStratifiedKFoldCV (10 pliegues, 5 repeticiones)
  6. Me está costando decidirme por un puntuador adecuado para optimizar durante RandomSearchCV --> neg_log_loss o F1_weighted.
  7. ¿Tendría sentido realizar un bootstrap del conjunto de pruebas y comprobar la varianza del rendimiento en el conjunto de pruebas de espera, en lugar de utilizar "un" conjunto de pruebas de espera?

El desequilibrio se contrarrestó poniendo class_weights durante la búsqueda aleatoriaCV y la división entrenamiento-prueba se estratificaron en función del desequilibrio de clases.

EDITAR II

Visión general de las medidas de calibración:

F1_weighted en RandomizedSearchCV --> puntuación brier = 0,19 (conjunto de pruebas hold-out) & Log_loss = 0,76 (conjunto de pruebas hold-out)

Neg_log_loss en RandomizedSearchV --> puntuación brier = 0,2 (conjunto de pruebas hold-out) log_loss = 0,58 (conjunto de pruebas hold-out).

El log_loss en F1_weighted es mucho mayor que en log_loss (la optimización ha funcionado), pero no hay prácticamente ninguna diferencia en la puntuación brier?

1voto

EdM Puntos 5716

El objetivo es encontrar los principales predictores relacionados con la hospitalización (esto podría ser indicativo del deterioro de la enfermedad) --> Estos hallazgos pueden guiar nuevas investigaciones sobre estos predictores y no están directamente pensados como herramienta de pronóstico.

En primer lugar, uno espera que los "principales predictores relacionados con la hospitalización" no difieran mucho entre estos modelos. No es necesario elegir un solo modelo para alcanzar ese objetivo. Mostrar los resultados de varios modelos que apunten todos a los mismos predictores reforzará sus argumentos.

Si los modelos difieren sustancialmente entre los principales predictores, entonces existe un problema potencialmente grave. Tendría que examinar las razones y decidir cuál de los modelos podría "orientar mejor la nueva investigación sobre estos predictores" basándose más en su comprensión de la situación clínica.

La excepción serían los modelos LASSO. Los predictores en los estudios clínicos tienden a estar muy interrelacionados, y la elección de LASSO de cuál de un conjunto de predictores correlacionados retener puede depender mucho de la muestra.

En segundo lugar, con ese objetivo en mente, la matriz de confusión concreta que parezca mejor deja de ser un problema. Lo fundamental es disponer de modelos bien calibrados. La calibración representa la calidad del modelo en toda la gama de probabilidades, evaluada mediante medidas como la pérdida logarítmica o las puntuaciones de Brier. A continuación, hay que centrarse en los predictores que son importantes en los modelos calibrados y que podrían ser susceptibles de intervenciones para reducir las hospitalizaciones evitables.

En tercer lugar, las diferencias en las matrices de confusión podrían ser exageradas en sus ejemplos. La matriz XGBoost se basa evidentemente en un límite de probabilidad de 0,5, mientras que un límite diferente podría dar mejores resultados. Además, y quizá más importante, las matrices se basan en un único conjunto de pruebas. Existe el peligro de que un modelo que parezca ser mejor con ese conjunto de pruebas sea peor con una elección diferente de la división entrenamiento/prueba y, por tanto, no sea el modelo que mejor represente las características de la población subyacente.

Puede aclarar estas cuestiones volviendo a muestrear los datos para validar el proceso de construcción del modelo. Ya está utilizando el remuestreo en la validación cruzada (dentro de su conjunto de entrenamiento) para elegir los valores de los hiperparámetros. Pruebe a utilizar el remuestreo bootstrap a un nivel aún más alto.

Con conjuntos de datos de menos de varios miles de casos, es mejor utilizar la función conjunto completo de datos para construir el modelo y luego probar rendimiento de modelado vía arranque . Pruebe lo siguiente para cada uno de sus tipos de modelo y funciones de puntuación, lo que no debería ser demasiado oneroso con su enfoque automatizado y sólo unos pocos cientos de casos.

Después de construir un modelo con el conjunto completo de datos,* tome repetidas muestras bootstrap de sus datos. Realice todo el proceso de modelado (incluida la optimización de hiperparámetros) en cada muestra bootstrap como conjunto de entrenamiento y, a continuación, utilice la muestra de datos completa como conjunto de prueba. Como el bootstrap imita el proceso de tomar una muestra de datos de la población subyacente, este proceso proporciona una estimación de lo bien que funcionaría el proceso de construcción del modelo en múltiples muestras de esa población.

Examine el rendimiento de cada uno de sus tipos de modelos y funciones de puntuación en muchas muestras bootstrap. Observe el rendimiento medio de los modelos basados en bootstrap como medida de la calidad general. Observe las diferencias entre las predicciones del conjunto de entrenamiento y las del conjunto de prueba para evaluar el sesgo del modelo. Para los modelos que hacen selección de predictores o clasifican la importancia de los predictores, vea lo bien que se mantienen esas selecciones o clasificaciones entre los modelos basados en bootstrap.

Es posible, después de haber pasado por ese proceso, que el modelo de bosque aleatorio basado en la F1_weighted puntuación seguirá siendo la mejor según sus criterios. Como su objetivo es identificar predictores importantes en lugar de desarrollar una herramienta de pronóstico, podría preocuparse menos por cómo ha llegado a un modelo y preocuparse más por lo bien que el modelo le señala los predictores críticos.

Le recomiendo que examine detenidamente Notas del curso de Frank Harrell para orientarse. Aunque está escrito desde la perspectiva de los modelos de regresión, los principios se aplican de forma muy general. El capítulo 5 es especialmente relevante para la evaluación y validación de modelos, y la sección 4.10 aborda las formas de comparar modelos.


*Dos pensamientos sobre su modelado per se. Por un lado, tu desequilibrio de clases no es tan malo. Tus intentos de ajustar el desequilibrio de clases podrían estar empeorando los problemas con algunos tipos de modelos. Por otro lado, asegúrese de que este modelo de probabilidad/clasificación de eventos es apropiado para sus datos. Si está examinando algo como readmisiones hospitalarias de 60 días, cuando tiene datos completos de todos los casos para todo el periodo de tiempo, está bien. Si se trata de un periodo de tiempo más largo, en el que lo único que se puede decir es que algunas personas no han sido hospitalizadas pero Debería tenerlo en cuenta con un modelo de supervivencia basado en el tiempo que se encargue de "censurar correctamente" los tiempos de los sucesos. Existen implementaciones de bosques aleatorios, gradient-boosting y varias implementaciones estándar de regresión de supervivencia disponibles para modelos de supervivencia, al menos en R.

**En términos de esos argumentos teóricos, aunque F1_weighted no es una regla de puntuación adecuada, supera un límite de la puntuación F1 estándar -ignorar los verdaderos negativos- calculando puntuaciones F1 separadas para ambas clases como la clase positiva, y luego haciendo una media ponderada. La pérdida logarítmica pone mucho peso en los extremos de la escala de probabilidad y puede que no siempre sea la mejor opción entre las reglas de puntuación adecuadas. Usted podría, por ejemplo, tratar de utilizar la puntuación Brier en lugar de log-loss como criterio para la construcción de modelos para minimizar los problemas en los extremos de probabilidad.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X