सामान्य बनाना

सामान्य बनाने का लक्ष्य, सुविधाओं को एक जैसे स्केल पर बदलना है. इससे मॉडल की परफ़ॉर्मेंस और ट्रेनिंग के स्थिरता में सुधार होता है.

एक नज़र में काम पूरे करने की तकनीकें

नॉर्मलाइज़ करने की चार सामान्य तकनीकें फ़ायदेमंद हो सकती हैं:

  • किसी श्रेणी में स्केल करना
  • क्लिपिंग
  • लॉग स्केलिंग
  • z-स्कोर

नीचे दिए गए चार्ट में, बाईं ओर दी गई रॉ सुविधा (कीमत) के डिस्ट्रिब्यूशन के लिए, सामान्य बनाने की हर तकनीक का असर दिखाया गया है. ये चार्ट, 1985 के वॉर्ड की ऑटोमोटिव ईयरबुक के डेटा सेट पर आधारित हैं. यह ऑटोमोबाइल के डेटा सेट के तहत यूसीआई मशीन लर्निंग रिपॉज़िटरी का हिस्सा है.

पांच ग्राफ़: 1. एक रॉ डिस्ट्रिब्यूशन. 2. रॉ डिस्ट्रिब्यूशन को किसी ऐसी रेंज तक बढ़ाया जाता है जिसका आकार रॉ डिस्ट्रिब्यूशन जैसा होता है. 3. कच्चा डिस्ट्रिब्यूशन, जिसका सबसे ज़्यादा मान खत्म होता है. 4. लॉगारिद्म के हिसाब से बढ़ाया गया रॉ डिस्ट्रिब्यूशन, जो डेटा को डिस्ट्रिब्यूशन के बीच में रखता है. 5. डिस्ट्रिब्यूशन का z-स्कोर, जिसमें
रॉ डिस्ट्रिब्यूशन से मिलता-जुलता आकार होता है.

पहला डायग्राम. नॉर्मलाइज़ेशन की तकनीकों का सारांश.

किसी रेंज को स्केल करना

एमएलसीसी से याद रखें स्केलिंग का मतलब है कि फ़्लोटिंग-पॉइंट फ़ीचर वैल्यू को अपनी सामान्य रेंज (उदाहरण के लिए, 100 से 900) में से एक स्टैंडर्ड रेंज में बदलना. आम तौर पर, 0 और 1 (या कभी-कभी -1 से +1). किसी रेंज को मापने के लिए, नीचे दिए गए फ़ॉर्मूले का इस्तेमाल करें:

\[ x' = (x - x_{min}) / (x_{max} - x_{min}) \]

जब इन दोनों शर्तों को पूरा किया जाता है, तब रेंज को स्केल करना अच्छा विकल्प है:

  • आपको अपने डेटा की अनुमानित ऊपरी और निचली सीमाएं पता हैं, जो कुछ या कोई बाहरी वजह नहीं हैं.
  • आपका डेटा उस रेंज में तकरीबन बराबर बांटा गया है.

एक अच्छा उदाहरण उम्र है. ज़्यादातर उम्र की वैल्यू 0 से 90 के बीच होती है और इस रेंज के हर हिस्से में काफ़ी लोग होते हैं.

इसके उलट, आपको आय पर स्केलिंग का इस्तेमाल नहीं करना चाहिए, क्योंकि बहुत कम लोगों की आय बहुत ज़्यादा होती है. आय के लिए लीनियर स्केल की ऊपरी सीमा बहुत ज़्यादा होगी. ज़्यादातर लोगों को स्केल के छोटे से हिस्से में दबाया जाएगा.

फ़ीचर क्लिपिंग

अगर आपके डेटा सेट में बहुत ज़्यादा बाहरी चीज़ें हैं, तो आप फ़ीचर क्लिपिंग का इस्तेमाल कर सकते हैं. इससे, सुविधा के सभी मान एक तय वैल्यू से ज़्यादा (या उससे कम) हो सकते हैं. उदाहरण के लिए, आप 40 से ऊपर के तापमान की सभी वैल्यू को ठीक 40 पर क्लिप कर सकते हैं.

आप सामान्य क्लिप से पहले या बाद में, सुविधा के लिए क्लिप बना सकते हैं.

फ़ॉर्मूला: बाहरी वजहों से बचने के लिए, कम से कम/ज़्यादा से ज़्यादा मान सेट करें.

नेटिव डिस्ट्रिब्यूशन और सीमित डिस्ट्रिब्यूशन की तुलना. नेटिव डिस्ट्रिब्यूशन में, करीब-करीब सभी वैल्यू 1 से 4 की रेंज में होती हैं, लेकिन
वैल्यू का कुछ प्रतिशत, 5 से 55 के बीच होता है. कैप्ड डिस्ट्रिब्यूशन में,
मूल रूप से चार से ऊपर की सभी वैल्यू में अब
वैल्यू 4 है.

दूसरा डायग्राम. रॉ डिस्ट्रिब्यूशन और इसके क्लिप किए गए वर्शन की तुलना करना.

क्लिप बनाने की एक और आसान रणनीति है, z-स्कोर और +-NSSN से क्लिप करना (उदाहरण के लिए, +-3{/6} तक सीमित करना). ध्यान रखें कि एसएसएएन मानक है.

लॉग स्केलिंग

लॉग स्केलिंग, आपके मानों के लॉग की गिनती करता है. इसके ज़रिए वह चौड़ी रेंज को कंप्रेस कर देता है.

\[ x' = log(x) \]

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

रॉ डेटा और रॉ डेटा के लॉग की तुलना करने वाले दो ग्राफ़. रॉ डेटा का ग्राफ़, सबसे ऊपर दी गई बहुत सारी रेटिंग को दिखाता है. इसके बाद, डेटा का साइज़ लंबा होता है. लॉग ग्राफ़ और भी
ज़्यादा डिस्ट्रिब्यूशन होता है.

तीसरा डायग्राम. रॉ डिस्ट्रिब्यूशन की तुलना लॉग से की जाती है.

ज़ेड-स्कोर

Z-स्कोर, स्केलिंग का एक वैरिएशन है. यह मीन से दूर, स्टैंडर्ड डिवीज़न की संख्या को दिखाता है. यह पक्का करने के लिए कि आपकी सुविधा के डिस्ट्रिब्यूशन की वैल्यू = 0 और std = 1 है, आप z-स्कोर इस्तेमाल करें. यह तब मददगार होता है, जब वीडियो पर कुछ बाहरी चीज़ें हों, लेकिन इतने ज़्यादा खास न हों कि आपको क्लिप करने की ज़रूरत पड़ जाए.

किसी पॉइंट के z-स्कोर का हिसाब लगाने का फ़ॉर्मूला x है:

\[ x' = (x - μ) / σ \]

z-स्कोर किए गए सामान्य डेटा बनाम डेटा की तुलना करने वाले दो ग्राफ़. रॉ
डेटा, रॉ डेटा के तौर पर 5,000 से लेकर 45,000 तक होता है.
सामान्य डेटा रेंज, -1 से +4 तक होता है.

चौथी इमेज. रॉ डिस्ट्रिब्यूशन की तुलना, z-स्कोर डिस्ट्रिब्यूशन से की जा रही है.

ध्यान दें कि z-स्कोर, ऐसे रॉ मान को छोड़ देता है जिनकी रेंज ~40,000 की रेंज होती है. यह रेंज करीब -1 से +4 के बीच होती है.

मान लें कि आप पक्का नहीं हैं कि टेस्ट में बाहरी चीज़ें वाकई शामिल हैं या नहीं. ऐसी स्थिति में, z-स्कोर से शुरू करें जब तक कि आपके पास ऐसी सुविधा की वैल्यू न हों जो आप मॉडल को सीखना नहीं चाहते. उदाहरण के लिए, वैल्यू, मेज़रमेंट में गड़बड़ी या गड़बड़ी की वजह से होती हैं.

खास जानकारी

सामान्य बनाने की तकनीकफ़ॉर्मूलाकब इस्तेमाल करें
लीनियर स्केलिंग $$ x' = (x - x_{min}) / (x_{max} - x_{min}) $$ जब यह सुविधा तय सीमा में ज़्यादा या कम समान रूप से बांटी जाती है.
क्लिपिंग अगर x > अधिकतम है, तो x' = अधिकतम अगर x < कम है, तो x' = मिनट जब सुविधा में कुछ बहुत ही बाहरी चीज़ें शामिल हों.
लॉग स्केलिंग x' = लॉग(x) जब यह सुविधा, पावर कानून के मुताबिक हो.
Z-स्कोर x' = (x - μ) / SS जब सुविधा के डिस्ट्रिब्यूशन में बहुत ज़्यादा बाहरी चीज़ें शामिल न हों.