ความแม่นยำเทียบกับพื้นที่ใต้เส้นโค้ง ROC


16

ฉันสร้างเส้นโค้ง ROC สำหรับระบบวินิจฉัย พื้นที่ใต้เส้นโค้งนั้นไม่ได้ประมาณค่าพารามิเตอร์เท่ากับ AUC = 0.89 เมื่อฉันพยายามคำนวณความถูกต้องที่การตั้งค่าขีด จำกัด ที่เหมาะสม (จุดที่ใกล้เคียงที่สุดกับจุด (0, 1)) ฉันได้รับความแม่นยำของระบบการวินิจฉัยที่ 0.8 ซึ่งน้อยกว่า AUC! เมื่อฉันตรวจสอบความถูกต้องที่การตั้งค่าขีด จำกัด อื่นซึ่งอยู่ไกลจากขีด จำกัด ที่เหมาะสมฉันได้ความแม่นยำเท่ากับ 0.92 เป็นไปได้หรือไม่ที่จะได้รับความถูกต้องของระบบการวินิจฉัยที่การตั้งค่าขีด จำกัด ที่ดีที่สุดที่ต่ำกว่าความแม่นยำที่ขีด จำกัด อื่นและต่ำกว่าพื้นที่ใต้เส้นโค้ง โปรดดูภาพที่แนบมา

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


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

1
269469 เป็นค่าลบและ 37731 เป็นค่าบวก นี่อาจเป็นปัญหาที่นี่ตามคำตอบด้านล่าง (ชั้นไม่สมดุล)
Ali Sultan

โปรดทราบว่าปัญหาไม่ได้เป็นความไม่สมดุลในระดับมันเป็นทางเลือกของการประเมินผล โดยรวมแล้วมีความสมเหตุสมผลมากกว่าในสถานการณ์นี้หรือคุณสามารถใช้ความแม่นยำที่สมดุล Aยู
Firebug

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

คำตอบ:


8

เป็นไปได้แน่นอน กุญแจสำคัญคือต้องจำไว้ว่าความถูกต้องได้รับผลกระทบอย่างมากจากความไม่สมดุลของคลาส เช่นในกรณีของคุณคุณมีตัวอย่างที่เป็นลบมากกว่าตัวอย่างที่เป็นบวกตั้งแต่เมื่อ FPR ( ) อยู่ใกล้กับ 0 และ TPR (=TP=FPFP+Tยังไม่มีข้อความ ) คือ 0.5 ความถูกต้องของคุณ (=TP+TNTPTP+Fยังไม่มีข้อความ ) ยังคงสูงมาก=TP+Tยังไม่มีข้อความTP+Fยังไม่มีข้อความ+FP+Tยังไม่มีข้อความ

ถ้าคุณมีตัวอย่างที่เป็นลบมากกว่านี้ถ้าตัวจําแนกทำนาย 0 ตลอดเวลามันจะยังคงมีความแม่นยำสูงด้วย FPR และ TPR ใกล้กับ 0

สิ่งที่คุณเรียกว่าการตั้งค่าขีด จำกัด ที่เหมาะสม (จุดที่ใกล้เคียงที่สุดกับจุด (0, 1)) เป็นเพียงหนึ่งในหลาย ๆ คำนิยามสำหรับขีด จำกัด ที่ดีที่สุด: มันไม่จำเป็นต้องปรับความแม่นยำให้เหมาะสมที่สุด

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


10

โอเคจำความสัมพันธ์ระหว่าง (อัตราบวกเท็จ), T P R (อัตราบวกจริง) และA C C (ความแม่นยำ):FPRTPRA

TPR=Σบวกอย่างแท้จริงΣกรณีที่เป็นบวก

FPR=Σบวกเท็จΣกรณีลบ

A=TPRΣกรณีที่เป็นบวก+(1-FPR)ΣกรณีลบΣกรณีที่เป็นบวก+Σกรณีลบ

ATPRFPR

A=TPR+1-FPR2

ยังไม่มีข้อความ-»ยังไม่มีข้อความ+

A(ยังไม่มีข้อความ-»ยังไม่มีข้อความ+)1-FPR
AFPR

ดูตัวอย่างนี้จำนวนเชิงลบมีจำนวนบวก 1,000: 1

data = c(rnorm(10L), rnorm(10000L)+1)
lab = c(rep(1, 10L), rep(-1, 10000L))
plot(data, lab, col = lab + 3)
tresh = c(-10, data[lab == 1], 10)
do.call(function(x) abline(v = x, col = "gray"), list(tresh))

pred = lapply(tresh, function (x) ifelse(data <= x, 1, -1))
res = data.frame(
  acc = sapply(pred, function(x) sum(x == lab)/length(lab)),
  tpr = sapply(pred, function(x) sum(lab == x & x == 1)/sum(lab == 1)),
  fpr = sapply(pred, function(x) sum(lab != x & x == 1)/sum(lab != 1))
)

res[order(res$acc),]

#> res[order(res$acc),]
#           acc tpr    fpr
#12 0.000999001 1.0 1.0000
#11 0.189110889 1.0 0.8117
#9  0.500099900 0.9 0.5003
#2  0.757742258 0.8 0.2423
#5  0.763136863 0.7 0.2368
#4  0.792007992 0.6 0.2078
#10 0.807292707 0.5 0.1924
#3  0.884215784 0.4 0.1153
#7  0.890709291 0.3 0.1087
#6  0.903096903 0.2 0.0962
#8  0.971428571 0.1 0.0277
#1  0.999000999 0.0 0.0000

ดูว่าเมื่อfprใดที่ 0 accคือสูงสุด

และนี่คือ ROC พร้อมคำอธิบายประกอบที่แม่นยำ

plot(sort(res$fpr), sort(res$tpr), type = "S", ylab = "TPR", xlab = "FPR")
text(sort(res$fpr), sort(res$tpr), pos = 4L, lab = round(res$acc[order(res$fpr)], 3L))
abline(a = 0, b = 1)
abline(a = 1, b = -1)

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


Aยู

1-sum(res$fpr[-12]*0.1)
#[1] 0.74608

บรรทัดล่างคือคุณสามารถเพิ่มประสิทธิภาพความแม่นยำในวิธีที่ทำให้รูปแบบปลอม ( tpr= 0 ในตัวอย่างของฉัน) นั่นเป็นเพราะความแม่นยำไม่ใช่ตัวชี้วัดที่ดีการแบ่งขั้วผลควรถูกทิ้งไว้กับผู้มีอำนาจตัดสินใจ

TPR=1-FPR

เมื่อคุณมีคลาสที่ไม่สมดุลความแม่นยำในการปรับให้เหมาะสมอาจเป็นเรื่องเล็กน้อย


Aยู

และที่สำคัญที่สุดของทั้งหมด: ทำไม AUC ถึงสูงกว่าสำหรับลักษณนามที่มีความแม่นยำน้อยกว่าตัวที่มีความแม่นยำมากกว่า

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