बिनिंग (इसे बकेटिंग भी कहा जाता है) एक
फ़ीचर इंजीनियरिंग
यह तकनीक, संख्या वाली अलग-अलग सब-रेंज को बिन में बांटती है या
बकेट.
कई मामलों में, बिनिंग संख्या वाले डेटा को कैटगरी वाले डेटा में बदल दिया जाता है.
उदाहरण के लिए, किसी सुविधा के बारे में सोचें
नाम X
है जिसका निम्नतम मान 15 है और
सबसे ज़्यादा वैल्यू 425 है. बिनिंग का इस्तेमाल करके, X
को
पांच बिन होने चाहिए:
- बिन 1: 15 से 34
- बिन 2: 35 से 117
- बिन 3: 118 से 279
- बिन 4: 280 से 392
- बिन 5: 393 से 425
बिन 1, 15 से 34 की रेंज में है, इसलिए X
की हर वैल्यू 15 से 34 के बीच है
बिन 1 में आता है. इन बिन पर ट्रेनिंग वाला मॉडल अलग तरह से प्रतिक्रिया नहीं करेगा
17 और 29 के X
वैल्यू हो गई हैं, क्योंकि दोनों वैल्यू बिन 1 में हैं.
फ़ीचर वेक्टर दिखाता है ये पांच बिन हैं:
बिन नंबर | सीमा | फ़ीचर वेक्टर |
---|---|---|
1 | 15-34 | [1.0, 0.0, 0.0, 0.0, 0.0] के बारे में जानकारी |
2 | 35-117 | [0.0, 1.0, 0.0, 0.0, 0.0] के बराबर |
3 | 118-279 | [0.0, 0.0, 1.0, 0.0, 0.0] के बराबर |
4 | 280-392 | [0.0, 0.0, 0.0, 1.0, 0.0] के बराबर |
5 | 393-425 | [0.0, 0.0, 0.0, 0.0, 1.0] के बराबर |
डेटासेट में X
एक कॉलम है, लेकिन बिन करने से मॉडल
का इस्तेमाल, X
को पांच अलग-अलग सुविधाओं के तौर पर करने के लिए किया जाता है. इसलिए, मॉडल यह सीखता है कि
हर बिन के लिए अलग-अलग वेट सेट करें.
बिनिंग की सुविधा, स्केलिंग का एक अच्छा विकल्प है या क्लिप, जब इनमें से कोई एक ये शर्तें पूरी होती हैं:
- सुविधा और लेबल कमज़ोर है या मौजूद नहीं है.
- जब सुविधा की वैल्यू क्लस्टर में होती हैं.
बिनिंग को यह देखकर ऐसा लग सकता है कि क्रिएटर को कुछ भी करने की ज़रूरत नहीं है. ऐसा इसलिए, क्योंकि पिछला उदाहरण, वैल्यू 37 और 115 को एक जैसा मानता है. हालांकि, जब कोई सुविधा लीनियर के मुकाबले ज़्यादा उलझी दिखती है. डेटा का प्रतिनिधित्व करते हैं.
बिन का उदाहरण: खरीदारों की संख्या बनाम तापमान
मान लें कि आप एक मॉडल बना रहे हैं, जो बाहर के तापमान के हिसाब से खरीदारों को दिखाया जा सकता है. यहां तापमान बनाम खरीदारों की संख्या:
![नौवीं इमेज. 45 पॉइंट का स्कैटर प्लॉट. कुल 45 पॉइंट
तीन ग्रुप में बांटा जा सकता है.](https://developers.google.cn/static/machine-learning/crash-course/images/binning_temperature_vs_shoppers.png?authuser=8&hl=hi)
इसमें कोई हैरानी की बात नहीं है कि इस प्लॉट से पता चलता है कि जब खरीदारों की संख्या सबसे ज़्यादा थी, तापमान सबसे आरामदेह था.
इस सुविधा को रॉ वैल्यू के तौर पर दिखाया जा सकता है: फ़ीचर वेक्टर में डेटासेट का साइज़ 35.0 होगा. क्या यह सबसे सही आइडिया है?
ट्रेनिंग के दौरान, लीनियर रिग्रेशन मॉडल, हर एक मॉडल के लिए एक ही वज़न सीखता है सुविधा. इसलिए, अगर तापमान को एक क्षेत्र में दिखाया जाता है, तो 35.0 तापमान का असर, 35.0 गुना असर) के अनुमान के आधार पर, 7.0 तापमान का अनुमान लगाया जाता है. हालांकि, प्लॉट ये काम नहीं करती लेबल और सुविधा का मान.
ग्राफ़ इन सबरेंज में तीन क्लस्टर का सुझाव देता है:
- बिन 1 का तापमान 4 से 11 के बीच होता है.
- बिन 2 का तापमान 12 से 26 के बीच है.
- बिन 3 का तापमान 27 से 36 के बीच है.
![इमेज 10. पिछले 45 पॉइंट वाला स्कैटर प्लॉट
इमेज दिखाई गई है, लेकिन बिन को साफ़ तौर पर दिखाने के लिए वर्टिकल लाइनों का इस्तेमाल किया गया है.](https://developers.google.cn/static/machine-learning/crash-course/images/binning_temperature_vs_shoppers_divided_into_3_bins.png?authuser=8&hl=hi)
मॉडल हर बिन का अलग-अलग वज़न जान लेता है.
तीन से ज़्यादा बिन बनाए जा सकते हैं, लेकिन प्रत्येक तापमान रीडिंग के लिए, अक्सर निम्न कारणों से यह एक अच्छा विचार नहीं है:
- मॉडल, बिन और लेबल के बीच के संबंध को सिर्फ़ तभी जान सकता है, जब उस बिन में काफ़ी उदाहरण हैं. दिए गए उदाहरण में, तीनों बिन में से हर एक कम से कम 10 उदाहरण मौजूद हैं, जो ट्रेनिंग के लिए काफ़ी मौजूद हो सकते हैं. 33 अलग-अलग बिन के साथ, किसी भी बिन में, मॉडल को ट्रेनिंग देने के लिए पर्याप्त उदाहरण नहीं होंगे.
- हर तापमान के लिए अलग बिन तापमान की 33 अलग-अलग सुविधाएं. हालांकि, आम तौर पर आपको कम से कम किसी मॉडल में सुविधाओं की संख्या.
व्यायाम: अपनी समझ की जांच करें
नीचे दिए गए प्लॉट में, घर के हर 0.2 डिग्री के लिए घर की मीडियन कीमत दिखाई गई है पौराणिक देश फ़्रीडोनिया का अक्षांश:
![इमेज 11. हर अक्षांश के लिए घर की वैल्यू का प्लॉट. सबसे नीचे का घर
वैल्यू करीब 327 है और सबसे ज़्यादा वैल्यू 712 है. अक्षांश 41.0 में होते हैं
44.8 तक है, जिसमें हर एक बिंदु के लिए मीडियन घर की वैल्यू को दिखाने वाला बिंदु है
अक्षांश का 0.2 डिग्री. यह पैटर्न काफ़ी अनियमित होता है, लेकिन
दो अलग-अलग क्लस्टर (अक्षांश 41.0 और 41.8 के बीच एक क्लस्टर,
और दूसरा क्लस्टर, अक्षांश 42.6 और 43.4 के बीच होता है).](https://developers.google.cn/static/machine-learning/crash-course/images/MedianHouseValueByLatitude.png?authuser=8&hl=hi)
ग्राफ़िक, होम वैल्यू और अक्षांश के बीच एक नॉनलीनियर पैटर्न दिखाता है, इसलिए, अक्षांश को इसके फ़्लोटिंग-पॉइंट वैल्यू के तौर पर दिखाने से, मॉडल अच्छे अनुमान लगाता है. शायद बकेटिंग अक्षांश बेहतर होंगे सुझाव?
- 41.0 से 41.8
- 42.0 से 42.6
- 42.8 से 43.4
- 43.6 से 44.8
क्वांटाइल बकेटिंग
क्वांटाइल बकेटिंग बकेटिंग की सीमाएं तय करते हैं, ताकि उदाहरण के तौर पर दिया गया है. क्वांटाइल बकेटिंग ज़्यादातर आउटलायर को छिपा देता है.
क्वानटाइल बकेटिंग से जो समस्या हल होती है उसका उदाहरण देने के लिए, नीचे दी गई इमेज में बराबर दूरी वाली बकेट दिखाई गई हैं, जहां हर में से 10 बकेट 10,000 डॉलर का होता है. ध्यान दें कि 0 से 10,000 तक की बकेट में दर्जनों उदाहरण हैं लेकिन 50,000 से 60,000 तक की बकेट में सिर्फ़ 5 उदाहरण होते हैं. इस वजह से, इस मॉडल में 0 से 10,000 के बीच ट्रेनिंग के लिए काफ़ी उदाहरण हैं बकेट लेकिन 50,000 से 60,000 बकेट के लिए ट्रेनिंग के लिए काफ़ी उदाहरण नहीं हैं.
![इमेज 13. कार की कीमत और यहां बेची गई कारों की संख्या का प्लॉट
कम कर सकते हैं. ज़्यादा से ज़्यादा 6,000 कारों की कीमत बिकी है.
6,000 की कीमत से ज़्यादा, आम तौर पर बेची गई कारों की संख्या
घटता है, यानी 40,000 से लेकर
60,000 रुपये तक हो सकती है. इस प्लॉट को बराबर साइज़ की 6 बकेट में बांटा गया है. हर बकेट की वैल्यू
की सीमा 10,000 तक होती है. इसलिए, पहली बकेट में बेची गई सभी कारें होती हैं
जिनकी कीमत 0 और 10,000 के बीच सेट की गई है. दूसरा
बकेट में 10,001 की कीमत और
20,000 वगैरह. पहले बकेट में कई उदाहरण होते हैं; हर
बाद के बकेट में कम उदाहरण हैं.](https://developers.google.cn/static/machine-learning/crash-course/images/NeedsQuantileBucketing.png?authuser=8&hl=hi)
इसके उलट, नीचे दिए गए डायग्राम में कार की कीमतों को भाग देने के लिए क्वानटाइल बकेटिंग का इस्तेमाल किया गया है हर बकेट में करीब समान संख्या के उदाहरण वाले बिन में. ध्यान दें कि कुछ बिन में कम कीमत है, जबकि कुछ बिन में कम कीमत है जिनमें अलग-अलग तरह की कीमतें शामिल होती हैं.
![इमेज 14. क्वानटाइल बकेट को छोड़कर, पिछले चित्र के जैसा ही.
इसका मतलब है कि अब बकेट के अलग-अलग साइज़ हैं. पहला बकेट
इसमें 0 से 4,000 तक की कारें बेची जाती हैं, दूसरी बकेट में
कारें बेची गईं. 4,001 से 6,000 तक. छठे बकेट में
कारें बेची जाती हैं 25,001 से 60,000 तक. हर बकेट में कारों की संख्या
अब कोई ऐसा ही है.](https://developers.google.cn/static/machine-learning/crash-course/images/QuantileBucketing.png?authuser=8&hl=hi)