Площа під кривою точності відкликання (AUC PR-кривої) та середньої точності (AP)


27

Чи середня точність (AP) - область під кривою точності нагадування (AUC PR-кривої)?

Редагувати:

ось декілька коментарів про різницю в PR AUC та AP.

AUC отримують трапеційною інтерполяцією точності. Альтернативною і, як правило, майже еквівалентною метрикою є Середня точність (AP), повернена як інформація. Це середнє значення точності, що отримується щоразу, коли відкликається нова позитивна проба. Це те саме, що AUC, якщо точність інтерполюється постійними сегментами і це визначення, яке використовується TREC найчастіше.

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

Більше того, результати аукціону та середня_прецизія_скоре не однакові у scikit-learn. Це дивно, адже в документації ми маємо:

Обчислити середню точність (AP) з балів прогнозування Цей бал відповідає площі під кривою точності нагадування.

ось код:

# 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')

для мого класифікатора у мене є щось на кшталт:

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

Відповіді:


15

Коротка відповідь: ТАК . Середня точність - це єдине число, яке використовується для підсумовування кривої точності нагадування:

введіть тут опис зображення

Ви можете наблизити інтеграл (область під кривою) за допомогою:

введіть тут опис зображення

Будь ласка, перегляньте це посилання, щоб отримати гарне пояснення.


Що з цим коментарем? "AUC отримується трапецієподібною інтерполяцією точності. Альтернативою і, як правило, майже еквівалентною метрикою є Середня точність (AP), повертається як info.ap. Це середнє значення точності, що отримується щоразу, коли викликується нова позитивна проба. Це те саме, що AUC, якщо точність інтерполюється постійними сегментами і це визначення, яке використовується TREC найчастіше ". vlfeat.org/overview/plots-rank.html
mrgloom

1
Я думаю, що це the average of the precision obtained every time a new positive sample is recalledстосується інтерпольованої середньої точності, поясненої у посиланні, яке я дав. Деякі автори вибирають альтернативне наближення, яке називають інтерпольованою середньою точністю . Незрозуміло, вони все ще називають це середньою точністю.
Жубарб

кілька швидких запитань: 1) чому координувати (згадати = 0, точність = 1)? для мене це взагалі не має сенсу. 2) як ви могли зауважити, якщо ми знизимо поріг класифікатора, можна буде повернути більше результатів, і, як наслідок, відкликання може не збільшитися, але точність може змінюватись, наприклад, усього 2 позитивних позиції, ось результати ранжування = [Хибний, Правда, Неправдивий, Неправдивий, Істинний], так pr пар = [(p = 0, r = 0), (1/2, 1/2), (1/3, 1/2), (1 / 4, 1/2), (2/5, 2/2)], як ви бачите, для r = 1/2 є 3 p (тобто 1/2, 1/3, 1/4) , як і у вашому графіку при r = 0.8, це нормально, просто побудуйте їх на одній осі x?
авокадо

2

average_precision_score функція очікує впевненості або ймовірності як другого параметра.

тому слід використовувати його як нижче,

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

і тоді це той самий результат aucфункції.


Різні приклади програмного забезпечення WEKA та scikit-learn надають оцінку CLF, але не AUC. Чи може бути, що ця оцінка CLF насправді якось пов’язана з AUC або навіть бути AUC?
hhh
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.