AUC หมายถึงอะไรและมันคืออะไร


228

ค้นหาสูงและต่ำและไม่สามารถค้นหาว่า AUC ใดที่เกี่ยวข้องกับการทำนายหมายถึงหรือหมายถึง


8
ตรวจสอบคำอธิบายของaucแท็กที่คุณใช้: stats.stackexchange.com/questions/tagged/auc
ทิม

4
Area Under the Curve (เช่น ROC curve)
Andrej

7
ผู้อ่านที่นี่ก็อาจจะเป็นที่สนใจในหัวข้อต่อไปนี้: การทำความเข้าใจโค้ง ROC
gung

11
นิพจน์ "ค้นหาทั้งสูงและต่ำ" นั้นน่าสนใจเนื่องจากคุณสามารถค้นหาคำจำกัดความ / การใช้งานที่ยอดเยี่ยมมากมายสำหรับ AUC โดยพิมพ์ "AUC" หรือ "AUC สถิติ" ลงใน google คำถามที่เหมาะสมแน่นอน แต่คำสั่งนั้นทำให้ฉันระวัง!
Behacad

3
ฉันทำ Google AUC แต่ผลลัพธ์จำนวนมากไม่ได้ระบุอย่างชัดเจนว่า AUC = Area Under Curve หน้าแรกของ Wikipedia ที่เกี่ยวข้องกับหน้านี้จะมี แต่ไม่ถึงครึ่งทาง เมื่อมองย้อนกลับไปมันก็ค่อนข้างชัดเจน! ขอบคุณทุกคนสำหรับคำตอบที่มีรายละเอียดมากจริงๆ
josh

คำตอบ:


309

ตัวย่อ

  • AUC = พื้นที่ใต้เส้นโค้ง
  • AUROC = พื้นที่ใต้เส้นโค้งลักษณะผู้รับการดำเนินงาน

AUC ใช้เวลาส่วนใหญ่ในการหมายถึง AUROC ซึ่งเป็นการปฏิบัติที่ไม่ดีเนื่องจาก Marc Claesen ชี้ให้เห็นว่า AUC นั้นคลุมเครือ (อาจเป็นเส้นโค้งใด ๆ ) ในขณะที่ AUROC ไม่ใช่


การตีความ AUROC

AUROC มีการตีความที่เทียบเท่าหลายประการ :

  • ความคาดหวังว่าการสุ่มเชิงบวกที่ถูกสุ่มจับจะถูกจัดอันดับก่อนการสุ่มเชิงลบที่มีการสุ่มสม่ำเสมอ
  • สัดส่วนที่คาดหวังของผลบวกจะถูกจัดอันดับก่อนที่จะมีการสุ่มลบอย่างสม่ำเสมอ
  • อัตราบวกจริงที่คาดหวังหากการจัดอันดับถูกแบ่งออกก่อนที่จะมีการสุ่มลบอย่างสม่ำเสมอ
  • สัดส่วนที่คาดหวังของเชิงลบจัดอันดับหลังจากการสุ่มบวกที่วาดอย่างสม่ำเสมอ
  • อัตราบวกเป็นเท็จที่คาดหวังหากการจัดอันดับถูกแบ่งหลังจากการสุ่มบวกที่วาดอย่างสม่ำเสมอ

ดำเนินการต่อไป: จะได้รับการตีความความน่าจะเป็นของ AUROC อย่างไร


การคำนวณ AUROC

สมมติว่าเรามีความน่าจะเป็นลักษณนามของไบนารีเช่นการถดถอยโลจิสติก

ก่อนที่จะนำเสนอเส้นโค้ง ROC (= เส้นโค้งลักษณะการทำงานของตัวรับสัญญาณ) แนวคิดของเมทริกซ์ความสับสนจะต้องเข้าใจ เมื่อเราทำการทำนายแบบไบนารี่สามารถมีผลลัพธ์ได้ 4 ประเภท:

  • เราคาดการณ์ 0 ในขณะที่คลาสจริงเป็นจริง 0: สิ่งนี้เรียกว่าTrue Negativeนั่นคือเราคาดการณ์อย่างถูกต้องว่าคลาสนั้นเป็นลบ (0) ตัวอย่างเช่นโปรแกรมป้องกันไวรัสไม่พบไฟล์ที่ไม่เป็นอันตรายเป็นไวรัส
  • เราคาดการณ์ 0 ในขณะที่คลาสที่แท้จริงคือ 1 จริง ๆ : สิ่งนี้เรียกว่าFalse Negativeนั่นคือเราคาดการณ์อย่างผิด ๆ ว่าคลาสนั้นเป็นลบ (0) ตัวอย่างเช่นโปรแกรมป้องกันไวรัสไม่สามารถตรวจจับไวรัสได้
  • เราคาดการณ์ 1 ในขณะที่คลาสจริงเป็นจริง 0: สิ่งนี้เรียกว่าเป็นค่าบวกปลอมนั่นคือเราคาดการณ์ไม่ถูกต้องว่าคลาสนั้นเป็นค่าบวก (1) ตัวอย่างเช่นแอนติไวรัสถือว่าไฟล์ที่ไม่เป็นอันตรายนั้นเป็นไวรัส
  • เราคาดการณ์ 1 ในขณะที่คลาสจริงเป็นจริง 1: สิ่งนี้เรียกว่าTrue Positiveนั่นคือเราคาดการณ์อย่างถูกต้องว่าคลาสนั้นเป็นบวก (1) ตัวอย่างเช่นโปรแกรมป้องกันไวรัสตรวจพบไวรัสอย่างถูกต้อง

ในการรับเมทริกซ์ความสับสนเราจะไปตามการคาดการณ์ทั้งหมดของแบบจำลองและนับจำนวนผลลัพธ์ที่เกิดขึ้นแต่ละประเภท 4 ประเภทดังนี้:

ป้อนคำอธิบายรูปภาพที่นี่

ในตัวอย่างของเมทริกซ์ความสับสนนี้ในบรรดา 50 data data ที่ได้รับการจัดประเภทนั้น 45 จำแนกอย่างถูกต้องและ 5 ถูกจำแนกผิด

เนื่องจากเพื่อเปรียบเทียบแบบจำลองที่แตกต่างกันสองแบบมันมักจะสะดวกกว่าที่จะมีตัวชี้วัดเดียวมากกว่าตัวแบบหลายตัวเราจึงคำนวณตัวชี้วัดสองตัวจากเมทริกซ์ความสับสนซึ่งเราจะรวมกันเป็นหนึ่ง:

  • TPTP+FN
  • FPFP+TN

0.00;0.01,0.02,,1.00

รูปต่อไปนี้แสดงให้เห็นถึง AUROC แบบกราฟิก:

ป้อนคำอธิบายรูปภาพที่นี่

ในรูปนี้พื้นที่สีน้ำเงินตรงกับพื้นที่ภายใต้โค้งของลักษณะการดำเนินงานของเครื่องรับ (AUROC) เส้นประในแนวทแยงเรานำเสนอเส้นโค้ง ROC ของตัวทำนายแบบสุ่ม: มันมี AUROC 0.5 ตัวทำนายแบบสุ่มมักใช้เป็นข้อมูลพื้นฐานเพื่อดูว่าแบบจำลองนั้นมีประโยชน์หรือไม่

หากคุณต้องการได้รับประสบการณ์โดยตรง:


4
คำอธิบายที่ยอดเยี่ยม ขอขอบคุณ. คำถามหนึ่งที่จะอธิบายให้ชัดเจนว่าฉันเข้าใจ: ฉันพูดถูกหรือเปล่าว่าในกราฟนี้สี่เหลี่ยมสีฟ้าที่เป็นของแข็งจะมีเส้นโค้ง ROC (AUC = 1) และเป็นรูปแบบการทำนายที่ดีหรือไม่ ฉันคิดว่านี่เป็นไปได้ในทางทฤษฎี
josh

25
@ Josh ใช่ถูกต้อง AUROC อยู่ระหว่าง 0 ถึง 1 และ AUROC = 1 หมายความว่าแบบจำลองการทำนายสมบูรณ์แบบ ในความเป็นจริงแล้ว AUROC อยู่ห่างจาก 0.5 ยิ่งดี: ถ้า AUROC <0.5 คุณต้องเปลี่ยนการตัดสินใจของแบบจำลองของคุณ ดังนั้นถ้า AUROC = 0 นั่นเป็นข่าวดีเพราะคุณเพียงแค่ต้องสลับเอาท์พุทโมเดลของคุณเพื่อรับโมเดลที่สมบูรณ์แบบ
Franck Dernoncourt

1
ลิงก์ "การตีความที่เทียบเท่าหลายรายการ" เสียหาย
Haitao Du

1
ในการตีความ AUROC "อัตราการบวกเป็นเท็จที่คาดหวังหากการจัดอันดับถูกแบ่งหลังจากการสุ่มแบบสุ่มที่สม่ำเสมอ" สิ่งนี้ควรเป็น (1 - FPR) หรือไม่
Mudit Jain

1
@ ryu576 ในอุดมคติจำนวนจุดในเส้นโค้ง ROC เป็นจำนวนตัวอย่างการทดสอบ
Franck Dernoncourt

60

แม้ว่าฉันจะสายไปงานปาร์ตี้ แต่นี่คือ 5 เซ็นต์ของฉัน @FranckDernoncourt (+1) ได้กล่าวถึงการตีความที่เป็นไปได้ของ AUC ROC และสิ่งที่ฉันชอบที่สุดคือรายการแรกในรายการของเขา (ฉันใช้ถ้อยคำต่างกัน แต่ก็เหมือนกัน):

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

ลองพิจารณาตัวอย่างนี้ (auc = 0.68):

ป้อนคำอธิบายรูปภาพที่นี่

ลองเลียนแบบ: วาดตัวอย่างบวกและลบแบบสุ่มแล้วคำนวณสัดส่วนของกรณีเมื่อผลบวกมีคะแนนมากกว่าเชิงลบ

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)

และเราได้ 0.67926 ค่อนข้างใกล้ใช่มั้ย

 

โดยวิธีการใน RI มักจะใช้แพคเกจROCRสำหรับการวาดเส้นโค้ง ROC และการคำนวณ 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

ป้อนคำอธิบายรูปภาพที่นี่


ดี บล็อกสีเทาที่สองจะอธิบายวิธีการลงจุดอย่างชัดเจน
josh

+1 (จากก่อนหน้านี้) ด้านบนฉันเชื่อมโยงกับหัวข้ออื่นที่คุณได้ให้การสนับสนุนที่ดีมากในหัวข้อที่เกี่ยวข้อง นี่เป็นผลงานที่ยอดเยี่ยมที่โพสต์ของ @ FranckDernoncourt และช่วยเสริมกำลังออกไปอีก
gung

1
ในส่วนโค้ง ROC ที่ผลิตโดยแพ็คเกจ R สีนี้มีสีอะไร? คุณช่วยเพิ่มรายละเอียดลงไปได้ไหม ขอบคุณมาก!
ประเสริฐ

มันอาจจะเป็นประโยชน์ในการเพิ่มจริงบวกและความจริงเชิงลบคำอธิบายในกล่องสีเทาข้างต้น มิฉะนั้นอาจทำให้สับสนเล็กน้อย
cbellei

42

ข้อพิจารณาสำคัญไม่รวมอยู่ในการสนทนาใด ๆ เหล่านี้ ขั้นตอนที่กล่าวถึงข้างต้นเป็นการเชิญการกำหนดเกณฑ์ขั้นต่ำที่ไม่เหมาะสมและใช้กฎการให้คะแนนความแม่นยำที่ไม่เหมาะสม (สัดส่วน) ที่ปรับให้เหมาะสมโดยการเลือกคุณสมบัติที่ไม่ถูกต้องและให้น้ำหนักที่ไม่ถูกต้อง

การแยกขั้วของการทำนายแบบต่อเนื่องจะต้องเผชิญกับทฤษฎีการตัดสินใจที่ดีที่สุด เส้นโค้งของ ROC ไม่ทำให้เกิดความเข้าใจที่ลึกซึ้ง พวกเขามีความรับผิดชอบโดยไม่ต้องมีนักวิจัยตรวจสอบประโยชน์ พวกเขามีหมึกขนาดใหญ่มาก: อัตราส่วนข้อมูล

การตัดสินใจที่เหมาะสมไม่พิจารณา "ผลบวก" และ "เชิงลบ" แต่จะเป็นความน่าจะเป็นโดยประมาณของผลลัพธ์ ฟังก์ชั่นยูทิลิตี้ / ต้นทุน / การสูญเสียซึ่งไม่มีบทบาทในการก่อสร้าง ROC ดังนั้นความไร้ประโยชน์ของ ROCs จะใช้ในการแปลการประเมินความเสี่ยงเป็นการตัดสินใจที่เหมาะสมที่สุด (เช่นการสูญเสียที่คาดหวังต่ำสุด)

เป้าหมายของแบบจำลองทางสถิติมักจะทำการคาดการณ์และนักวิเคราะห์ควรหยุดที่นั่นเพราะนักวิเคราะห์อาจไม่ทราบว่าฟังก์ชั่นการสูญเสีย ส่วนประกอบที่สำคัญของการทำนายเพื่อตรวจสอบ unbiasedly (เช่นการใช้บูต) จะเลือกปฏิบัติทำนาย (ขาเดียวกึ่งดีในการวัดนี้น่าจะเป็นความสอดคล้องที่เกิดขึ้นจะเท่ากับพื้นที่ภายใต้ร็อค แต่สามารถเข้าใจได้ง่ายมากขึ้นถ้าคุณดอน ไม่ต้องวาด ROC) และกราฟการปรับเทียบ การตรวจสอบความถูกต้องของการสอบเทียบเป็นสิ่งที่จำเป็นจริงๆหากคุณใช้การคาดการณ์ในระดับที่สมบูรณ์

ดูบทการสูญเสียข้อมูลในชีวสถิติเพื่อการวิจัยทางการแพทย์และบทอื่น ๆ สำหรับข้อมูลเพิ่มเติม


2
คำตอบอื่น ๆ จะมุ่งเน้นไปที่สูตรทางคณิตศาสตร์ที่ไม่มีประโยชน์ในทางปฏิบัติ และคำตอบที่ถูกต้องเท่านั้นมี upvotes น้อยที่สุด
สูงสุด

6
ฉันได้รับคำตอบที่คลุมเครือในตอนท้ายของหัวข้อนี้จากศาสตราจารย์ Harrell - พวกเขายอดเยี่ยมในวิธีที่พวกเขาบังคับให้คุณคิดหนัก สิ่งที่ฉันเชื่อว่าเขากำลังบอกใบ้ว่าคุณไม่ต้องการรับคดีลบปลอมในการตรวจคัดกรอง HIV (ตัวอย่างสมมติ) แม้ว่าการยอมรับเปอร์เซ็นต์ฟิล์มเนกาทีฟที่สูงกว่า ที่ AUC maxima ขออภัยสำหรับการใช้งานเกินขนาดที่โหดร้าย
Antoni Parellada


17

AUC เป็น abbrevation สำหรับพื้นที่ใต้เส้นโค้ง มันถูกใช้ในการวิเคราะห์การจำแนกเพื่อกำหนดว่าโมเดลใดที่ใช้ทำนายคลาสที่ดีที่สุด

ตัวอย่างการใช้งานคือ ROC curves ที่นี่อัตราบวกที่แท้จริงถูกพล็อตเทียบกับอัตราบวกปลอม ตัวอย่างด้านล่าง ยิ่ง AUC ที่ใกล้เคียงสำหรับแบบจำลองมาถึง 1 ยิ่งดีเท่าไหร่ ดังนั้นโมเดลที่มี AUC สูงกว่าจึงเป็นที่ต้องการมากกว่าโมเดลที่มี AUC ต่ำกว่า

โปรดทราบว่านอกจากนี้ยังมีวิธีการอื่น ๆ นอกเหนือจาก ROC curves แต่ก็มีความสัมพันธ์กับอัตราการบวกและเท็จที่แท้จริงเช่นความแม่นยำในการจำ, คะแนน F1 หรือคะแนนลอเรนซ์

                                            ตัวอย่างเส้นโค้ง ROC


2
คุณช่วยอธิบายโค้ง ROC ในบริบทของการหาค่า crossvalidation อย่างง่ายของผลลัพธ์ 0/1 ได้ไหม? ฉันไม่รู้ว่าจะเข้าใจได้อย่างไรว่าเส้นโค้งถูกสร้างขึ้นในกรณีนี้อย่างไร
อยากรู้อยากเห็น

10

τ

  1. A
  2. BA
  3. τ

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

τAUC

เราได้รับ:

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

แทนสิ่งนี้เป็นสมการ (1) เราได้:

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

กล่าวอีกนัยหนึ่งพื้นที่ใต้เส้นโค้งคือความน่าจะเป็นที่ตัวอย่างบวกแบบสุ่มจะมีคะแนนสูงกว่าตัวอย่างเชิงลบแบบสุ่ม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.