Czy średnia precyzja (AP) to obszar pod krzywą Precyzja-przywołanie (AUC krzywej PR)?
EDYTOWAĆ:
oto komentarz na temat różnicy w AUC PR i AP.
AUC jest uzyskiwane przez trapezoidalną interpolację precyzji. Alternatywnym i zwykle prawie równoważnym miernikiem jest średnia precyzja (AP), zwracana jako info.ap. Jest to średnia precyzji uzyskanej za każdym razem, gdy przywoływana jest nowa próbka dodatnia. Jest to to samo, co AUC, jeśli precyzja interpolowana jest przez stałe segmenty i jest to definicja najczęściej używana przez TREC.
http://www.vlfeat.org/overview/plots-rank.html
Ponadto, AUC i average_precision_score wyniki nie są takie same w scikit-learn. To dziwne, ponieważ w dokumentacji mamy:
Oblicz średnią precyzję (AP) na podstawie wyników prognoz Ten wynik odpowiada obszarowi pod krzywą precyzji przywołania.
oto kod:
# 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')
dla mojego klasyfikatora mam coś takiego:
Area Under PR Curve(AP): 0.65
AP 0.676101781304
AP 0.676101781304
AP 0.676101781304
AP 0.676101781304