Khu vực dưới Đường cong chính xác thu hồi (AUC của đường cong PR) và Độ chính xác trung bình (AP)


27

Độ chính xác trung bình (AP) có nằm dưới Đường cong chính xác (AUC của đường cong PR) không?

CHỈNH SỬA:

đây là một số nhận xét về sự khác biệt trong PR AUC và AP.

AUC thu được bằng phép nội suy hình thang của độ chính xác. Một số liệu thay thế và thường gần như tương đương là Độ chính xác trung bình (AP), được trả về dưới dạng info.ap. Đây là trung bình của độ chính xác thu được mỗi khi thu hồi mẫu dương tính mới. Nó giống như AUC nếu độ chính xác được nội suy bởi các phân đoạn không đổi và là định nghĩa được TREC sử dụng thường xuyên nhất.

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

Hơn nữa, kết quả aucAverage_precision_score không giống nhau trong scikit-learn. Điều này là lạ, bởi vì trong tài liệu chúng tôi có:

Tính độ chính xác trung bình (AP) từ điểm dự đoán Điểm này tương ứng với khu vực dưới đường cong thu hồi chính xác.

đây là mã:

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

Đối với lớp của tôi, tôi có một cái gì đó như:

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

Câu trả lời:


15

Câu trả lời ngắn gọn là: . Average Precision là một số duy nhất được sử dụng để tóm tắt đường cong Precision-Recall:

nhập mô tả hình ảnh ở đây

Bạn có thể tính gần đúng tích phân (diện tích dưới đường cong) bằng:

nhập mô tả hình ảnh ở đây

Xin hãy xem liên kết này để được giải thích tốt.


Còn nhận xét này thì sao? "AUC thu được bằng phép nội suy hình thang của độ chính xác. Một số liệu thay thế và thường gần như tương đương là Độ chính xác trung bình (AP), được trả về dưới dạng thông tin. Đây là trung bình của độ chính xác thu được mỗi khi thu hồi mẫu dương tính mới. Nó giống như AUC nếu độ chính xác được nội suy bởi các phân đoạn không đổi và là định nghĩa được TREC sử dụng thường xuyên nhất. " vlfeat.org/overview/plots-rank.html
mrgloom

1
Tôi nghĩ the average of the precision obtained every time a new positive sample is recalledđề cập đến độ chính xác trung bình nội suy được giải thích trong liên kết tôi đưa ra. Một số tác giả chọn một xấp xỉ thay thế được gọi là độ chính xác trung bình nội suy . Một cách khó hiểu, họ vẫn gọi nó là độ chính xác trung bình.
Zhubarb

một vài câu hỏi nhanh: 1) tại sao phối hợp (gọi lại = 0, chính xác = 1)? không có ý nghĩa gì với tôi cả 2) như bạn có thể quan sát, nếu chúng tôi hạ thấp ngưỡng phân loại, có thể trả lại nhiều kết quả hơn và do đó, việc thu hồi có thể không tăng, nhưng độ chính xác có thể khác nhau, ví dụ, với tổng số 2 mục tích cực, đây là kết quả được xếp hạng = [Sai, Đúng, Sai, Sai, Đúng], vì vậy các cặp pr = [(p = 0, r = 0), (1/2, 1/2), (1/3, 1/2), (1 / 4, 1/2), (2/5, 2/2)], như bạn có thể thấy, với r = 1/2, có 3 p (tức là 1/2, 1/3, 1/4) , giống như trong biểu đồ của bạn tại r = 0,8, bạn có thể vẽ chúng ở cùng một trục x không?

2

average_precision_score Hàm mong đợi độ tin cậy hoặc xác suất là tham số thứ hai.

vì vậy bạn nên sử dụng nó như dưới đây,

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

và sau đó là cùng một kết quả của aucchức năng.


Các ví dụ khác nhau trong phần mềm WEKA và scikit-learn cung cấp điểm CLF nhưng không phải AUC. Có thể là điểm CLF này thực sự bằng cách nào đó liên quan đến AUC hoặc thậm chí là AUC?
hhh
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.