AUC đại diện cho cái gì và nó là gì?


228

Tìm kiếm cao và thấp và không thể tìm ra AUC, như liên quan đến dự đoán, là viết tắt của hay phương tiện.


8
Kiểm tra mô tả về aucthẻ bạn đã sử dụng: stats.stackexchange.com/questions/tagged/auc
Tim

4
Khu vực dưới đường cong (tức là đường cong ROC)
Andrej

7
Độc giả ở đây cũng có thể quan tâm đến chủ đề sau: Hiểu đường cong ROC .
gung

11
Cụm từ "Tìm kiếm cao và thấp" rất thú vị vì bạn có thể tìm thấy nhiều định nghĩa / cách sử dụng tuyệt vời cho AUC bằng cách nhập "AUC" hoặc "thống kê AUC" vào google. Tất nhiên câu hỏi phù hợp, nhưng câu nói đó chỉ khiến tôi mất cảnh giác!
Behacad

3
Tôi đã làm Google AUC nhưng rất nhiều kết quả hàng đầu đã không nêu rõ AUC = Area Under Curve. Trang Wikipedia đầu tiên liên quan đến nó có nhưng không đến nửa đường. Nhìn lại nó có vẻ khá rõ ràng! Cảm ơn tất cả các bạn đối với một số câu trả lời thực sự chi tiết
Josh

Câu trả lời:


309

Các từ viết tắt

AUC được sử dụng hầu hết thời gian để có nghĩa là AUROC, đó là một thực tiễn tồi vì như Marc Claesen đã chỉ ra AUC là mơ hồ (có thể là bất kỳ đường cong nào) trong khi AUROC thì không.


Phiên dịch AUROC

AUROC có một số cách hiểu tương đương :

  • Kỳ vọng rằng một dương ngẫu nhiên được vẽ đồng đều được xếp hạng trước một âm ngẫu nhiên được vẽ đồng nhất.
  • Tỷ lệ dự kiến ​​dương tính được xếp hạng trước khi âm tính ngẫu nhiên được rút ra đồng đều.
  • Tỷ lệ dương thực sự dự kiến ​​nếu xếp hạng được phân chia ngay trước khi âm tính ngẫu nhiên được rút ra đồng đều.
  • Tỷ lệ âm tính dự kiến ​​được xếp hạng sau khi dương tính ngẫu nhiên được rút ra đồng đều.
  • Tỷ lệ dương tính giả dự kiến ​​nếu xếp hạng được phân chia ngay sau khi dương ngẫu nhiên được rút ra đồng đều.

Đi xa hơn: Làm thế nào để rút ra cách giải thích xác suất của AUROC?


Tính toán AUROC

Giả sử chúng ta có một phân loại xác suất, nhị phân như hồi quy logistic.

Trước khi trình bày đường cong ROC (= Đường cong đặc tính hoạt động của người nhận), phải hiểu khái niệm ma trận nhầm lẫn . Khi chúng tôi đưa ra dự đoán nhị phân, có thể có 4 loại kết quả:

  • Chúng tôi dự đoán 0 trong khi lớp thực sự là 0: đây được gọi là True True , tức là chúng tôi dự đoán chính xác rằng lớp đó là âm (0). Ví dụ, một chương trình chống vi-rút không phát hiện tệp vô hại là vi-rút.
  • Chúng tôi dự đoán 0 trong khi lớp thực sự là 1: đây được gọi là Sai âm , nghĩa là chúng tôi dự đoán không chính xác rằng lớp đó là âm (0). Ví dụ, một chương trình chống vi-rút không phát hiện ra vi-rút.
  • Chúng tôi dự đoán 1 trong khi lớp thực sự là 0: đây được gọi là Sai dương , tức là chúng tôi dự đoán không chính xác rằng lớp đó là dương (1). Ví dụ, một chương trình chống vi-rút coi một tệp vô hại là vi-rút.
  • Chúng tôi dự đoán 1 trong khi lớp thực sự là 1: đây được gọi là True True , tức là chúng tôi dự đoán chính xác rằng lớp đó là dương (1). Ví dụ, một chương trình chống vi-rút đã phát hiện đúng vi-rút.

Để có được ma trận nhầm lẫn, chúng tôi xem xét tất cả các dự đoán được đưa ra bởi mô hình và tính xem có bao nhiêu lần mỗi loại trong số 4 loại kết quả đó xảy ra:

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

Trong ví dụ này về ma trận nhầm lẫn, trong số 50 điểm dữ liệu được phân loại, 45 điểm được phân loại chính xác và 5 điểm được phân loại sai.

Vì để so sánh hai mô hình khác nhau, sẽ thuận tiện hơn khi có một số liệu đơn lẻ hơn là một số liệu, chúng tôi tính hai số liệu từ ma trận nhầm lẫn, sau này chúng tôi sẽ kết hợp thành một:

  • TPTP+FN
  • FPFP+TN

0.00;0.01,0.02,,1.00

Hình dưới đây cho thấy AUROC đồ họa:

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

Trong hình này, vùng màu xanh lam tương ứng với Vùng bên dưới đường cong của Đặc tính vận hành máy thu (AUROC). Đường đứt nét trong đường chéo chúng tôi trình bày đường cong ROC của một yếu tố dự đoán ngẫu nhiên: nó có AUROC là 0,5. Công cụ dự đoán ngẫu nhiên thường được sử dụng làm đường cơ sở để xem liệu mô hình có hữu ích hay không.

Nếu bạn muốn có được một số kinh nghiệm trực tiếp:


4
Rực rỡ giải thích. Cảm ơn bạn. Một câu hỏi chỉ để làm rõ rằng tôi hiểu: tôi có đúng không khi nói rằng, trên biểu đồ này, một hình vuông màu xanh đặc sẽ có đường cong ROC (AUC = 1) và sẽ là một mô hình dự đoán tốt? Tôi cho rằng đây là lý thuyết có thể.
Josh

25
@josh Vâng, đúng vậy. AUROC nằm trong khoảng từ 0 đến 1 và AUROC = 1 có nghĩa là mô hình dự đoán là hoàn hảo. Trong thực tế, AUROC càng xa 0,5 thì càng tốt: nếu AUROC <0,5, thì bạn chỉ cần đảo ngược quyết định mà mô hình của bạn đang đưa ra. Kết quả là, nếu AUROC = 0, đó là tin tốt vì bạn chỉ cần đảo ngược đầu ra của mô hình để có được một mô hình hoàn hảo.
Franck Dernoncourt

1
liên kết "một số giải thích tương đương" bị hỏng.
Haitao Du

1
Trong các diễn giải của AUROC "Tỷ lệ dương tính giả dự kiến ​​nếu xếp hạng được phân chia ngay sau khi dương tính ngẫu nhiên được rút ra đồng đều.", Đây có phải là (1 - FPR) không?
Mudit Jain

1
@ ryu576 lý tưởng số lượng điểm trong đường cong ROC thực sự là số lượng mẫu thử nghiệm.
Franck Dernoncourt

60

Mặc dù tôi đến bữa tiệc hơi muộn, nhưng đây là 5 xu của tôi. @FranckDernoncourt (+1) đã đề cập đến các cách giải thích có thể có của AUC ROC và từ ưa thích của tôi là từ đầu tiên trong danh sách của anh ấy (tôi sử dụng các từ khác nhau, nhưng nó giống nhau):

P(score(x+)>score(x))

Xem xét ví dụ này (auc = 0,68):

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

Hãy thử mô phỏng nó: rút ra các ví dụ tích cực và tiêu cực ngẫu nhiên và sau đó tính tỷ lệ các trường hợp khi dương có điểm cao hơn âm

cls = c('P', 'P', 'N', 'P', 'P', 'P', 'N', 'N', 'P', 'N', 'P',
        'N', 'P', 'N', 'N', 'N', 'P', 'N', 'P', 'N')
score = c(0.9, 0.8, 0.7, 0.6, 0.55, 0.51, 0.49, 0.43, 0.42, 0.39, 0.33, 
          0.31, 0.23, 0.22, 0.19, 0.15, 0.12, 0.11, 0.04, 0.01)

pos = score[cls == 'P']
neg = score[cls == 'N']

set.seed(14)
p = replicate(50000, sample(pos, size=1) > sample(neg, size=1))
mean(p)

Và chúng tôi nhận được 0,67926. Khá gần phải không?

 

Nhân tiện, trong RI thường sử dụng gói ROCR để vẽ các đường cong ROC và tính toán AUC.

library('ROCR')

pred = prediction(score, cls)
roc = performance(pred, "tpr", "fpr")

plot(roc, lwd=2, colorize=TRUE)
lines(x=c(0, 1), y=c(0, 1), col="black", lwd=1)

auc = performance(pred, "auc")
auc = unlist(auc@y.values)
auc

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


Đẹp. Khối màu xám thứ hai chắc chắn làm rõ phương pháp vẽ.
Josh

+1 (từ trước). Ở trên tôi đã liên kết với một chủ đề khác, nơi bạn đã đóng góp rất tốt cho một chủ đề liên quan. Đây là một công việc tuyệt vời khen ngợi bài đăng của @ FranckDernoncourt và giúp tăng cường hơn nữa.
gung

1
Trong đường cong ROC được sản xuất bởi gói R, màu sắc tượng trưng cho cái gì? Bạn có thể vui lòng thêm một số chi tiết cho nó. Cảm ơn !
Prradep 3/03/2016

Nó có lẽ sẽ hữu ích để thêm đúng mặt tích cực và đúng tiêu cực để giải thích trong hộp màu xám ở trên? Nếu không thì có thể hơi khó hiểu.
cbellei

42

Những cân nhắc quan trọng không được bao gồm trong bất kỳ cuộc thảo luận nào. Các quy trình được thảo luận ở trên mời các ngưỡng không phù hợp và sử dụng các quy tắc chấm điểm chính xác (tỷ lệ) không chính xác được tối ưu hóa bằng cách chọn các tính năng sai và cho chúng các trọng số sai.

Sự lưỡng phân của các dự đoán liên tục bay trước mặt lý thuyết quyết định tối ưu. Đường cong ROC không cung cấp thông tin chi tiết có thể hành động. Họ đã trở thành bắt buộc mà không có nhà nghiên cứu kiểm tra lợi ích. Họ có một mực rất lớn: tỷ lệ thông tin.

Các quyết định tối ưu không xem xét "tích cực" và "tiêu cực" mà là xác suất ước tính của kết quả. Hàm tiện ích / chi phí / tổn thất, không có vai trò trong xây dựng ROC do đó sự vô dụng của ROCs, được sử dụng để chuyển ước tính rủi ro thành quyết định tối ưu (ví dụ, tổn thất dự kiến ​​thấp nhất).

Mục tiêu của một mô hình thống kê thường là đưa ra dự đoán và nhà phân tích thường nên dừng ở đó vì nhà phân tích có thể không biết chức năng mất. Các thành phần chính của dự đoán để xác thực không thiên vị (ví dụ: sử dụng bootstrap) là phân biệt dự đoán (một cách bán tốt để đo lường đây là xác suất phù hợp xảy ra bằng với diện tích theo ROC nhưng có thể dễ hiểu hơn nếu bạn không không vẽ ROC) và đường cong hiệu chuẩn. Xác nhận hiệu chuẩn là thực sự, thực sự cần thiết nếu bạn đang sử dụng dự đoán trên quy mô tuyệt đối.

Xem chương Mất thông tin trong Thống kê sinh học cho nghiên cứu y sinh và các chương khác để biết thêm thông tin.


2
Mỗi câu trả lời khác tập trung vào các công thức toán học không có ích thực tế. Và câu trả lời đúng duy nhất có ít upvote nhất.
tối đa

6
Tôi đã nhận được những câu trả lời có vẻ khó hiểu về chủ đề này từ Giáo sư Harrell - chúng rất tuyệt theo cách mà chúng buộc bạn phải suy nghĩ kỹ. Điều tôi tin rằng anh ta đang ám chỉ là bạn không muốn chấp nhận các trường hợp âm tính giả trong xét nghiệm sàng lọc HIV (ví dụ hư cấu), ngay cả khi chấp nhận tỷ lệ âm tính giả cao hơn (đồng thời giảm dương tính giả) có thể đặt điểm cắt của bạn ở cực đại AUC. Xin lỗi vì sự đơn giản hóa quá mức.
Antoni Parellada


17

AUC là viết tắt cho khu vực dưới đường cong . Nó được sử dụng trong phân tích phân loại để xác định mô hình nào được sử dụng dự đoán các lớp tốt nhất.

Một ví dụ về ứng dụng của nó là các đường cong ROC. Ở đây, tỷ lệ dương thực sự được vạch ra so với tỷ lệ dương tính giả. Một ví dụ dưới đây. AUC càng gần với mô hình đến 1 thì càng tốt. Vì vậy, các mô hình có AUC cao hơn được ưa thích hơn các mô hình có AUC thấp hơn.

Xin lưu ý, cũng có các phương pháp khác ngoài các đường cong ROC nhưng chúng cũng liên quan đến tỷ lệ dương và sai thực sự, ví dụ: thu hồi chính xác, các đường cong F1-Điểm hoặc Lorenz.

                                            Ví dụ về đường cong ROC


2
bạn có thể giải thích đường cong ROC trong bối cảnh xác định chéo đơn giản về kết quả 0/1 không? Tôi không biết rất rõ cách xây dựng đường cong trong trường hợp đó.
Tò mò

10

τ

  1. A
  2. BA
  3. τ

P(A>τ)P(B>τ)

τAUC

Chúng tôi nhận được:

AUC=01TPR(x)dx=01P(A>τ(x))dx
xxTPR

(1)AUC=Ex[P(A>τ(x))]
xU[0,1)

xFPR

x=FPR=P(B>τ(x))
x

P(B>τ(x))U
=>P(B<τ(x))(1U)U
(2)=>FB(τ(x))U

XFX(Y)UYX

FX(X)=P(FX(x)<X)=P(X<FX1(X))=FXFX1(X)=X

τ(x)B

Thay thế điều này vào phương trình (1) chúng ta nhận được:

AUC=Ex(P(A>B))=P(A>B)

Nói cách khác, khu vực dưới đường cong là xác suất để một mẫu dương tính ngẫu nhiên sẽ có điểm cao hơn một mẫu âm tính ngẫu nhiên.

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.