55 votos

Área bajo la curva de precisión-recuerdo (AUC de la curva PR) y precisión media (AP)

¿Es la precisión media (AP) el área bajo la curva de precisión-recuerdo (AUC de la curva PR)?

EDITAR:

aquí hay algún 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 normalmente casi equivalente es la Precisión Precisión (AP), devuelta como info.ap. Se trata de la media de la precisión obtenida cada vez que se recupera una nueva muestra positiva. Es la misma que el AUC si la precisión se interpola por segmentos constantes y es la definición más utilizada por TREC.

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

Además, el auc y el puntuación_media_de_precisión los resultados no son los mismos en scikit-learn. Esto es extraño, porque en la documentación tenemos:

Calcular la precisión media (AP) a partir de las puntuaciones de las predicciones Esta puntuación corresponde al área bajo la curva de precisión-recuerdo.

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 clasificador tengo algo así como

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

34voto

Zhubarb Puntos 2330

La respuesta corta es: SI . La Precisión Media es un número único que se utiliza para resumir una curva de Precisión-Recuperación:

enter image description here

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

enter image description here

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

4voto

davidemm Puntos 896

average_precision_score esperan la confianza o la probabilidad como segundo parámetro.

por lo que debe utilizarlo como se indica a continuación,

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

y luego es el mismo resultado de auc función.

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