Elegir una métrica de rendimiento de clasificación para la selección de modelo, selección de características y publicación

8

Tengo un pequeño conjunto de datos no balanceados (70 positivos, 30 negativos), y he estado jugando con la selección del modelo para los parámetros SVM usando BAC (precisión equilibrada) y AUC (área bajo la curva). Utilicé diferentes pesos de clase para el parámetro C en libSVM para compensar los datos no balanceados siguiendo el consejo aquí ( Entrenando un árbol de decisión contra datos no balanceados ).

  1. Parece que el error de validación cruzada k-fold es muy sensible al tipo de medida de rendimiento. También tiene un error en sí mismo porque los conjuntos de entrenamiento y validación se eligen al azar. Por ejemplo, si repito BAC dos veces con diferentes semillas aleatorias, obtendré diferentes errores y, posteriormente, diferentes valores de parámetros óptimos. Si promedio los puntajes repetidos de BAC, promediar 1000 veces me dará valores de parámetros óptimos diferentes que promediar 10000 veces. Además, cambiar el número de pliegues me da diferentes valores de parámetros óptimos.

  2. Las métricas de precisión para la validación cruzada pueden ser demasiado optimistas. Por lo general, cualquier cosa que supere una validación cruzada doble me da una precisión del 100%. Además, la tasa de error se discretiza debido al pequeño tamaño de la muestra. La selección del modelo a menudo me dará la misma tasa de error en todos o la mayoría de los valores de los parámetros.

  3. Al escribir un informe, ¿cómo podría saber que una clasificación es 'buena' o 'aceptable'? En el campo, parece que no tenemos algo como una bondad de ajuste o un umbral de valor p comúnmente aceptado. Dado que estoy agregando datos de forma iterativa, me gustaría saber cuándo parar, ¿cuál es una buena N en la que el modelo no mejora significativamente?

Dados los problemas descritos anteriormente, parece que la precisión no se puede comparar fácilmente entre publicaciones, mientras que AUC se ha descrito como un indicador deficiente de rendimiento (ver aquí , o aquí , por ejemplo).

¿Algún consejo sobre cómo abordar cualquiera de estos 3 problemas?

bravetang8
fuente
1
Lo que desea hacer en gran medida no se puede hacer, especialmente con tan pocos datos. Eso es practicamente todo. Con respecto a su punto de que no tiene una convención como un umbral para los valores p, probablemente debería estar agradecido.
gung - Restablecer Monica

Respuestas:

5

Parece que el error de validación cruzada k-fold es muy sensible al tipo de medida de rendimiento. También tiene un error en sí mismo porque los conjuntos de entrenamiento y validación se eligen al azar.

Creo que ha descubierto la gran variación de las medidas de rendimiento que son proporciones de recuentos de casos, como # predicciones correctas# Casos de prueba. Intenta estimar, por ejemplo, la probabilidad de que su clasificador devuelva una respuesta correcta. Desde el punto de vista estadístico, eso se describe como un ensayo de Bernoulli, que conduce a una distribución binomial. Puede calcular intervalos de confianza para distribuciones binomiales y encontrará que son muy amplias. Por supuesto, esto limita su capacidad para hacer una comparación de modelos.

Con los esquemas de validación de remuestreo, como la validación cruzada, tiene una fuente adicional de variación: la inestabilidad de sus modelos (a medida que construye k modelos sustitutos durante cada carrera de CV)

Además, cambiar el número de pliegues me da diferentes valores de parámetros óptimos.

Eso es de esperarse debido a la varianza. Puede tener un efecto adicional aquí: libSVM divide los datos solo una vez si usa su validación cruzada incorporada para el ajuste. Debido a la naturaleza de los SVM, si construyó el SVM con datos de entrenamiento idénticos y varía lentamente los parámetros, encontrará que los vectores de soporte (y, en consecuencia, la precisión) saltan: siempre que los parámetros de SVM no sean demasiado diferentes, seguirá siendo elige los mismos vectores de soporte. Solo cuando los parámetros se cambian lo suficiente, de repente resultarán diferentes vectores de soporte. Por lo tanto, evaluar la cuadrícula de parámetros SVM con exactamente las mismas divisiones de validación cruzada puede ocultar la variabilidad, que se ve entre diferentes ejecuciones.

En mi humilde opinión, el problema básico es que haces una búsqueda de cuadrícula, que es una optimización que se basa en un comportamiento razonablemente suave de tu objetivo funcional (precisión o cualquier otra cosa que uses). Debido a la gran variación de sus mediciones de rendimiento, se viola esta suposición. La dependencia "nerviosa" del modelo SVM también viola esta suposición.

Las métricas de precisión para la validación cruzada pueden ser demasiado optimistas. Por lo general, cualquier cosa que supere una validación cruzada doble me da una precisión del 100%. Además, la tasa de error se discretiza debido al pequeño tamaño de la muestra. La selección del modelo a menudo me dará la misma tasa de error en todos o la mayoría de los valores de los parámetros.

Eso es de esperar dados los problemas generales del enfoque.

Sin embargo, generalmente es posible elegir valores de parámetros realmente extremos donde el clasificador se descompone. En mi humilde opinión, el rango de parámetros donde los SVM funcionan bien es información importante.

En cualquier caso, necesita una validación externa (doble / anidada) del rendimiento del modelo que elija como 'mejor'.

Probablemente haría una serie de ejecuciones / repeticiones / iteraciones de una validación cruzada externa o una validación externa fuera de lugar y dar la distribución de

  • hiperparámetros para el "mejor" modelo
  • rendimiento informado de la afinación
  • rendimiento observado de validación externa

La diferencia entre los dos últimos es un indicador de sobreajuste (por ejemplo, debido al "descremado" de la varianza).

Al escribir un informe, ¿cómo podría saber que una clasificación es 'buena' o 'aceptable'? En el campo, parece que no tenemos algo como una bondad de ajuste o un umbral de valor p comúnmente aceptado. Dado que estoy agregando datos de forma iterativa, me gustaría saber cuándo parar, ¿cuál es una buena N en la que el modelo no mejora significativamente?

(¿Qué está agregando? ¿Casos o variantes / características?)

En primer lugar, si realiza un modelado iterativo, debe informar que, debido a su procedimiento de ajuste, su rendimiento no debe tomarse en serio, ya que está sujeto a un sesgo optimista. La mejor alternativa es hacer una validación del modelo final. Sin embargo, los datos de la prueba deben ser independientes de todos los datos que alguna vez ingresaron a la capacitación o su proceso de decisión para el modelado (por lo que es posible que no le queden dichos datos).

cbeleites descontentos con SX
fuente
Gracias por la excelente respuesta. Por lo que entiendo, su estrategia implicaría construir una distribución de hiperparámetros a partir de rangos de valores que provienen de múltiples pliegues / iteraciones externas. (1) En este caso, ¿las precisiones optimistas o AUC están bien? Creo que una métrica pesimista sería mejor para encontrar el "mejor modelo" porque, de lo contrario, la distribución de los puntajes de los CV repetidos sería 'de una cola'. (2) Además, me parece peculiar que promediar más iteraciones de CV no necesariamente ayuda, ¿es porque los errores no se distribuyen probabilísticamente debido a la inestabilidad del modelo SVM?
bravetang8
Para aclarar mi última pregunta, estoy agregando casos iterativamente con experimentos. Estoy usando un modelo inicial para elegir puntos 'informativos', desde los cuales puedo reconstruir y refinar el modelo original. Lo que esencialmente deseo saber es cuántos casos necesito agregar para que el error estimado (de la validación externa) esté sesgado mínimamente. Esperaba que haya una relación caso / característica que sea 'aceptable'.
bravetang8
@ bravetang8: (1) tiene razón: las medidas sesgadas de manera optimista no son una buena idea: no para la optimización interna porque la optimización no puede distinguir entre diferentes modelos que parecen ser perfectos. No para la optimización externa, porque en muchas aplicaciones es mejor tener una estimación conservadora del rendimiento que una estimación demasiado optimista. Pero es bueno saber si la optimización interna adolece de que la estimación interna sea demasiado optimista, o si esto no es un problema aquí.
Cbeleites descontento con SX
@ bravetang8: 2) promediar iteraciones del CV reducirá solo la parte de la variación que se debe a la inestabilidad del modelo, pero no la parte que se debe a su conjunto de casos finitos. Entonces, después de "suficientes" iteraciones, la variación del tipo de inestabilidad del modelo solo será un contribuyente menor a la variación total y no ayuda a ir a más iteraciones.
Cbeleites descontento con SX
@cbeleites, hola cbeleites, me preguntaba si tienes tiempo para leer esta publicación, aunque el profesor Harrel ya hizo una nota importante aquí. Gracias. stats.stackexchange.com/questions/86917/…
lennon310
3

Más simple que BIR son las reglas de puntuación logarítmicas o cuadráticas (Brier). Estos son puntajes adecuados que, a diferencia de la proporción clasificada correctamente, no darán lugar a un modelo falso después de la optimización.

Frank Harrell
fuente
Para eso, el OP necesita cambiar a salida de probabilidad para el SVM. IIRC, al menos con libSVM, esto se calcula ajustando una logística, y no estoy seguro de qué tan relacionado está esto con el SVM original.
Cbeleites descontento con SX
1

Como usted señala, la precisión predictiva y el AUC son limitados en ciertos aspectos. Le daría una oportunidad a la Recompensa de información bayesiana (BIR), que debería dar una evaluación más sensible de qué tan bien o mal está su clasificador y cómo eso cambia a medida que ajusta sus parámetros (número de pliegues de validación, etc.).

La intuición de BIR es la siguiente: un apostador es recompensado no solo por identificar a los ganadores y perdedores finales (0's y 1's), sino más importante aún por identificar las cuotas apropiadas. Además, da un paso adelante y compara todas las predicciones con las probabilidades anteriores.

Digamos que tiene una lista de 10 juegos de Arsenal (equipo de fútbol en Inglaterra) con posibles resultados: Wyonorte o Losmi. La fórmula para la clasificación binaria gratificante por juego es:

ingrese la descripción de la imagen aquí

dónde, pags es la predicción de tu modelo para un juego de Arsenal en particular, y pagses la probabilidad previa de que el Arsenal gane un juego. El punto de partida es: si sé de antemano quepags=0.6y mi modelo predictor producido pags=0.6, incluso si su predicción fue correcta, se recompensa 0 ya que no está transmitiendo ninguna información nueva. Como nota, trata las clasificaciones correctas e incorrectas de manera diferente como se muestra en las ecuaciones. Como resultado, en función de si la predicción es correcta o incorrecta, el BIR para una sola predicción puede tomar un valor entre(-yonorteF,1].

BIR no se limita a clasificaciones binarias, sino que también se generaliza para problemas de clasificación multinomial.

Zhubarb
fuente