तंत्रिका जाल: एक गर्म चर लगातार भारी?


13

मेरे पास कच्चा डेटा है जिसमें लगभग 20 कॉलम (20 सुविधाएँ) हैं। उनमें से दस निरंतर डेटा हैं और उनमें से 10 श्रेणीबद्ध हैं। श्रेणीबद्ध डेटा में से कुछ में 50 अलग-अलग मूल्य (यूएस स्टेट्स) हो सकते हैं। डेटा को पूर्व-संसाधित करने के बाद 10 निरंतर कॉलम 10 तैयार किए गए कॉलम बन जाते हैं और 10 श्रेणीबद्ध मान 200 एक-हॉट एन्कोडेड चर की तरह बन जाते हैं। मुझे चिंता है कि अगर मैं इन सभी 200 + 10 = 210 सुविधाओं को तंत्रिका जाल में डाल देता हूं तो 200-वन-हॉट फीचर्स (10 श्रेणीबद्ध कॉलम) पूरी तरह से 10-निरंतर सुविधाओं पर हावी हो जाएंगे।

शायद एक विधि एक साथ या कुछ "कॉलम" समूह के लिए होगी। क्या यह एक वैध चिंता है और क्या इस मुद्दे से निपटने का कोई मानक तरीका है?

(मैं केरस का उपयोग कर रहा हूं, हालांकि मुझे नहीं लगता कि यह ज्यादा मायने रखता है।)


क्या आपने दो (या अधिक) अनुक्रमिक मॉडल का उपयोग करने और फिर उन्हें विलय करने पर विचार किया है? प्रत्येक मॉडल में इनपुट होते हैं जो डेटा को बेहतर बनाता है जैसे ही यह आता है (इसे सॉसेज की तरह पिघलाने के विपरीत।) लक्ष्य समान हैं, लेकिन आप प्रशिक्षण डेटा के दो सेट बनाते हैं, प्रत्येक को फिटिंग के दौरान स्वतंत्र रूप से खिलाया जाता है। मर्ज के बाद सीधे आपकी अंतिम आउटपुट परत आती है, ताकि अंतिम परत निर्णय लेती है कि कौन सा मॉडल विशेष नमूनों के लिए सबसे अच्छा काम करता है। Keras.io से: keras.io/getting-started/fterential-model-guide
photox

मुझे इसकी ही खोज थी। योगदान के लिए धन्यवाद।
user1367204

मैंने यह कोशिश की और पहनावा (model_1, model_2) का val_loss मॉडल_1 के val_loss से अधिक था और model_2 के val_loss से अधिक था।
user1367204

क्या आपने वास्तव में यह कोशिश की है, और निर्धारित किया है कि यह समस्या वास्तव में होती है? इस बिंदु की जाँच के लिए आपने क्या परीक्षण किए? परिणाम क्या थे?
ह्यूग पर्किंस

जवाबों:


5

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

दोनों को https://github.com/scikit-learn-contrib/categorical-encoding में लागू किया गया है , या खुद को लागू करने के लिए काफी सीधे आगे हैं।


4

आप बड़ी संख्या में वर्गीकृत वेरिएबल्स को एकल वेक्टर में बदलने के लिए एम्बेडिंग का उपयोग कर सकते हैं । यह संपीड़ित वेक्टर स्पष्ट विशेषताओं का एक वितरित प्रतिनिधित्व होगा। श्रेणीगत इनपुट N वास्तविक संख्याओं के साथ लंबाई N के अपेक्षाकृत छोटे वेक्टर में तब्दील हो जाएंगे जो किसी तरह से N अव्यक्त विशेषताओं का प्रतिनिधित्व करते हैं जो सभी इनपुटों का वर्णन करते हैं।

अंग्रेजी शब्दकोश में बड़ी संख्या में शब्दों पर विचार करें। यदि यह संख्या एन है, तो हम प्रत्येक शब्द को लंबाई के एक-गर्म-कोडित वेक्टर के रूप में दर्शा सकते हैं। हालांकि, वर्ड-टू-वीसी लगभग सभी जानकारी को 200-300 के बीच लंबाई के वेक्टर में कैप्चर करने में सक्षम है।

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