आरओसी वक्र के तहत सटीकता बनाम क्षेत्र


16

मैंने एक नैदानिक ​​प्रणाली के लिए एक आरओसी वक्र का निर्माण किया। वक्र के नीचे का क्षेत्र तब गैर-पैरामीट्रिक रूप से अनुमानित था AUC = 0.89। जब मैंने इष्टतम थ्रेशोल्ड सेटिंग (बिंदु के निकटतम बिंदु (0, 1)) पर सटीकता की गणना करने की कोशिश की, तो मुझे डायग्नोस्टिक सिस्टम की सटीकता 0.8 मिली, जो एयूसी से कम है! जब मैंने एक और थ्रेशोल्ड सेटिंग में सटीकता की जांच की, जो इष्टतम सीमा से बहुत दूर है, तो मुझे 0.92 के बराबर सटीकता मिली। क्या किसी अन्य थ्रेसहोल्ड पर सटीकता से कम और वक्र के नीचे के क्षेत्र की तुलना में सबसे कम सीमा पर निदान प्रणाली की सटीकता प्राप्त करना संभव है? कृपया संलग्न चित्र देखें।

यहाँ छवि विवरण दर्ज करें


1
क्या आप यह बता सकते हैं कि आपके विश्लेषण में कितने नमूने थे? मुझे यकीन है कि यह बहुत असंतुलित था। इसके अलावा, AUC और सटीकता उस तरह से अनुवाद नहीं करते हैं (जब आप कहते हैं कि सटीकता AUC से कम है), बिल्कुल।
फायरबग

1
269469 नकारात्मक हैं और 37731 सकारात्मक हैं; नीचे दिए गए उत्तर (वर्ग असंतुलन) के अनुसार यह समस्या हो सकती है।
अली सुल्तान

ध्यान रखें कि समस्या प्रति वर्ग असंतुलन नहीं है, यह मूल्यांकन उपाय का विकल्प है। सभी के सभी, इस परिदृश्य में अधिक उचित है, या आप संतुलित सटीकता को लागू कर सकते हैं। AUC
फायरबग

एक आखिरी बात, यदि आपको लगता है कि कोई उत्तर आपके प्रश्न का उत्तर देता है, तो आप उत्तर (हरे रंग की जाँच चिह्न) को "स्वीकार" करने पर विचार कर सकते हैं। यह अनिवार्य नहीं है, लेकिन उस व्यक्ति की मदद करता है जिसने उत्तर दिया और साइट संगठन को भी मदद करता है (यह प्रश्न तब तक अनुत्तरित है जब तक आप ऐसा नहीं करते हैं), और शायद लोग जो भविष्य में एक ही सवाल करेंगे।
Firebug

जवाबों:


8

यह वास्तव में संभव है। कुंजी यह याद रखना है कि सटीकता वर्ग असंतुलन से अत्यधिक प्रभावित होती है। उदाहरण के लिए, आपके मामले में, आपके पास सकारात्मक नमूनों की तुलना में अधिक नकारात्मक नमूने हैं, जब से एफपीआर ( ) 0 के करीब है, और TPR (=) 0.5 है, आपकी सटीकता (=TP+TN)=FPFP+TNTPTP+FN ) अभी भी बहुत अधिक है।=TP+TNTP+FN+FP+TN

अन्यथा इसे लगाने के लिए, क्योंकि आपके पास कई और नकारात्मक नमूने हैं, यदि क्लासिफायरियर हर समय 0 की भविष्यवाणी करता है, तब भी यह FPR और 0 के करीब TPR के साथ उच्च सटीकता प्राप्त करेगा।

जिसे आप इष्टतम थ्रेशोल्ड सेटिंग कहते हैं (पॉइंट टू पॉइंट (0, 1)) इष्टतम थ्रेशोल्ड के लिए कई परिभाषाओं में से एक है: यह आवश्यक रूप से सटीकता का अनुकूलन नहीं करता है।

यहाँ छवि विवरण दर्ज करें


10

FPRTPRACC

TPR=True positivePositive cases

FPR=False positiveNegative cases

ACC=TPRPositive cases+(1FPR)Negative casesPositive cases+Negative cases

ACCTPRFPR

ACC=TPR+1FPR2

NN+

ACC(NN+)1FPR
ACCFPR

इस उदाहरण को देखें, निगेटिव पोज़िटिव 1000: 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

देखें, जब fpr0 accअधिकतम हो।

और यहाँ आरओसी है, सटीकता के साथ एनोटेट।

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)

यहाँ छवि विवरण दर्ज करें


AUC

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

लब्बोलुआब यह है कि आप एक तरह से सटीकता का अनुकूलन कर सकते हैं जिसके परिणामस्वरूप एक फर्जी मॉडल ( tprमेरे उदाहरण में = 0) है। ऐसा इसलिए है क्योंकि सटीकता एक अच्छा मीट्रिक नहीं है, परिणाम का द्विभाजन निर्णयकर्ता के लिए छोड़ दिया जाना चाहिए।

TPR=1FPR

जब आपके पास असंतुलित कक्षाएं होती हैं, तो अनुकूलन सटीकता तुच्छ हो सकती है (उदाहरण के लिए सभी को बहुसंख्यक वर्ग के रूप में भविष्यवाणी करें)।


AUC

और सभी के लिए सबसे महत्वपूर्ण: AUC एक क्लासिफायरियर के लिए उच्च क्यों है जो एक से अधिक सटीक है जो कि अधिक सटीक है?

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.