बड़े वर्गीकरण मूल्यों के लिए एक गर्म एन्कोडिंग विकल्प?


13

हाय में 1600 से अधिक श्रेणियों के बड़े श्रेणीगत मूल्यों के साथ डेटाफ्रेम है, कोई भी तरीका है जिससे मैं विकल्प पा सकता हूं ताकि मेरे पास 1600 से अधिक कॉलम न हों।

मुझे यह नीचे दिलचस्प लिंक http://amunategui.github.io/feature-hashing/#sourcecode पर मिला

लेकिन वे वर्ग / वस्तु में परिवर्तित कर रहे हैं जो मुझे नहीं चाहिए। मुझे अपना अंतिम आउटपुट डेटाफ्रेम के रूप में चाहिए ताकि मैं विभिन्न मशीन लर्निंग मॉडल के साथ परीक्षण कर सकूं? या ऐसा कोई तरीका है जिससे मैं लॉजिस्टिक रिग्रेशन या XGBoost के अलावा अन्य मशीन लर्निंग मॉडल को प्रशिक्षित करने के लिए जेनेटेड मैट्रिक्स का उपयोग कर सकता हूं?

वैसे भी क्या मैं लागू कर सकता हूं?


यह वास्तव में एक समस्या है? आप विरल मैट्रिक्स प्रतिनिधित्व का उपयोग कर रहे हैं, तो मान लें कि एक एन्कोडिंग वास्तविक समस्या नहीं होने जा रही है।
— लुई टी

@LouisT में मेरे पास 500m से अधिक रिकॉर्ड लाखों रिकॉर्ड हैं
— vinaykva

फिर भी अगर इसकी एक गर्म, यह स्पार्स मैट्रिक्स का उपयोग करने से कोई फर्क नहीं पड़ता है
— लुई टी

@LouisT कॉम्प्लेक्सिटी बढ़ेगी और ट्रेन का समय भी बढ़ेगा और मेरा डेटा भी बहुत कम हो जाएगा
— vinaykva

1
आपकी पोस्ट लगभग 1 साल पहले की है, और शायद अब और दिलचस्पी नहीं है, लेकिन अगर अभी भी दिलचस्पी है तो क्या आपने न्युरल नेट्स का उपयोग कर एंटिटी एंबेडिंग के बारे में सुना है? medium.com/@satnalikamayank12/…
— ट्विनपेंग्जिन

जवाबों:


10

एक विकल्प दुर्लभ मानों को 'अन्य' में मैप करना है। यह आमतौर पर प्राकृतिक भाषा प्रसंस्करण में किया जाता है - अंतर्ज्ञान कि बहुत दुर्लभ लेबल बहुत सांख्यिकीय शक्ति नहीं ले जाते हैं।

मैंने लोगों को निचले-आयामी वैक्टरों के लिए 1-हॉट श्रेणीबद्ध मूल्यों को भी देखा है, जहां प्रत्येक 1-हॉट वेक्टर को मल्टीवेरेट गौसियन से ड्रॉ के रूप में फिर से दर्शाया गया है। उदाहरण देखें पेपर डीप नॉलेज ट्रेसिंग, जो कहता है कि यह दृष्टिकोण संकुचित संवेदन के विचार से प्रेरित है:

बरनियुक, आर। कोम्प्रेसिव सेंसिंग। IEEE सिग्नल प्रोसेसिंग पत्रिका 24, 4 (2007)।

विशेष रूप से, वे लंबाई के प्रत्येक वेक्टर को लम्बाई के छोटे वेक्टर log2 (N) से मापते हैं। मैंने खुद ऐसा नहीं किया है लेकिन मुझे लगता है कि यह कोशिश करने लायक होगा।


मैं सोच रहा हूं कि इस तरह के एन्कोडिंग के साथ दूरी की गणना कैसे करें?
— eric2323223

2

आप डेटा पढ़ सकते हैं और पहले अपने श्रेणीबद्ध चर के सभी अद्वितीय मूल्यों की एक सूची प्राप्त कर सकते हैं। तब आप अद्वितीय मानों की अपनी सूची में एक हॉट एनकोडर ऑब्जेक्ट (जैसे sklearn.preprocessing.CategoricalEncoder) फिट कर सकते हैं।

यह विधि ट्रेन परीक्षण ढांचे में या जब आप अपने डेटा को चंक्स में पढ़ रहे हैं, तब भी मदद कर सकते हैं। मैंने एक अजगर मॉड्यूल बनाया है जो यह सब अपने आप करता है। आप इसे इस GitHub रिपॉजिटरी - dummyPy में पा सकते हैं

इस पर एक संक्षिप्त ट्यूटोरियल - कैसे पायथन में एक हॉट एनकोडर श्रेणीबद्ध चर कैसे?


1

इस लिंक का संदर्भ लें (यह भी कुछ विशिष्ट मान वाले श्रेणीगत विशेषता से संबंधित है):

https://datascience.stackexchange.com/a/64021/67149

एम्बेड करने के लिए, आप नीचे दिए गए लिंक का उल्लेख कर सकते हैं (मेरे द्वारा नहीं लिखा गया है, लेकिन एक बार पढ़ने के लिए योग्य है): https://medium.com/@satnalikamayank12/on-learning-embeddings-for-categorical-data-use-keras-165ff2773fc9


0

आप समान मूल्यों की बकेटिंग कर सकते हैं, ताकि मान (या कॉलम) जो निकटतम मान रखते हैं (या बहुत समान है) पैटर्न को एक मान (या स्तंभ) से बदला जा सकता है और इस प्रकार आपके 1600 मान 400 कहने के लिए नीचे आ सकते हैं (या यहां तक ​​कि) कम से)।

पूर्व। मूल्यों के लिए जैसे (बादल जैसे - निम्बस बादल, बूंदा बांदी, हल्की बारिश, बारिश, भारी बारिश को परिवर्तित किया जा सकता है (हल्की बारिश, बारिश, भारी बारिश)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.