2014-10-06 3 views
14

यहाँ मेरी समस्या का एक संक्षिप्त विवरण है:द्विआधारी वर्गीकरण में वर्ग असंतुलन के साथ काम

  1. मैं एक पर काम कर रहा हूँ एक द्विआधारी वर्गीकारक को प्रशिक्षित करने के काम सीखने का निरीक्षण किया।
  2. मेरे पास एक बड़ी कक्षा असंतुलन वितरण के साथ एक डेटासेट है: 8 नकारात्मक उदाहरण हर एक सकारात्मक।
  3. मैं एफ-माप का उपयोग करता हूं, यानी वर्गीकरण के प्रदर्शन का आकलन करने के लिए विशिष्टता और संवेदनशीलता के बीच हार्मोनिक माध्य का उपयोग करता हूं।

मैं कई क्लासिफायरों के आरओसी ग्राफों को साजिश करता हूं और सभी एक महान एयूसी प्रस्तुत करते हैं, जिसका अर्थ है कि वर्गीकरण अच्छा है। हालांकि, जब मैं वर्गीकरण का परीक्षण करता हूं और एफ-मापन की गणना करता हूं तो मुझे वास्तव में कम मूल्य मिलता है। मुझे पता है कि इस मुद्दे डेटासेट के वर्ग तिरछापन की वजह से और, है अब तक, मैं दो विकल्प इससे निपटने के लिए की खोज:

  1. एक लागत के प्रति संवेदनशील दृष्टिकोण अपनाने डाटासेट के उदाहरणों को वजन बताए (द्वारा यह post देखें)
  2. थ्रेसहोल्डिंग क्लासिफायर द्वारा लौटाई गई अनुमानित संभावनाएं, झूठी सकारात्मक और झूठी नकारात्मक संख्याओं को कम करने के लिए।

मैं पहले विकल्प के लिए गया और मेरी समस्या हल हो गई (एफ-उपाय संतोषजनक है)। लेकिन, अब, मेरा सवाल है: इनमें से कौन सी विधियां बेहतर हैं? और मतभेद क्या हैं?

पीएस: मैं विज्ञान-सीखने पुस्तकालय के साथ पायथन का उपयोग कर रहा हूं।

+1

यह प्रोग्रामिंग प्रश्न के बजाय एक सांख्यिकीय है। यह भी अस्पष्ट है कि इन मॉडलों का निर्माण कैसे किया गया था। आपका डेटासेट कितना बड़ा है? क्या आपने स्तरीकृत सीवी का उपयोग किया था या आप कैसे सुनिश्चित हैं कि आप अपने मॉडल को अधिक से अधिक नहीं कर रहे हैं (इसलिए कम एफ मान)? उस ने कहा, आम तौर पर मैं ** लागत-संवेदनशील ** को रोकता हूं क्योंकि ** थ्रेसहोल्डिंग ** विधि कटऑफ (आईएमएचओ) निर्दिष्ट करने वाले उपयोगकर्ता के लिए अधिक व्यक्तिपरक है। – cdeterman

+0

मेरे पास 3000 उदाहरण हैं और हां, मैं ओवरफिटिंग को रोकने के लिए 10-गुना स्तरीकृत सीवी का उपयोग करता हूं। – blueSurfer

+0

मेरे पास द्विआधारी वर्गीकरण समस्याएं थीं जहां 9 7%/3% की कमी थी। प्रशिक्षण के लिए मामलों की संख्या को संतुलित करने से 3% अंत की भविष्यवाणी में काफी सुधार हुआ है। मैं पहले अपने क्लासिफायर में थ्रेसहोल्डिंग की कोशिश नहीं करता था। –

उत्तर

26

दोनों वज़न (लागत-संवेदनशील) और थ्रेसहोल्डिंग लागत-संवेदनशील सीखने के वैध रूप हैं। छोटा संदर्भ में, आप इस प्रकार दो के बारे में सोच सकते हैं:

भार

अनिवार्य रूप से एक जोर देते हुए है कि दुर्लभ वर्ग misclassifying की 'मूल्य' सामान्य वर्ग misclassifying से भी बदतर है। यह एसवीएम, एएनएन, और यादृच्छिक वन के रूप में इस तरह के एल्गोरिदम में एल्गोरिदमिक स्तर पर लागू है। यहां सीमाएं शामिल हैं कि क्या एल्गोरिदम वजन से निपट सकता है या नहीं। इसके अलावा, इसके कई अनुप्रयोग अधिक गंभीर गलत वर्गीकरण करने के विचार को संबोधित करने की कोशिश कर रहे हैं (उदाहरण के लिए किसी को वर्गीकृत करना जिसके पास अग्नाशयी कैंसर है क्योंकि कैंसर नहीं है)। ऐसी परिस्थितियों में, आप जानते हैं क्यों आप यह सुनिश्चित करना चाहते हैं कि आप असंतुलित सेटिंग्स में भी विशिष्ट वर्गों को वर्गीकृत करें। आदर्श रूप से आप लागत पैरामीटर को अनुकूलित करना चाहते हैं क्योंकि आप किसी अन्य मॉडल पैरामीटर के रूप में करेंगे।

थ्रेशोल्डिंग

एल्गोरिथ्म संभावनाओं (या कुछ अन्य स्कोर) देता है, तो थ्रेशोल्डिंग के बाद एक मॉडल बनाया गया है लागू किया जा सकता। अनिवार्य रूप से आप वर्गीकरण सीमा को 50-50 से उचित व्यापार-बंद स्तर में बदलते हैं। यह आमतौर पर मूल्यांकन मीट्रिक (जैसे एफ-उपाय) के वक्र उत्पन्न करके अनुकूलित किया जा सकता है। यहां सीमा यह है कि आप पूर्ण व्यापार-बंद कर रहे हैं। कटऑफ में कोई भी संशोधन दूसरे वर्ग की भविष्यवाणी करने की सटीकता को कम करेगा।यदि आपके अधिकांश सामान्य वर्गों (जैसे 0.85 से ऊपर) के लिए आपके पास अत्यधिक संभावनाएं हैं तो आपको इस विधि के साथ सफलता प्राप्त होने की अधिक संभावना है। यह भी एल्गोरिदम स्वतंत्र है (एल्गोरिदम रिटर्न संभावनाएं प्रदान करता है)।

सैम्पलिंग

का नमूना लेना एक आम विकल्प असंतुलित डेटासेट के लिए आवेदन किया वर्ग वितरण करने के लिए कुछ संतुलन लाने के लिए है। अनिवार्य रूप से दो मौलिक दृष्टिकोण हैं।

अंडर नमूना

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

से अधिक नमूने

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

उन्नत तरीके

अतिरिक्त विधियों के लिए अधिक 'परिष्कृत' पता संभावित पूर्वाग्रह मदद करने के लिए कर रहे हैं। इनमें SMOTE, SMOTEBoost और EasyEnsemble जैसी विधियां शामिल हैं, जो इस prior question में असंतुलित डेटासेट और सीएसएल के संदर्भ में संदर्भित हैं।

मॉडल बिल्डिंग

आगे असंतुलित डेटा के साथ मॉडल के निर्माण के बारे में ध्यान दें कि आप मन अपने मॉडल मीट्रिक में रखना चाहिए है। उदाहरण के लिए, एफ-उपायों जैसे मीट्रिक वास्तविक नकारात्मक दर को ध्यान में रखते हैं। इसलिए, अक्सर यह अनुशंसा की जाती है कि Cohen’s kappa metric जैसे मीट्रिक का उपयोग करने के लिए असंतुलित सेटिंग्स में।

+0

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

+0

@ बेनएलिसन, आप सही हैं, ओवर/अंडर-नमूनाकरण अन्य विकल्प हैं। मैंने छोड़ा कि सवाल केवल वज़न और थ्रेसहोल्डिंग के संबंध में था। मैंने नमूनाकरण के बारे में और अधिक गहन होने के बारे में एक हिस्सा जोड़ा है। – cdeterman

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