डेटासेट: असंतुलित डेटासेट

उस कैटगरी वाले लेबल वाले डेटासेट पर विचार करें जिसका मान या तो पॉज़िटिव या नेगेटिव. किसी संतुलित डेटासेट में, पॉज़िटिव की संख्या और नेगेटिव लेबल करीब-करीब एक जैसे हैं. हालांकि, अगर एक लेबल का इस्तेमाल ज़्यादा होता है तो डेटासेट है, तो असंतुलित. असंतुलित डेटासेट में मुख्य लेबल को मैजोरिटी क्लास; कम इस्तेमाल होने वाला लेबल कहा जाता है अल्पसंख्यक वर्ग.

नीचे दी गई टेबल में, आम तौर पर इन नामों और रेंज के बारे में बताया गया है असंतुलन की अलग-अलग डिग्री:

अल्पसंख्यक वर्ग से जुड़े डेटा का प्रतिशत डिग्री ऑफ़ असंतुलन
डेटासेट का 20-40% हल्का
डेटासेट का 1-20% मध्यम
डेटासेट का <1% बहुत ज़्यादा

उदाहरण के लिए, वायरस का पता लगाने वाले ऐसे डेटासेट पर विचार करें जिसमें अल्पसंख्यक वर्ग डेटासेट का 0.5% और ज़्यादातर क्लास का 99.5% हिस्सा दिखता है. इस तरह के बहुत असंतुलित डेटासेट, दवाओं में आम तौर पर तब से हैं, जब ज़्यादातर सब्जेक्ट में वायरस नहीं होगा.

चित्र 5.  दो बार वाला बार ग्राफ़. एक बार में करीब 200 वर्ण दिखते हैं
            नेगेटिव क्लास; दूसरे बार में 1 पॉज़िटिव क्लास दिखती है.
पांचवीं इमेज. डेटासेट बहुत ही असंतुलित है.

 

असंतुलित डेटासेट में कभी-कभी पर्याप्त अल्पसंख्यक वर्ग नहीं होता उदाहरण के लिए, मॉडल को ट्रेनिंग दें. इसका मतलब है कि इतने कम पॉज़िटिव लेबल के साथ मॉडल, करीब-करीब हर और सकारात्मक लेबलों के बारे में ठीक से नहीं जान सकते. उदाहरण के लिए, अगर बैच का साइज़ 50 है, तो कई बैच में कोई पॉज़िटिव लेबल नहीं होगा.

अक्सर, खासकर हल्के असंतुलित और कुछ सामान्य रूप से असंतुलित डेटासेट की वजह से, असंतुलन की कोई समस्या नहीं है. इसलिए, आपको पहले ट्रेनिंग दी गई है. अगर मॉडल ठीक से काम करता है, तो आपका काम हो गया. अगर ऐसा नहीं है, तो कम से कम यह मॉडल बेहतर आने वाले समय में किए जाने वाले प्रयोगों के लिए, बेसलाइन चुनें. इसके बाद, समस्याओं से उबरने के लिए ये तरीके आज़माए जा सकते हैं असंतुलित डेटासेट की वजह से होता है.

डाउनसैंपलिंग और अपवेटिंग

असंतुलित डेटासेट को हैंडल करने का एक तरीका यह है कि बहुमत क्लास में शामिल होने की ज़रूरत नहीं है. इन दो नए शब्दों की परिभाषाएं यहां दी गई हैं:

  • डाउनसैंपलिंग (इस कॉन्टेक्स्ट में) इसका मतलब है, ज़्यादातर क्लास के ऐसे लोगों को ट्रेनिंग देना जो अनुपात के हिसाब से कम हैं उदाहरण.
  • बढ़ोतरी का मतलब है, उदाहरण के तौर पर, डाउनसैंपल की गई क्लास की वैल्यू, उस फ़ैक्टर के बराबर होती है जिससे आपने डाउनसैंपल किया गया.

पहला चरण: ज़्यादातर क्लास का डाउनसैंपल किया जा सकता है. इस पर ध्यान दें ऐसा वायरस डेटासेट जिसमें हर 200 नेगेटिव के लिए 1 पॉज़िटिव लेबल का अनुपात है लेबल. डाउनसैंपलिंग 20 बैलेंस को 1 पॉज़िटिव से 10 नेगेटिव (10%) तक बेहतर बनाता है. हालांकि, जिसके नतीजे में मिलने वाला ट्रेनिंग सेट अब भी बहुत कम असंतुलित है, पॉज़िटिव के लिए नेगेटिव कॉन्टेंट, ओरिजनल बहुत ज़्यादा असंतुलन वाले कॉन्टेंट से बेहतर होता है अनुपात (0.5%).

छठी इमेज. दो बार वाला बार ग्राफ़. एक बार 20 नेगेटिव दिखाता है
            क्लास; दूसरे बार में 1 पॉज़िटिव क्लास दिखती है.
छठी इमेज. डाउनसैंपलिंग.

 

चरण 2: डाउनसैंपल की गई क्लास का वेट बढ़ाएं: उदाहरण जोड़ें डाउनसैंपल की गई क्लास का वेट तय करती है. 20 के गुणक से डाउनसैंपलिंग के बाद, उदाहरण के तौर पर वज़न 20 होना चाहिए. (हां, आपको यह अजीब लग सकता है, लेकिन हम बाद में व्याख्या करें.)

सातवीं इमेज. डाउनसैंपलिंग और अपवेटिंग का दो चरणों वाला डायग्राम.
            पहला चरण: डाउनसैंपलिंग की मदद से, ज़्यादातर क्वेरी से किसी भी क्रम में उदाहरण लिए जा सकते हैं
            क्लास. दूसरा चरण: औसत वैल्यू तय करके, डाउनसैंपल किए गए डेटा में वज़न जोड़ा जाता है
            उदाहरण.
सातवीं इमेज. वैल्यू बढ़ाना.

 

weight शब्द, मॉडल पैरामीटर (जैसे, w1 या w2). यहां वज़न से यह पता चलता है उदाहरण का वेट, जिससे किसी उदाहरण की अहमियत बढ़ जाती है ट्रेनिंग के दौरान. उदाहरण के तौर पर वज़न 10 होने का मतलब है कि मॉडल, उदाहरण को 10 गुना महत्वपूर्ण (संकलन हानि के समय), जो कि इसके उदाहरण की तुलना में वज़न 1.

वज़न उस फ़ैक्टर के बराबर होना चाहिए जिसका इस्तेमाल आपने डाउनसैंपल करने के लिए किया है:

\[\text{ \{example weight\} = \{original example weight\} × \{downsampling factor\} }\]

डाउनसैंपलिंग के बाद, सैंपल वेट जोड़ना थोड़ा अजीब लग सकता है. आखिरकार, आप अल्पसंख्यक वर्ग के आधार पर मॉडल को बेहतर बनाने की कोशिश कर रहे हैं, तो बहुमत वर्ग? बल्कि, ज़्यादातर क्लास को ज़्यादा अहमियत देने से पूर्वाग्रह. इसका मतलब है कि डाउनसैंपलिंग के बाद तेज़ वज़न, औसत वैल्यू के बीच के डेल्टा को कम कर देता है और आपके डेटासेट के लेबल के औसत के हिसाब से.

रीबैलेंस रेशियो

अपने डेटासेट को फिर से संतुलित करने के लिए, आपको कितना डाउनसैंपल और ज़्यादा वज़न चाहिए? जवाब तय करने के लिए, आपको रीबैलेंसिंग रेशियो के साथ एक्सपेरिमेंट करना चाहिए, जैसे कि आप अन्य लोगों के साथ हाइपर पैरामीटर. हालांकि, इन बातों के आधार पर इसका जवाब दिया जाता है:

  • बैच का साइज़
  • असंतुलन अनुपात
  • ट्रेनिंग सेट में उदाहरणों की संख्या

आम तौर पर, हर बैच में माइनरिटी क्लास के एक से ज़्यादा उदाहरण होने चाहिए. जिन बैच में अल्पसंख्यक क्लास नहीं होंगी, उन्हें बहुत खराब तरीके से ट्रेनिंग दी जाएगी. बैच का साइज़, असंतुलन अनुपात से कई गुना ज़्यादा होना चाहिए. उदाहरण के लिए, अगर असंतुलन अनुपात 100:1 है, तो बैच का साइज़ कम से कम 500 होनी चाहिए.

व्यायाम: अपनी समझ की जांच करें

नीचे दी गई स्थिति देखें:

  • बैच का साइज़ 128 है.
  • असंतुलन अनुपात 100:1 है.
  • ट्रेनिंग सेट में एक अरब उदाहरण शामिल हैं.
इनमें से कौनसी बातें सही हैं?
बैच का साइज़ बढ़ाकर 1,024 करने से, बेहतर नतीजे मिलेंगे मॉडल.
1,024 के बैच के साथ, हर बैच का औसत करीब 10 होगा अल्पसंख्यक वर्ग के उदाहरण, जो ट्रेनिंग के लिए काफ़ी होने चाहिए. डाउनसैंपलिंग के बिना, ट्रेनिंग सेट में एक ही मॉडल होता है अरब उदाहरण.
बैच के साइज़ को बनाए रखते हुए, सैंपल को 20:1 तक घटाना और बढ़ाना 128 पर सेट करने से, नतीजे के मॉडल में सुधार होगा.
हर बैच में, अल्पसंख्यक वर्ग के करीब नौ उदाहरण दिए जाएंगे. इनका मतलब है कि ट्रेनिंग के लिए काफ़ी हो. डाउनसैंपलिंग की मदद से, ट्रेनिंग सेट में कुल उदाहरण, एक अरब से लेकर चार करोड़.
मौजूदा स्थिति ठीक है.
ज़्यादातर बैच में अल्पसंख्यक क्लास नहीं होती हैं, ताकि काम की मॉडल.