क्यों घटा?


42

मान लीजिए मैं एक क्लासिफायर सीखना चाहता हूं जो ईमेल स्पैम होने पर भविष्यवाणी करता है। और मान लीजिए कि केवल 1% ईमेल स्पैम हैं।

सबसे आसान बात यह है कि तुच्छ क्लासिफायरियर सीखना होगा जो कहता है कि कोई भी ईमेल स्पैम नहीं है। यह क्लासिफायर हमें 99% सटीकता देगा, लेकिन यह कुछ भी दिलचस्प नहीं सीखेगा, और झूठे नकारात्मक की 100% दर होगी।

इस समस्या को हल करने के लिए, लोगों ने मुझे "downsample" के लिए कहा है, या डेटा के सबसेट पर सीखें जहां 50% उदाहरण स्पैम हैं और 50% स्पैम नहीं हैं।

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

तो हम इस समस्या को कैसे ठीक करते हैं?

("Upsampling," या सकारात्मक प्रशिक्षण के उदाहरणों को बार-बार दोहराते हैं इसलिए 50% डेटा सकारात्मक प्रशिक्षण उदाहरण हैं, समान समस्याओं से ग्रस्त हैं।)

जवाबों:


37

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

निर्णय मूल्य के आधार पर, आप हमेशा कुछ कटऑफ असाइन कर सकते हैं जो क्लासिफायर को इस तरह कॉन्फ़िगर करता है कि डेटा का एक निश्चित अंश सकारात्मक रूप से लेबल किया जाता है। एक उचित सीमा का निर्धारण मॉडल के आरओसी या पीआर घटता के माध्यम से किया जा सकता है । आप प्रशिक्षण सेट में उपयोग किए गए संतुलन की परवाह किए बिना निर्णय सीमा के साथ खेल सकते हैं। दूसरे शब्दों में, अप-डाउन डाउनसम्पलिंग जैसी तकनीकें इसके लिए रूढ़िवादी हैं।

मान लिया जाए कि मॉडल यादृच्छिक से बेहतर है, तो आप सहजता से देख सकते हैं कि सकारात्मक वर्गीकरण के लिए थ्रेशोल्ड में वृद्धि (जो कि कम सकारात्मक भविष्यवाणियों की ओर जाता है ) कम रिकॉल और इसके विपरीत की कीमत पर मॉडल की सटीकता को बढ़ाता है।

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


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

2
@ जेसिका जैसा कि मैंने उल्लेख किया है, दहलीज चुनने का एक सुविधाजनक तरीका रिसीवर ऑपरेटिंग विशेषता (आरओसी) घटता है। हर सीमा आरओसी अंतरिक्ष में एक बिंदु से मेल खाती है। जब आप वक्र को प्लॉट करते हैं, तो आप अपनी विशिष्ट आवश्यकताओं के आधार पर एक सीमा चुन सकते हैं। (आप एक विकल्प के रूप में परिशुद्धता-रिकॉल कर्व्स का भी उपयोग कर सकते हैं)
मार्क क्लेसेन

मैं इस बात से सहमत नहीं हूं कि एसवीएम द्वारा सीखे गए हाइपरप्लेन के परीक्षण बिंदु की दूरी भविष्यवाणी के विश्वास का कोई भी उपाय है। SVM आउटपुट प्रीडिक्शन कॉन्फिडेंस बनाने के प्रयास किए गए हैं। उदाहरण के लिए प्लॉट स्केलिंग देखें। लेकिन यह गाऊसी प्रक्रिया वर्गीकरण (wrt भविष्यवाणी विश्वास) के रूप में अच्छी तरह से नहीं करता है।
सीडा

1
@ सईदा प्लाट स्केलिंग जूता-हर्निंग निर्णय मूल्यों के बारे में संभावनाओं में है। प्लॉट स्केलिंग लॉजिस्टिक फ़ंक्शन के माध्यम से चलने (स्केल किए गए) निर्णय मानों के रूप में सरल है, जो कि अखंड रूप से बढ़ रहा है और इसलिए जो भी रैंकिंग (= आत्मविश्वास) को प्रभावित नहीं करता है। यह सब करता है, जो कि से तक का आउटपुट मैप करता है । [ , ]R[0,1]
मार्क क्लेसेन

@MarcClaesen मैं प्लॉट स्केलिंग का उपयोग करने का सुझाव नहीं दे रहा हूं; यह भविष्यवाणी विश्वास पैदा करने के लिए एक "प्रयास" है लेकिन बेहतर विकल्प हैं। मैं केवल इतना कह रहा हूं कि हाइपरप्लेन की दूरी का उपयोग करना सार्थक नहीं है और साहित्य की समीक्षा करना, मैं कभी भी इसके पार नहीं गया हूं, हालांकि यह पहली बात है जो किसी एसवीएम से बाहर विश्वास पैदा करने की कोशिश कर रहा है।
सीडा

14

यहां वास्तविक समस्या मीट्रिक की आपकी पसंद है:% सटीकता एक गैर-संतुलित डेटासेट पर मॉडल की सफलता का एक खराब माप है (ठीक उसी कारण के लिए जिसका आप उल्लेख करते हैं: यह इस मामले में 99% सटीकता प्राप्त करने के लिए तुच्छ है)।

मॉडल को फिट करने से पहले अपने डेटासेट को संतुलित करना एक बुरा समाधान है क्योंकि यह आपके मॉडल को बायसे करता है और (इससे भी बदतर) संभावित उपयोगी डेटा को बाहर निकालता है।

आप अपने डेटा को संतुलित करने के बजाय अपनी सटीकता मीट्रिक को संतुलित करने से बहुत बेहतर हैं। उदाहरण के लिए आप मॉडल का मूल्यांकन करते समय संतुलित सटीकता का उपयोग कर सकते हैं (error for the positive class + error for the negative class)/2:। यदि आप सभी सकारात्मक या सभी नकारात्मक की भविष्यवाणी करते हैं, तो यह मीट्रिक वह होगा 50%जो एक अच्छी संपत्ति है।

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


क्या मैं पूछ सकता हूं कि असंतुलित डेटा पर क्लासिफायर अच्छा कैसे कर सकता है? शायद यह सिर्फ मेरा डेटा है, लेकिन मैंने अपने प्रशिक्षण डेटा पर लॉजिस्टिक रिग्रेशन, रैंडम फॉरेस्ट और C5.0 मॉडल का प्रशिक्षण करने की कोशिश की है, दोनों मिश्रित / अंडरस्लैम्पिंग का उपयोग करके असंतुलित और संतुलित दोनों हैं। असंतुलित डेटा पर प्रशिक्षित मॉडल संतुलित डेटा पर प्रशिक्षित लोगों की तुलना में मेरे परीक्षण सेट पर बहुत खराब प्रदर्शन करते हैं।
सीनोसैपियन

13

हमेशा की @Marc Claesenतरह एक बेहतरीन जवाब।

मैं सिर्फ इतना जोड़ना चाहूंगा कि लगता है कि प्रमुख अवधारणा गायब है एक लागत समारोह की अवधारणा है । किसी भी मॉडल में आपके पास झूठी सकारात्मक (एफएन / एफपी) के लिए झूठी नकारात्मक की निहित या स्पष्ट लागत है। वर्णित असंतुलित डेटा के लिए अक्सर एक 5: 1 या 10: 1 अनुपात का होना चाहिए। मॉडल में लागत कार्यों को शुरू करने के कई तरीके हैं। एक पारंपरिक विधि एक मॉडल द्वारा उत्पादित संभावनाओं पर एक संभाव्यता कट-ऑफ लागू करना है - यह लॉजिस्टिक प्रतिगमन के लिए अच्छी तरह से काम करता है।

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


2
इसे लाने के लिए धन्यवाद, यह एक दिलचस्प विचार है जिसे मैंने नहीं माना था। आप कैसे बता सकते हैं कि कौन सा नमूना अनुपात आपके लागत फ़ंक्शन से मेल खाता है?
जेसिका

8

जेसिका के सवाल का सीधे जवाब देना - डाउनस्मलिंग का एक कारण यह है कि जब आप एक बड़े डेटासेट के साथ काम कर रहे हों और अपने कंप्यूटर पर मेमोरी लिमिट का सामना कर रहे हों या केवल प्रोसेसिंग टाइम कम करना चाहते हों। नकारात्मक मामलों से डाउनसमलिंग (यानी, बिना प्रतिस्थापन के एक यादृच्छिक नमूना लेना) डेटासेट को अधिक प्रबंधनीय आकार तक कम कर देता है।

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

इसलिए लॉजिस्टिक रिग्रेशन का उपयोग करना, जो मार्क क्सेसेन द्वारा सुझाए गए निरंतर पूर्वानुमानित संभाव्यता मान को लौटाता है, एक बेहतर दृष्टिकोण है। यदि आप डेटा पर लॉजिस्टिक रिग्रेशन कर रहे हैं, तो गुणांक कम रिकॉर्ड होने के बावजूद निष्पक्ष रहते हैं। आपको होसमेर और लेमेशो, 2000 के फॉर्मूले के अनुसार अपने रिग्रेशन से इंटरसेप्ट, को एडजस्ट करना होगा :β0

βc=β0log(p+1p+)

जहां आपकी पूर्व-डाउनसमलिंग जनसंख्या में सकारात्मक मामलों का अंश है।p+

आरओसी के साथ अपनी पसंदीदा स्पैम आईडी थ्रेशोल्ड को ढूंढकर पहले संपूर्ण डेटासेट को डाउनग्रेड किए गए डेटासेट पर मॉडल किए गए मॉडल गुणांक के साथ स्कोर किया जा सकता है, और फिर रिकॉर्ड किया जा सकता है उच्चतम से निम्नतम पूर्वानुमानित स्पैम होने की संभावना। इसके बाद, शीर्ष रन किए गए रिकॉर्ड को ले लें , जहां वह है जो आप (100, 500, 1000, आदि) सेट करना चाहते हैं और फिर शीर्ष मामलों में झूठे सकारात्मक मामलों के प्रतिशत और झूठे नकारात्मक मामलों के प्रतिशत की गणना करें । / मामलों के शेष निचले स्तर पर संवेदनशीलता / विशिष्टता का सही संतुलन खोजने के लिए जो आपकी आवश्यकताओं को पूरा करता है।n n n nnnnNn


3

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

मोटे तौर पर, डेटासेट को संतुलित करते हुए आप मिसकॉलिफिकेशन त्रुटियों को कम कर सकते हैं। एक एल्गोरिथ्म जो संभवतः असंतुलित प्रशिक्षण सेट का उपयोग करता है, वह सुविधाओं से भेदभाव करना नहीं सीखेगा, क्योंकि यह इस तथ्य को बहुत अधिक महत्व नहीं देगा कि स्केनी वर्ग के डेटा को गलत बनाता है।


0

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

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