Strings और factors
जैसा कि आप जानते हैं, मॉडलिंग के लिए Spark को संख्यात्मक डेटा चाहिए होता है। अभी तक यह समस्या नहीं बनी थी; यहाँ तक कि बूलियन कॉलम्स को भी बिना किसी दिक्कत के इंटीजर में बदला जा सकता है। लेकिन अब आप अपने मॉडल में एयरलाइन और प्लेन के गंतव्य को भी फीचर्स के रूप में इस्तेमाल करेंगे। ये स्ट्रिंग्स के रूप में कोडेड हैं और इन्हें सीधे संख्यात्मक डेटा टाइप में बदलने का कोई स्पष्ट तरीका नहीं दिखता।
सौभाग्य से, PySpark में pyspark.ml.features सबमॉड्यूल के भीतर ऐसे फंक्शन मौजूद हैं जो इसे संभालते हैं। आप 'वन-हॉट वेक्टर' बना सकते हैं जो प्रत्येक फ़्लाइट के कैरियर और डेस्टिनेशन को निरूपित करेंगे। वन-हॉट वेक्टर किसी श्रेणीबद्ध (categorical) फीचर को निरूपित करने का एक तरीका है जहाँ हर ऑब्ज़र्वेशन के लिए ऐसा वेक्टर होता है जिसके सभी एलिमेंट्स शून्य होते हैं, अधिकतम एक एलिमेंट को छोड़कर, जिसकी वैल्यू एक (1) होती है।
वेक्टर का हर एलिमेंट फीचर के एक लेवल के अनुरूप होता है, इसलिए यह देखकर सही लेवल पता चल सकता है कि वेक्टर का कौन सा एलिमेंट एक (1) के बराबर है।
अपने श्रेणीबद्ध फीचर को एन्कोड करने का पहला कदम StringIndexer बनाना है। इस क्लास के मेंबर्स Estimator होते हैं जो स्ट्रिंग्स वाले एक कॉलम के साथ DataFrame लेते हैं और हर यूनिक स्ट्रिंग को एक नंबर पर मैप करते हैं। फिर, वह Estimator एक Transformer लौटाता है जो एक DataFrame लेता है, उस पर यह मैपिंग मेटाडेटा के रूप में जोड़ता है, और एक नया DataFrame लौटाता है जिसमें स्ट्रिंग कॉलम के अनुरूप एक संख्यात्मक कॉलम होता है।
दूसरा कदम इस संख्यात्मक कॉलम को OneHotEncoder का उपयोग करके वन-हॉट वेक्टर के रूप में एन्कोड करना है। यह StringIndexer की ही तरह काम करता है: पहले एक Estimator बनता है और फिर एक Transformer। अंतिम परिणाम ऐसा कॉलम होता है जो आपके श्रेणीबद्ध फीचर को एक वेक्टर के रूप में एन्कोड करता है, जो मशीन लर्निंग रूटीन के लिए उपयुक्त है!
यह थोड़ा जटिल लग सकता है, पर चिंता न करें! आपको बस इतना याद रखना है कि एक StringIndexer और एक OneHotEncoder बनाना है, और बाकी काम Pipeline संभाल लेगा।
आपको किसी श्रेणीबद्ध फीचर को वन-हॉट वेक्टर के रूप में एन्कोड करने की आवश्यकता क्यों होती है?
यह अभ्यास पाठ्यक्रम का हिस्सा है
PySpark की नींव
इंटरैक्टिव व्यावहारिक अभ्यास
हमारे इंटरैक्टिव अभ्यासों में से किसी एक के साथ सिद्धांत को व्यवहार में बदलें
अभ्यास शुरू करें