यह डेटा प्री-प्रोसेसिंग का एक चरण है जिसे डेटा के इंडिपेंडेंट वेरिएबल्स या फीचर्स पर लागू किया जाता है। यह मूल रूप से डेटा को एक विशेष रेंज के भीतर नॉर्मलाइज़ करने में मदद करता है।
स्केलिंग क्यों?
अधिकांश समय, आपका डेटासेट ऐसे फीचर्स को समाहित करेगा जो परिमाण, इकाइयों और रेंज में अत्यधिक भिन्न होते हैं। लेकिन चूंकि, अधिकांश मशीन लर्निंग एल्गोरिदम अपनी गणनाओं में दो डेटा पॉइंट्स के बीच यूक्लिडियन दूरी का उपयोग करते हैं, यह एक समस्या है।
अकेले छोड़ दिए जाने पर, ये एल्गोरिदम केवल फीचर्स के परिमाण को लेते हैं इकाइयों की उपेक्षा करते हुए। परिणाम विभिन्न इकाइयों के बीच बहुत भिन्न होंगे, जैसे 5kg और 5000 ग्राम।
उच्च परिमाण वाले फीचर्स दूरी गणनाओं में निम्न परिमाण वाले फीचर्स की तुलना में बहुत अधिक वजन डालेंगे।
इस प्रभाव को दबाने के लिए, हमें सभी फीचर्स को परिमाण के समान स्तर पर लाने की आवश्यकता है। इसे स्केलिंग द्वारा प्राप्त किया जा सकता है।
फीचर्स को कैसे स्केल करें?
- स्टैंडर्डाइज़ेशन (मानकीकरण) - स्टैंडर्डाइज़ेशन मानों को उनके Z-स्कोर से बदल देता है।
- $$x' = \frac{x - \bar{x}}{\sigma}$$ यह फीचर्स को मीन μ = 0 और स्टैंडर्ड डेविएशन σ = 1 के साथ पुनर्वितरित करता है। sklearn.preprocessing.scale Python में स्टैंडर्डाइज़ेशन लागू करने में मदद करता है।
- मीन नॉर्मलाइज़ेशन -
- $$x' = \frac{x - \text{mean}(x)}{\max(x) - \min(x)}$$ यह वितरण -1 और 1 के बीच वैल्यूज़ के साथ होगा जहां μ=0। स्टैंडर्डाइज़ेशन और मीन नॉर्मलाइज़ेशन उन एल्गोरिदम के लिए उपयोग किए जा सकते हैं जो जीरो-सेंट्रिक डेटा मानते हैं जैसे प्रिंसिपल कंपोनेंट एनालिसिस (PCA)।
- मिन-मैक्स स्केलिंग
- $$x' = \frac{x - \min(x)}{\max(x) - \min(x)}$$ यह स्केलिंग वैल्यू को 0 और 1 के बीच लाता है।
- यूनिट वेक्टर -
- $$x' = \frac{x}{\lVert x \rVert}$$ स्केलिंग पूरे फीचर वेक्टर को यूनिट लंबाई का मानकर की जाती है। मिन-मैक्स स्केलिंग और यूनिट वेक्टर तकनीकें [0,1] रेंज की वैल्यूज़ उत्पन्न करती हैं। हार्ड बाउंड्रीज़ वाले फीचर्स के साथ काम करते समय यह काफी उपयोगी होता है। उदाहरण के लिए, इमेज डेटा के साथ काम करते समय, कलर्स केवल 0 से 255 तक रेंज कर सकते हैं।
कब स्केल करें?
यहां पालन करने का नियम है: कोई भी एल्गोरिदम जो दूरी की गणना करता है या नॉर्मलिटी मानता है, अपने फीचर्स को स्केल करें।
कुछ उदाहरण जहां फीचर स्केलिंग मायने रखती है:
यूक्लिडियन डिस्टेंस माप के साथ k-नियरेस्ट नेबर्स परिमाण के प्रति संवेदनशील है और इसलिए सभी फीचर्स को समान रूप से वजन देने के लिए स्केल किया जाना चाहिए।
प्रिंसिपल कंपोनेंट एनालिसिस (PCA) करते समय स्केलिंग महत्वपूर्ण है। PCA अधिकतम वेरिएंस वाले फीचर्स को प्राप्त करने का प्रयास करता है और वेरिएंस उच्च परिमाण वाले फीचर्स के लिए अधिक होता है। यह PCA को उच्च परिमाण वाले फीचर्स की ओर झुका देता है।
ग्रेडिएंट डिसेंट को स्केलिंग द्वारा तेज किया जा सकता है। ऐसा इसलिए है क्योंकि θ छोटी रेंज पर तेजी से और बड़ी रेंज पर धीरे-धीरे उतरेगा, और इसलिए जब वेरिएबल्स बहुत असमान होते हैं तो ऑप्टिमम तक अक्षम रूप से ऑसिलेट करेगा।
ट्री-बेस्ड मॉडल्स डिस्टेंस-बेस्ड मॉडल्स नहीं हैं और फीचर्स की विभिन्न रेंज को संभाल सकते हैं। इसलिए, ट्री मॉडलिंग करते समय स्केलिंग आवश्यक नहीं है।
लीनियर डिस्क्रिमिनेंट एनालिसिस (LDA), नाइव बेय्स जैसे एल्गोरिदम डिज़ाइन द्वारा इसे संभालने के लिए सुसज्जित हैं और फीचर्स को तदनुसार वजन देते हैं। इन एल्गोरिदम में फीचर स्केलिंग करने का अधिक प्रभाव नहीं हो सकता है।