6 votos

Es válida para seleccionar un modelo basado en la AUC?

He parcela ROC para varios modelos. Estos modelos fueron utilizados para clasificar mis muestras en 2 clases.

El uso de estos comandos, puedo obtener la sensibilidad vs la especificidad de parcelas para cada modelo:

perf <- performance(pred, "sens", "spec")
plot(perf)

Debo confiar en el área bajo la curva (AUC) para cada modelo a la conclusión de que modelo es mejor? Otras de las AUC, debemos considerar otros resultados así como a la conclusión de que modelo es mejor?

Si sí, ¿cómo conseguir las AUC con R? Yo estoy en lo correcto al asumir que "el más pequeño es el mejor, es el de la clasificación de potencia del modelo?"

6voto

ESRogs Puntos 1381

AUROC es una de las muchas formas de evaluación de la modelo, en el hecho de que los jueces de cómo un buen ranking (o "seguridad" de la medida) su método puede producir. La cuestión de si el uso es más que la precisión de recordar o de simple precisión o F-medida sólo es en función de una aplicación en particular.

Modelo de selección es una cuestión problemática en su propio -- generalmente, usted debe utilizar también la partitura en la que creemos que se ajusta mejor aplicación, y cuidar de que su selección es significativo (por lo general es no y algunos otros factores pueden ser importantes, como incluso el tiempo de cómputo).

Acerca de las AUC, en R-veo que utilizas ROCR, lo que hace agradable parcelas, pero también es terriblemente hinchado, lo lento y difícil en la integración. Intente colAUC de caTools paquete -- es cohetes rápidos y trivial para el uso. Oh, y la más grande de las AUC es mejor.

2voto

Karg Puntos 585

Como usted está usando ROCR, usted puede conseguir el punto de la curva ROC que maximiza el área y usar esto para determinar el umbral correspondiente:

my_prediction <- predict.gbm(object = gbm_mod, newdata = X, 100)
pred <- prediction(my_prediction, Y)
perf <- performance(pred, 'tpr', 'fpr')

r <- rev((as.data.frame(perf@y.values)*(1-as.data.frame(perf@x.values)))[,1])
threshold <- as.data.frame(perf@alpha.values)[which(r==max(r)),1][1]

Usted puede pensar de esta optimización simplemente como el punto que hace que la mayor posible rectángulo debajo de la curva ROC.

0voto

Olivier Pons Puntos 118

Como mbq escribió, la respuesta a si se deben usar las AUC depende de lo que usted está tratando de hacer. Dos puntos que vale la pena considerar:

AUROC es insensible a los cambios en la distribución de clases. Coloca incluso énfasis en las diferentes clases, lo que significa que se puede mal reflexionar un algoritmo de rendimiento si hay un gran desequilibrio en la distribución de las clases. Por otro lado, si usted está más interesado en la identificación de las características de las clases en lugar de su prevalencia, esta es una fortaleza.

AUROC no captura los diferentes costes de los diferentes resultados y es raro el caso que la atención igualmente sobre los falsos positivos y falsos negativos.

Me parece AUROC sensible. Las curvas de fácil lectura: son como una intuitiva versión de una matriz de confusión. Pero es importante saber lo que está leyendo y lo que queda fuera.

Ver también: la Evaluación y la combinación de los métodos basados en la ROC y PR curvas

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