2 votos

eliminación recursiva de características: por qué seleccionar un subconjunto basado en el AUC frente a la sensibilidad/especificidad

Tengo un pequeño conjunto de datos de 25 observaciones con una variable de clasificación (factor 0,1) y 82 características escaladas para tener valores entre 0 y 1. Utilicé el rfe() función del caret para identificar el mejor subconjunto de características (2:30) en términos de metric="ROC" (que creo que es realmente AUC).

El mejor subconjunto (14 características) tiene un AUC de 0.85 La sensibilidad de 0.69 y la especificidad de 0.67 . Sin embargo, mientras que el subconjunto de 2 características tiene un AUC más bajo de 0.74 tiene una mayor sensibilidad de 0.77 y una especificidad equivalente.

(otro ejemplo es el subconjunto 15: AUC igual a 4 dígitos con mejor sensibilidad)

Entiendo que el AUC es una medida global de la precisión diagnóstica, pero no estoy muy seguro de por qué debería seleccionar un resultado con un AUC más alto y una combinación más baja de sensibilidad y especificidad. ¿Por qué el AUC es la mejor métrica para elegir entre subconjuntos?

# get data (N=25)
  library(RCurl)
  x <-
 getURL("https://gist.githubusercontent.com/ericpgreen/3acb033240f273e4cbfb83d36156839a/raw/42d62fa52b002fc68392e2771d20f0adc4713377/rfeEx2.csv")
  df <- read.csv(text = x)
  df <- df[, -1]
  df$class <- factor(df$class)

# specify and run rfe
  library(mlbench)
  library(caret)
  set.seed(1)
  rfFuncs$summary <- twoClassSummary  
  control <- rfeControl(functions=rfFuncs, 
                        method = "LOOCV",
                        repeats =5, 
                        number = 10,
                        returnResamp="final", 
                        verbose = TRUE)
  trainctrl <- trainControl(classProbs= TRUE,
                            summaryFunction = twoClassSummary)
  result <- rfe(df[, 2:length(df)],         # features
                df[, 1],                    # classification
                sizes=2:30,             
                rfeControl=control,
                method="svmRadial",
                metric = "ROC",
                trControl = trainctrl)
  result

Este es el resultado:

Recursive feature selection

Outer resampling method: Leave-One-Out Cross-Validation 

Resampling performance over subset size:

 Variables    ROC   Sens   Spec Selected
         2 0.7372 0.7692 0.6667         
         3 0.7308 0.6923 0.6667         
         4 0.7628 0.6923 0.5000         
         5 0.7372 0.6923 0.4167         
         6 0.7179 0.6923 0.5000         
         7 0.7628 0.6923 0.6667         
         8 0.7821 0.6923 0.6667         
         9 0.8013 0.6923 0.6667         
        10 0.8077 0.6923 0.5833         
        11 0.8205 0.6923 0.6667         
        12 0.8397 0.6923 0.5000         
        13 0.8333 0.6923 0.5833         
        14 0.8462 0.6923 0.6667        *
        15 0.8462 0.7692 0.6667         
        16 0.8205 0.6923 0.6667         
        17 0.8237 0.6923 0.6667         
        18 0.8269 0.6923 0.6667         
        19 0.8269 0.6923 0.6667         
        20 0.8269 0.6923 0.5000         
        21 0.8077 0.6923 0.5000         
        22 0.8205 0.6923 0.5833         
        23 0.8333 0.7692 0.5833         
        24 0.8109 0.6923 0.5833         
        25 0.8301 0.6923 0.5833         
        26 0.8429 0.7692 0.6667         
        27 0.8205 0.7692 0.6667         
        28 0.8205 0.6923 0.6667         
        29 0.8205 0.7692 0.6667         
        30 0.8397 0.7692 0.6667         
        82 0.8013 0.6923 0.6667         

The top 5 variables (out of 14):
   v9, v69, v41, v4, v30

3voto

usεr11852 Puntos 5514

Descargo de responsabilidad: Por lo general, no apruebo el uso de algoritmos de selección automática de características. Son propensos a sobreajustar, a enfatizar asociaciones sin sentido, a depender demasiado de una métrica particular utilizada y comúnmente presentan una buena herramienta para el análisis de datos sin sentido. Probablemente sean útiles para la importancia de las variables en algunos entornos en los que el coste de la recogida de datos es un problema... :) A su pregunta ahora:

La elección de AUC-ROC es sólo una elección estándar y no hay que darle demasiada importancia. El AUC-ROC puede considerarse una métrica que no depende de umbrales de probabilidad concretos en el caso de clasificación probabilística . Además, tiene una bonita asociación con el Prueba U de Mann-Whitney (es decir, puede interpretarse fácilmente como la probabilidad de que el clasificador asigne una mayor probabilidad a un elemento positivo elegido al azar que a un elemento negativo elegido al azar) y no se ve demasiado afectado por los datos desequilibrados. Por estas razones, es el helado de vainilla establecido de las métricas de clasificación.

Como usted evalúa correctamente, maximizar el AUC-ROC no garantiza que vayamos a obtener la mejor combinación de sensibilidad y especificidad o cualquier otra métrica particular. (Si está interesado en la combinación de ambos, puede considerar el uso de Puntuación F ) En la mayoría de las aplicaciones, definir una métrica correcta es la mitad de la batalla. Para un clasificador probabilístico, yo sugeriría que se utilizara un regla de puntuación adecuada como la puntuación de la Brier. Tenga en cuenta que la precisión no suele ser una buena métrica porque es una regla impropia (es decir, maximizarla no garantiza que nos acerquemos lo más posible a las verdaderas distribuciones de probabilidad de los datos).

Notas adicionales particulares al caso de uso presente:

  1. En el caso de las máquinas de vectores de apoyo, el concepto AUC-ROC es un poco confuso. Las SVM realizan de forma nativa una asignación de clases difícil y tienen que confiar en regresión isotónica o Escala de Platt enfoques para generar distribuciones de probabilidad sobre las clases. Esto añade una capa adicional de complejidad.
  2. En primera instancia, podría sugerir el uso de un enfoque de regularización "estándar" como Red elástica o Regresión de ángulo mínimo (para controlar directamente el $n \ll p$ escenario que usted describe. Las técnicas harán la "selección de variables" internamente a través de la regularización.
  3. Los valores de sensibilidad y especificidad que se ven en la salida de rfe están relacionados con un $0.5$ umbral de probabilidad. Es posible que se pueda obtener un mejor rendimiento utilizando otro umbral.
  4. El AUC-ROC es probablemente mejor que el uso de la sensibilidad y la especificidad. Tanto la sensibilidad como la especificidad son reglas de puntuación impropias que son difíciles de optimizar adecuadamente. Por ejemplo, aumentar correctamente la probabilidad de que un elemento pertenezca a una clase concreta no aumenta ni la sensibilidad ni la especificidad a menos que el aumento supere un umbral arbitrario (normalmente $0.5$ ). Este cambio correcto en la probabilidad estimada se reflejará directamente en el valor AUC-ROC.
  5. ROC , es decir. Característica operativa del receptor se utiliza en lugar de simplemente AUC Área bajo la curva porque el AUC también puede definirse fácilmente para muchas otras métricas. Una de las más comunes es el AUC-PR, el área bajo la curva de precisión-recuperación, una métrica muy popular para el aprendizaje desequilibrado (por ejemplo, véase el artículo de Davis y Goadrich La relación entre la precisión y la recuperación y las curvas ROC para saber más sobre esto).

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