क्या मुझे 'संतुलित' डेटासेट या 'प्रतिनिधि' डेटासेट के लिए जाना चाहिए?


48

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

सामान्य तौर पर, अगर मैं मशीन लर्निंग मॉडल का निर्माण कर रहा हूं, तो क्या मुझे एक ऐसे डेटासेट के लिए जाना चाहिए जो वास्तविक दुनिया की समस्या का प्रतिनिधि है, या मॉडल के निर्माण के लिए बेहतर संतुलित डेटासेट है (क्योंकि कुछ निश्चित रूप से कक्षा के सदस्य कक्षा असंतुलन के साथ अच्छा व्यवहार नहीं करते हैं, या अन्य कारणों के कारण मुझे ज्ञात नहीं)?

क्या कोई दोनों विकल्पों के पेशेवरों और विपक्षों पर अधिक प्रकाश डाल सकता है और यह कैसे तय करना है कि किसे चुनना है?

जवाबों:


38

मैं कहूंगा कि उत्तर आपके उपयोग के मामले पर निर्भर करता है। मेरे अनुभव के आधार पर:

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

2
यदि आप एक प्रतिनिधि मॉडल बनाने की कोशिश कर रहे हैं - एक जो आवश्यक रूप से भविष्यवाणी करने के बजाय डेटा का वर्णन करता है ... जो एक मॉडल बनाता है जो पूर्वनिर्धारित नहीं करता है ?? क्या तुम वहाँ नहीं
पहुंचे

8
अनअस्पुअलाइज्ड लर्निंग एक उदाहरण होगा जहां आप एक मॉडल बनाते हैं जो जरूरी नहीं कि भविष्यवाणी करने के लिए तैयार हो। कुछ उदाहरणों में आप अपने डेटा को एक्सप्लोर या सारांशित करना चाह सकते हैं।
18ea में DSea

1
मैं कहूंगा कि यह आपके नमूने को संतुलित करने के लिए सुरक्षित है, लेकिन नमूना वजन भी एकत्र करें ताकि आप बाद में अपने डेटा का प्रतिनिधित्व करने के लिए पुन: वजन कर सकें, यदि आपको आवश्यकता हो। @pnp बहुत सारे सामाजिक वैज्ञानिक सिद्धांतों की पुष्टि करने के लिए गैर-भविष्य कहनेवाला मॉडल बनाते हैं।
छायाकार

एक संतुलित मॉडल की नकल करने के लिए भारित टिप्पणियों का उपयोग करके एक प्रतिनिधि मॉडल की तुलना कैसे होगी?
जेनएससीडीसी

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

8

मुझे लगता है कि यह हमेशा परिदृश्य पर निर्भर करता है। प्रतिनिधि डेटा सेट का उपयोग करना हमेशा समाधान नहीं होता है। मान लें कि आपके प्रशिक्षण सेट में 1000 नकारात्मक उदाहरण और 20 सकारात्मक उदाहरण हैं। क्लासिफायर के किसी भी संशोधन के बिना, आपका एल्गोरिथ्म सभी नए उदाहरणों को नकारात्मक के रूप में वर्गीकृत करेगा। कुछ परिदृश्यों में यह ठीक है, लेकिन कई मामलों में लापता पोस्टिव उदाहरणों की लागत अधिक है, इसलिए आपको इसके लिए एक समाधान ढूंढना होगा।

ऐसे मामलों में आप एक लागत संवेदनशील मशीन लर्निंग एल्गोरिदम का उपयोग कर सकते हैं। उदाहरण के लिए चिकित्सा निदान डेटा विश्लेषण के मामले में।

सारांश में: वर्गीकरण त्रुटियों में समान लागत नहीं है!


7

दोनों दृष्टिकोणों को आजमाने और अपेक्षित प्रदर्शन को अधिकतम करने वाले समाधान को बनाए रखने के लिए हमेशा समाधान होता है।

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

फिर सटीक / रिकॉल, या संवेदनशीलता / विशिष्टता की गणना करें, या जो भी मानदंड आपको पूर्ण, असंतुलित, डेटासेट पर सूट करता है, यह सुनिश्चित करने के लिए कि आपने कम डेटा पर मॉडल का निर्माण करते समय वास्तविक डेटा में मौजूद एक महत्वपूर्ण पैटर्न को अनदेखा नहीं किया है।


4

परिचालन और प्रशिक्षण परिदृश्यों को अलग करें।

परिचालन परिदृश्य वह है जिसमें आपके क्लासिफायर को माप दिया जाएगा। यह वह जगह है जहाँ आपको अच्छा प्रदर्शन करना चाहिए। उपयोग में एक डेटासेट होना चाहिए जो इस परिदृश्य का प्रतिनिधि हो।

प्रशिक्षण परिदृश्य वह है जो आप एक क्लासिफायर बनाने के लिए कर रहे हैं जो परिचालन परिदृश्य पर अच्छा प्रदर्शन करेगा।

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

डेटासेट के असंतुलित होने पर परिचालन और प्रशिक्षण परिदृश्यों के बीच अंतर महत्वपूर्ण हो जाता है। अधिकांश एल्गोरिदम ऐसे डेटासेट पर अच्छा प्रदर्शन नहीं करेंगे।

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


3

मुझे लगता है कि विचार करने के लिए दो अलग-अलग मुद्दे हैं: प्रशिक्षण का समय, और भविष्यवाणी की सटीकता।

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

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

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