2012-01-25 14 views
15

मैं सोच रहा हूं कि सटीक गणना कैसे करें और मल्टीक्लास मल्टीलाबेल वर्गीकरण के लिए उपायों को याद करें, यानी वर्गीकरण जहां दो से अधिक लेबल हैं, और जहां प्रत्येक उदाहरण में एकाधिक लेबल हो सकते हैं?मल्टीक्लास-मल्टीलाबेल वर्गीकरण के लिए प्रेसिजन/रिकॉल

+0

ठीक है, झूठी अगर आप सही तरीके में वर्गीकृत नहीं किया था, और सच जहां इसे सही ढंग से वर्गीकृत किया गया होगा। आप एकाधिक लेबल के बारे में चिंता क्यों करते हैं? –

+1

+1 टिप्पणियों के बिना डाउनवॉट्स के साथ क्या हो रहा है? मेरे पास एक ही सवाल था और मुझे खुशी है कि मुझे यह पृष्ठ मिला। @ थॉमसजंगब्लूट मैं समझता हूं कि किसी दिए गए वर्ग के लिए सटीकता की गणना कैसे करें, उदा। कक्षा ए, लेकिन मुझे सभी वर्गों के लिए परिशुद्धता की गणना कैसे करनी चाहिए? क्या यह प्रत्येक वर्ग के लिए परिशुद्धता का अंकगणितीय माध्यम है? –

+0

मुझे एक समान प्रश्न मिला, यह एक डुप्लिकेट हो सकता है: http://stackoverflow.com/questions/3856013/get-recall- संवेदनशीलता-and-precision-ppv-values-of-a-multi-class-problem-in –

उत्तर

6

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

(precision(A) + precision(B) + precision(C))/3 

याद करने के लिए वही।

मैं कोई विशेषज्ञ हूँ, लेकिन यह मैं क्या निम्नलिखित स्रोतों के आधार पर निर्धारित किया है:

https://list.scms.waikato.ac.nz/pipermail/wekalist/2011-March/051575.html http://stats.stackexchange.com/questions/21551/how-to-compute-precision -recall के लिए multiclass-multilabel-वर्गीकरण

+5

यदि आपके डेटा में लेबल की असंतुलित संख्या है, यह औसत वास्तविक प्रदर्शन को प्रतिबिंबित नहीं कर सकता है। – tashuhka

4
  • हमें लगता है कि हम साथ लेबल ए, बी और सी में 3 श्रेणियों के बहु वर्गीकरण समस्या है
  • करने के लिए पहली बात एक भ्रम की स्थिति उत्पन्न करने के लिए है चलो मैट्रिक्स। ध्यान दें कि विकर्ण में मान हमेशा सही सकारात्मक (टीपी) होते हैं।
  • अब, लेबल एक के लिए याद गणना करने के लिए आप भ्रम मैट्रिक्स से मूल्यों और गणना बंद पढ़ सकते हैं:

    = TP_A/(TP_A+FN_A) 
    = TP_A/(Total gold labels for A) 
    
  • अब, हम लेबल एक के लिए परिशुद्धता गणना करते हैं, तो आप पढ़ सकते हैं भ्रम मैट्रिक्स और गणना से मूल्यों बंद:

    = TP_A/(TP_A+FP_A) 
    = TP_A/(Total predicted as A) 
    
  • तुम बस शेष लेबल बी और सी यह किसी भी म्यू पर लागू होता है के लिए भी ऐसा ही करने की जरूरत है lti-class वर्गीकरण समस्या।

Here पूरा लेख कि कैसे उदाहरण सहित किसी भी बहु स्तरीय वर्गीकरण समस्या, के लिए सटीक और याद की गणना करने के बारे में बात करती है।

0

कक्षा औसत संतुलित होने पर सरल औसत होगा।

अन्यथा, प्रत्येक वास्तविक वर्ग के लिए याद रखें कक्षा के प्रसार से भारित किया जाना चाहिए, और प्रत्येक लेबल के लिए पूर्वाग्रह को प्रत्येक लेबल के लिए पूर्वाग्रह (संभाव्यता) द्वारा भारित करने की आवश्यकता है। किसी भी तरह से आप रैंड सटीकता प्राप्त करते हैं।

सामान्यीकृत आकस्मिक तालिका बनाने के लिए एक और सीधा तरीका है (एन द्वारा विभाजित एन तालिका लेबल और वर्ग के प्रत्येक संयोजन के लिए 1 तक जोड़ती है) और रैंड शुद्धता प्राप्त करने के लिए विकर्ण जोड़ें।

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

8

बहु-लेबल वर्गीकरण के लिए आपके पास जाने के दो तरीके हैं, पहले निम्न पर विचार करें।

  • $n$ उदाहरणों की संख्या है।
  • $Y_i$$i^{th}$ उदाहरण के जमीनी सच्चाई लेबल काम है ..
  • $x_i$$i^{th}$ उदाहरण है।
  • $h(x_i)$$i^{th}$ उदाहरण के लिए अनुमानित लेबल हैं।

उदाहरण आधारित

मैट्रिक्स एक डाटापॉइंट प्रति ढंग से गणना की जाती है। प्रत्येक अनुमानित लेबल के लिए इसका केवल स्कोर ही गणना किया जाता है, और फिर इन स्कोर को सभी डेटापॉइंट्स पर एकत्रित किया जाता है।

  • प्रेसिजन = $\frac{1}{n}\sum_{i=1}^{n}\frac{|Y_{i}\cap h(x_{i})|}{|h(x_{i})|}$ , भविष्यवाणी का कितना सही है के अनुपात। अंकुशक को पता चलता है कि अनुमानित वेक्टर में ग्राउंड सच्चाई के साथ कितने लेबल आम हैं, और अनुपात गणना करता है, वास्तव में सच्चे लेबल वास्तव में ग्राउंड सच्चाई में कितने हैं।
  • रिकॉल = $\frac{1}{n}\sum_{i=1}^{n}\frac{|Y_{i}\cap h(x_{i})|}{|Y_{i}|}$ , वास्तविक लेबल की भविष्यवाणी के अनुपात का अनुपात। अंकुशक को पता चलता है कि अनुमानित वेक्टर में जमीन के सत्य (ऊपर के रूप में) के साथ कितने लेबल आम हैं, फिर वास्तविक लेबल की संख्या को अनुपात मिलते हैं, इसलिए वास्तविक लेबलों का किस अंश का अनुमान लगाया गया था।

अन्य मेट्रिक्स भी हैं।

लेबल आधारित

यहाँ सब किया जाता है लेबल के लिहाज से। प्रत्येक लेबल के लिए मीट्रिक (उदाहरण के लिए परिशुद्धता, याद) गणना की जाती है और फिर इन लेबल-वार मीट्रिक एकत्रित होते हैं। इसलिए, इस मामले में आप संपूर्ण डेटासेट पर प्रत्येक लेबल के लिए सटीकता/याद करने की गणना करते हैं, जैसा कि आप बाइनरी वर्गीकरण के लिए करते हैं (जैसे प्रत्येक लेबल में बाइनरी असाइनमेंट होता है), फिर इसे समेकित करें।

सामान्य रूप प्रस्तुत करना आसान तरीका है।

यह मानक बहु-वर्ग समकक्ष का विस्तार है।

  • मैक्रो औसतन $\frac{1}{q}\sum_{j=1}^{q}B(TP_{j},FP_{j},TN_{j},FN_{j})$

  • माइक्रो औसतन $B(\sum_{j=1}^{q}TP_{j},\sum_{j=1}^{q}FP_{j},\sum_{j=1}^{q}TN_{j},\sum_{j=1}^{q}FN_{j})$

यहाँ $TP_{j},FP_{j},TN_{j},FN_{j}$ सच सकारात्मक, झूठी सकारात्मक, सच नकारात्मक और झूठी नकारात्मक मायने रखता है केवल $j^{th}$लेबल के लिए क्रमशः ।

यहां $ बी $ किसी भी भ्रम-मैट्रिक्स आधारित मीट्रिक के लिए खड़ा है। आपके मामले में आप मानक परिशुद्धता और यादगार सूत्रों को प्लग करेंगे। मैक्रो औसत के लिए आप प्रति लेबल गिनती में पास करते हैं और फिर योग, माइक्रो औसत के लिए आप पहले गणना करते हैं, फिर अपने मीट्रिक फ़ंक्शन को लागू करें।

आप बहु-लेबल मेट्रिक्स here के लिए कोड को देखने में रुचि रखते हैं, जो पैकेज mldrR में पैकेज का एक हिस्सा है। इसके अलावा आपको जावा मल्टी-लेबल लाइब्रेरी MULAN में देखने में रुचि हो सकती है।

यह एक अच्छा कागज विभिन्न मीट्रिक में प्राप्त करने के लिए है: A Review on Multi-Label Learning Algorithms

+0

क्या गैर-मल्टीलाबेल के लिए उदाहरण आधारित दृष्टिकोण का उपयोग करते समय रिकॉल सटीकता के बराबर है, लेकिन मल्टीक्लास वर्गीकरण? – WetFish

संबंधित मुद्दे