R [बंद] में AUPR की गणना


15

आरओसी के तहत एक पैकेज की गणना करने वाले क्षेत्र को खोजना आसान है, लेकिन क्या ऐसा पैकेज है जो सटीक-रिकॉल कर्व के तहत क्षेत्र की गणना करता है?


ROCR , pROC - वास्तव में बहुत अच्छे हैं!
व्लादिमीर चुपाखिन

1
वे निश्चित रूप से हैं, फिर भी AFAIK न तो सटीक-रिकॉल वक्र के तहत क्षेत्र की गणना कर सकते हैं।

जवाबों:


15

जुलाई 2016 तक, पैकेज PRROC ROC AUC और PR AUC दोनों की गणना के लिए बहुत अच्छा काम करता है।

मान लें कि आपके पास पहले से ही probsअपने मॉडल के साथ गणना की गई संभावनाओं का एक वेक्टर है (कहा जाता है ) और सही वर्ग लेबल आपके डेटा फ्रेम में हैं df$label(0 और 1) इस कोड को काम करना चाहिए:

install.packages("PRROC")

require(PRROC)
fg <- probs[df$label == 1]
bg <- probs[df$label == 0]

# ROC Curve    
roc <- roc.curve(scores.class0 = fg, scores.class1 = bg, curve = T)
plot(roc)

# PR Curve
pr <- pr.curve(scores.class0 = fg, scores.class1 = bg, curve = T)
plot(pr)

पुनश्च: लेबल 1 के लिए गणना की जाती है और 0 नहीं scores.class0 = fgजब आप उपयोग करते हैं तो केवल डिस्कनेक्टिंग बात है fg

यहाँ उदाहरण ROC और PR उनके नीचे के क्षेत्रों के साथ दिए गए हैं:

AUC के साथ ROC वक्र

AUC के साथ PR कर्व

दाईं ओर की सलाखों की दहलीज संभावनाएं हैं, जिस पर वक्र पर एक बिंदु प्राप्त होता है।

ध्यान दें कि एक यादृच्छिक क्लासिफायरियर के लिए, आरओसी एयूसी कक्षा असंतुलन के बावजूद 0.5 के करीब होगा। हालांकि, पीआर एयूसी मुश्किल है ( सटीक रिकॉल वक्र में "बेसलाइन" क्या है ) देखें।


Pls ऊपर दिए गए उत्तर में जुड़े PRROC प्रलेखन को देखें।
अरुण

2

थोड़ा सा googling एक bioc पैकेज, qpgraph ( qpPrecisionRecall), और एक क्रेन एक, minet ( auc.pr) देता है। हालांकि मुझे उनके साथ कोई अनुभव नहीं है। जैविक नेटवर्क से निपटने के लिए दोनों को तैयार किया गया है।


यह मिनेट अच्छा लग रहा था, लेकिन इसे सामान्य डेटा से उचित इनपुट बनाने के लिए कुछ बाहरी एडेप्टर की आवश्यकता है :-(

2

एक बार जब आपको एक सटीक रीकॉल कर्व मिल जाता है qpPrecisionRecall, जैसे:

pr <- qpPrecisionRecall(measurements, goldstandard)

आप ऐसा करके इसकी AUC गणना कर सकते हैं:

f <- approxfun(pr[, 1:2])
auc <- integrate(f, 0, 1)$value

की मदद पेज qpPrecisionRecallआप क्या डेटा संरचना अपने तर्कों में उम्मीद पर विवरण देता है।


1
क्या पीआर-वक्र को कुछ अधिक फैंसी एकीकरण की आवश्यकता नहीं है? देखें: mnd.ly/oWQQw1

1

AUPRC()PerfMeasपैकेज में एक फ़ंक्शन है जो पैकेज में pr.curve()फ़ंक्शन की तुलना में बहुत बेहतर है PRROCजब डेटा बहुत बड़ा है। pr.curve()एक बुरा सपना है और लाखों प्रविष्टियों के साथ वैक्टर होने पर हमेशा के लिए समाप्त हो जाता है। PerfMeasतुलना में सेकंड लगता है। PRROCR PerfMeasमें लिखा है और C में लिखा है।

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