Área bajo curva de recuperación de precisión (AUC de curva PR) y precisión media (AP)


27

¿Es la precisión promedio (AP) el área bajo la curva de recuperación de precisión (AUC de la curva PR)?

EDITAR:

Aquí hay un comentario sobre la diferencia en PR AUC y AP.

El AUC se obtiene por interpolación trapezoidal de la precisión. Una métrica alternativa y generalmente casi equivalente es la precisión promedio (AP), devuelta como info.ap. Este es el promedio de la precisión obtenida cada vez que se recupera una nueva muestra positiva. Es lo mismo que el AUC si la precisión se interpola por segmentos constantes y es la definición utilizada por TREC con mayor frecuencia.

http://www.vlfeat.org/overview/plots-rank.html

Por otra parte, el AUC y los average_precision_score resultados no son los mismos en scikit-learn. Esto es extraño, porque en la documentación tenemos:

Calcular la precisión promedio (AP) a partir de los puntajes de predicción Este puntaje corresponde al área bajo la curva de recuperación de precisión.

Aquí está el código:

# Compute Precision-Recall and plot curve
precision, recall, thresholds = precision_recall_curve(y_test, clf.predict_proba(X_test)[:,1])
area = auc(recall, precision)
print "Area Under PR Curve(AP): %0.2f" % area  #should be same as AP?

print 'AP', average_precision_score(y_test, y_pred, average='weighted')
print 'AP', average_precision_score(y_test, y_pred, average='macro')
print 'AP', average_precision_score(y_test, y_pred, average='micro')
print 'AP', average_precision_score(y_test, y_pred, average='samples')

para mi classifer tengo algo como:

Area Under PR Curve(AP): 0.65
AP 0.676101781304
AP 0.676101781304
AP 0.676101781304
AP 0.676101781304

Respuestas:


15

La respuesta corta es: SI . La precisión promedio es un número único que se usa para resumir una curva de recuperación de precisión:

ingrese la descripción de la imagen aquí

Puede aproximar la integral (área bajo la curva) con:

ingrese la descripción de la imagen aquí

Por favor, eche un vistazo a este enlace para una buena explicación.


¿Qué hay de este comentario? "El AUC se obtiene por interpolación trapezoidal de la precisión. Una métrica alternativa y generalmente casi equivalente es la precisión promedio (AP), devuelta como info.ap. Este es el promedio de la precisión obtenida cada vez que se retira una nueva muestra positiva". Es lo mismo que el AUC si la precisión se interpola por segmentos constantes y es la definición utilizada por TREC con mayor frecuencia ". vlfeat.org/overview/plots-rank.html
mrgloom

1
Creo que se the average of the precision obtained every time a new positive sample is recalledrefiere a la precisión promedio interpolada explicada en el enlace que proporcioné. Algunos autores eligen una aproximación alternativa que se llama precisión promedio interpolada . Confusamente, todavía lo llaman precisión promedio.
Zhubarb

Algunas preguntas rápidas: 1) ¿Por qué coordinar (recordar = 0, precisión = 1)? No tiene ningún sentido para mí. 2) como puede observar, si bajamos el umbral del clasificador, se podrían devolver más resultados y, como consecuencia, el recuerdo podría no aumentar, pero la precisión podría variar, por ejemplo, con 2 elementos positivos en total, aquí están los resultados clasificados = [Falso, Verdadero, Falso, Falso, Verdadero], entonces los pares de pr = [(p = 0, r = 0), (1/2, 1/2), (1/3, 1/2), (1 / 4, 1/2), (2/5, 2/2)], como puede ver, para r = 1/2, hay 3 p (es decir, 1/2, 1/3, 1/4) , al igual que en su gráfico en r = 0.8, ¿está bien, simplemente trazarlos en el mismo eje x?
aguacate

2

average_precision_score La función espera confianza o probabilidad como segundo parámetro.

así que debes usarlo de la siguiente manera,

average_precision_score(y_test, clf.predict_proba(X_test)[:,1])

y luego es el mismo resultado de la aucfunción.


Diferentes ejemplos en el software WEKA y scikit-learn proporcionan puntaje CLF pero no AUC. ¿Puede ser que este puntaje CLF esté de alguna manera relacionado con AUC o incluso sea AUC?
hhh
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.