ทำไม AUC = 1 ถึงแม้ตัวแยกประเภทได้แบ่งครึ่งตัวอย่างแล้ว?


20

ฉันใช้ตัวจําแนกซึ่งส่งกลับความน่าจะเป็น ในการคำนวณ AUC ฉันใช้ pROC R-package ความน่าจะเป็นผลลัพธ์จากลักษณนามคือ:

probs=c(0.9865780,
0.9996340,
0.9516880,
0.9337157,
0.9778576,
0.8140116,
0.8971550,
0.8967585,
0.6322902,
0.7497237)

probsแสดงความน่าจะเป็นที่อยู่ในระดับ '1' ดังที่แสดงลักษณนามได้จำแนกตัวอย่างทั้งหมดในคลาส '1'

True label vector คือ:

truel=c(1, 1, 1, 1, 1, 0, 0, 0, 0, 0)

ดังที่แสดงลักษณนามได้จำแนก 5 ตัวอย่าง แต่ AUC คือ:

pROC::auc(truel, probs)
Area under the curve: 1

คุณช่วยอธิบายให้ฉันฟังหน่อยได้ไหมว่าทำไมมันถึงเกิดขึ้น?


คำถามที่เกี่ยวข้อง: stats.stackexchange.com/questions/97395
Juho Kokkala

คำตอบ:


21

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


21

คำตอบอื่น ๆ อธิบายสิ่งที่เกิดขึ้น แต่ฉันคิดว่ารูปภาพอาจจะดี

คุณจะเห็นได้ว่าคลาสนั้นถูกแยกออกจากกันอย่างสมบูรณ์ดังนั้น AUC จึงเป็น 1 แต่การทำซ้ำที่ 1/2 จะทำให้เกิดอัตราการจำแนกประเภทที่ 50%

probs


21

ตัวอย่างไม่ได้ "ผิดประเภท" เลย 0ตัวอย่างมีการจัดอันดับอย่างเคร่งครัดต่ำกว่า1ตัวอย่าง AUROC จะทำสิ่งที่มันกำหนดให้ทำซึ่งเป็นวัดน่าจะเป็นที่สุ่มเลือกเป็นอันดับที่สูงกว่าสุ่มเลือก1 0ในตัวอย่างนี้สิ่งนี้เป็นจริงเสมอดังนั้นจึงเป็นความน่าจะเป็น 1 เหตุการณ์

Tom Fawcett มีบทความที่ดีเกี่ยวกับ ROC curves ฉันขอแนะนำให้เริ่มต้นที่นั่น

ทอมฟอว์เซ็ตต์ "ความรู้เบื้องต้นเกี่ยวกับการวิเคราะห์ ROC" ตัวอักษรการจดจำรูปแบบ 2005


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