सटीक रिकॉल वक्र में "बेसलाइन" क्या है


15

मैं सटीक रीकॉल कर्व को समझने की कोशिश कर रहा हूं, मुझे समझ में आ रहा है कि क्या प्रिसिजन और रिकॉल हैं, लेकिन जो चीज मुझे समझ नहीं आ रही है, वह "बेसलाइन" वैल्यू है। मैं इस लिंक को पढ़ रहा था https://classeval.wordpress.com/introduction/introduction-to-the-prepy-recall-plot/

और मुझे आधार रेखा के हिस्से के रूप में "एक सटीक क्लासिफायरियर का एक सटीक-रिकॉल वक्र" नहीं दिखाया गया है जो यह क्या करता है? और हम इसकी गणना कैसे करते हैं? क्या यह सिर्फ एक यादृच्छिक आधार रेखा है जिसे हम चुनते हैं? उदाहरण के लिए, मेरे पास retweet,status_countआदि जैसी विशेषताओं के साथ ट्विटर डेटा है और मेरा वर्ग लेबल Favorited1 है यदि पसंदीदा और 0 पसंदीदा नहीं है और मैं उस पर भोले बाएज़ लागू करता हूं और अब मैं सटीक-याद वक्र बनाना चाहता हूं, तो मुझे इस मामले में अपनी आधार रेखा कैसे निर्धारित करनी चाहिए ?

जवाबों:


13

पीआर वक्र प्लॉट में "बेसलाइन कर्व" एक क्षैतिज रेखा है जिसकी ऊँचाई सकारात्मक उदाहरण की कुल संख्या के बराबर है प्रशिक्षण डेटा एन की कुल संख्या । हमारे डेटा में सकारात्मक उदाहरणों का अनुपात ( P)PN )।PN

ठीक है, हालांकि यह मामला क्यों है? मान लेते हैं कि हमारे पास "जंक क्लासिफायर" सी जे एक रिटर्न यादृच्छिक संभावना पी मैं करने के लिए मैं वें नमूना उदाहरण y मैं कक्षा में रहने के लिए एक । सुविधा के लिए, कहते हैं कि पी मैं ~ यू [ 0 , 1 ] । इस यादृच्छिक वर्ग असाइनमेंट का सीधा निहितार्थ यह है कि C J में हमारे डेटा में सकारात्मक उदाहरणों के अनुपात के बराबर (अपेक्षित) परिशुद्धता होगी। यह केवल प्राकृतिक है; हमारे डेटा के किसी भी पूरी तरह से यादृच्छिक उप-नमूने में E होगाCJCJpiiyiApiU[0,1]CJसही ढंग से वर्गीकृत उदाहरण। यह किसी भी प्रायिकता सीमा के लिए सही होगाक्यूहमCJद्वारा लौटाए गए वर्ग सदस्यता की संभावनाओं के लिए निर्णय सीमा के रूप में उपयोग कर सकते हैं। (क्षमें एक मूल्य को दर्शाता है[0,1]जहां संभावना मूल्यों बड़ा या बराबरक्षकक्षा में वर्गीकृत किया जाता हैएक।) दूसरी ओर की याद प्रदर्शनसीजे(उम्मीद में) है के बराबरक्षअगरपीमैं~यू[,]। किसी भी सीमा परE{PN}qCJq[0,1]qACJqpiU[0,1] हम ले जाएगा (लगभग) ( 100 ( 1 - क्ष ) ) % हमारे कुल डेटा की जो बाद में (लगभग) में शामिल होंगे ( 100 ( 1 - क्ष ) ) % वर्ग के उदाहरण की कुल संख्या का एक नमूना है। इसलिए हमने शुरुआत में जिस क्षैतिज रेखा का उल्लेख किया था! प्रत्येक रिकॉल वैल्यू (पीआर ग्राफ में x मान) के लिए संबंधित सटीक मान (PR ग्राफ में y मान) P के बराबर हैq(100(1q))%(100(1q))%AxyPN

एक त्वरित अतिरिक्त नोट: सीमा है नहीं आम तौर पर 1 शून्य से उम्मीद याद करने के लिए बराबर है। यह C C J के परिणामों के यादृच्छिक समरूप वितरण के कारण ऊपर उल्लिखित C J के मामले में होता है ; एक अलग वितरण के लिए (जैसे। पी मैं ~ बी ( 2 , 5 ) ) के बीच इस अनुमानित पहचान संबंध क्ष और याद नहीं रखता है; U [ 0 , 1 ] का उपयोग किया गया क्योंकि यह समझने और मानसिक रूप से कल्पना करने में सबसे आसान है। एक अलग यादृच्छिक वितरण के लिए [ 0 मेंqCJCJpiB(2,5)qU[0,1]C J का PR प्रोफाइलहालांकि नहीं बदलेगा। बस दिए गए q मानों केलिए PR मानों की नियुक्तिबदल जाएगी।[0,1]CJq

अब एक आदर्श वर्गीकारक के बारे में , एक एक वर्गीकारक कि रिटर्न संभावना का मतलब होगा 1 नमूना उदाहरण के लिए y मैं वर्ग के होने के नाते एक अगर y मैं कक्षा में वास्तव में है एक और इसके अलावा सी पी रिटर्न संभावना 0 यदि y मैं वर्ग के एक सदस्य नहीं है । इसका तात्पर्य यह है कि किसी भी सीमा क्ष के लिए हमारे पास 100 % परिशुद्धता होगी (यानी ग्राफ़-शब्दों में हमें सटीक 100 % से शुरू होने वाली रेखा मिलती है )। एकमात्र बिंदु हमें 100 नहीं मिलता हैCP1yiAyiACP0yiAq100%100% परिशुद्धता q = 0 पर है । के लिए क्ष = 0 , सटीक हमारे डेटा में सकारात्मक उदाहरण के अनुपात (पर गिर जाता है पी100%q=0q=0 ) के रूप में (पागलपन की हद तक?) हम साथ भी अंक वर्गीकृत0वर्ग की जा रही है की संभावनाएकवर्ग में होने के रूप मेंएकसीपी केपीआर ग्राफ मेंइसकी शुद्धता,1औरपी केलिए सिर्फ दो संभावित मान हैंPN0AACP1PN

40%A

  rm(list= ls())
  library(PRROC)
  N = 40000
  set.seed(444)
  propOfPos = 0.40
  trueLabels = rbinom(N,1,propOfPos)
  randomProbsB = rbeta(n = N, 2, 5) 
  randomProbsU = runif(n = N)  

  # Junk classifier with beta distribution random results
  pr1B <- pr.curve(scores.class0 = randomProbsB[trueLabels == 1], 
                   scores.class1 = randomProbsB[trueLabels == 0], curve = TRUE) 
  # Junk classifier with uniformly distribution random results
  pr1U <- pr.curve(scores.class0 = randomProbsU[trueLabels == 1], 
                   scores.class1 = randomProbsU[trueLabels == 0], curve = TRUE) 
  # Perfect classifier with prob. 1 for positives and prob. 0 for negatives.
  pr2 <- pr.curve(scores.class0 = rep(1, times= N*propOfPos), 
                  scores.class1 = rep(0, times = N*(1-propOfPos)), curve = TRUE)

  par(mfrow=c(1,3))
  plot(pr1U, main ='"Junk" classifier (Unif(0,1))', auc.main= FALSE, 
       legend=FALSE, col='red', panel.first= grid(), cex.main = 1.5);
  pcord = pr1U$curve[ which.min( abs(pr1U$curve[,3]- 0.50)),c(1,2)];
  points( pcord[1], pcord[2], col='black', cex= 2, pch = 1)
  pcord = pr1U$curve[ which.min( abs(pr1U$curve[,3]- 0.20)),c(1,2)]; 
  points( pcord[1], pcord[2], col='black', cex= 2, pch = 17)
  plot(pr1B, main ='"Junk" classifier (Beta(2,5))', auc.main= FALSE,
       legend=FALSE, col='red', panel.first= grid(), cex.main = 1.5);
  pcord = pr1B$curve[ which.min( abs(pr1B$curve[,3]- 0.50)),c(1,2)]; 
  points( pcord[1], pcord[2], col='black', cex= 2, pch = 1)
  pcord = pr1B$curve[ which.min( abs(pr1B$curve[,3]- 0.20)),c(1,2)]; 
  points( pcord[1], pcord[2], col='black', cex= 2, pch = 17)
  plot(pr2, main = '"Perfect" classifier', auc.main= FALSE, 
       legend=FALSE, col='red', panel.first= grid(), cex.main = 1.5);  

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

q=0.50q=0.20PN10.401

0

रिकॉर्ड के लिए, पीआर घटता की उपयोगिता के बारे में सीवी में पहले से ही कुछ बहुत अच्छे जवाब हैं: यहां , यहां और यहां । बस उन्हें ध्यान से पढ़ने के बाद पीआर घटता के बारे में एक अच्छी सामान्य समझ की पेशकश करनी चाहिए।


1
इस समुदाय में शामिल हो गए ताकि मैं इसे बढ़ा सकूं। यह सटीक रीकॉल कर्व्स में बेसलाइन की अवधारणा का एक शानदार विवरण है। एक जैव सूचना विज्ञान के रूप में मुझे यह बेहद मददगार लगा।
jimh

1
@ जिम: धन्यवाद, यह सुनने के लिए एक बहुत अच्छी बात है। मुझे खुशी है कि पोस्ट उपयोगी थी।
us --r11852

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

0

ऊपर महान जवाब। यहाँ इसके बारे में सोचने का मेरा सहज तरीका है। कल्पना कीजिए कि आपके पास गेंदों का एक गुच्छा लाल = सकारात्मक और पीला = नकारात्मक है, और आप उन्हें यादृच्छिक रूप से एक बाल्टी = सकारात्मक अंश में फेंक देते हैं। फिर यदि आपके पास लाल और पीले रंग की गेंदों की समान संख्या है, जब आप अपने बाल्टी लाल (सकारात्मक) = पीले (नकारात्मक) से PREC = tp / tp + fp = 100/100 + 100 की गणना करते हैं, इसलिए, PREC = 0.5। हालांकि, अगर मेरे पास 1000 लाल गेंदें और 100 पीले रंग की गेंदें थीं, तो बाल्टी में मैं बेतरतीब ढंग से PREC = tp / tp + fp = 1000/1000 + 100 = 10091 की उम्मीद करूंगा क्योंकि यह पॉजिटिव बेस में मौका बेसलाइन है जो RP भी है। / RP + RN, जहां RP = वास्तविक धनात्मक और RN = वास्तविक ऋणात्मक।

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