मैं यादृच्छिक वन वर्गीकरण के लिए श्रेणीबद्ध डेटा प्रकार कैसे फिट कर सकता हूं?


12

मुझे रैंडम फ़ॉरेस्ट अल्गोरिथम लागू करके एक प्रशिक्षण डाटासेट की सटीकता खोजने की आवश्यकता है। लेकिन मेरे डेटा सेट का प्रकार स्पष्ट और संख्यात्मक दोनों हैं। जब मैंने उन आंकड़ों को फिट करने की कोशिश की, तो मुझे एक त्रुटि मिली।

'इनपुट में NaN, अनंत या dtype (' float32 ') के लिए बहुत बड़ा मान शामिल है' '।

हो सकता है समस्या वस्तु डेटा प्रकारों के लिए हो। आरएफ लगाने के लिए मैं बिना रूपांतरण डेटा कैसे फिट कर सकता हूं?

यहाँ मेरा कोड है।

स्क्रीनशॉट

स्क्रीनशॉट

स्क्रीनशॉट


यदि आप ट्री मॉडल का उपयोग कर रहे हैं, तो आपको one_hot का संचालन करने की आवश्यकता नहीं है, क्योंकि यह अन्य विधि की तरह दूरी को माप नहीं रहा है।
जून यांग

1
@JunYang, scikit-learn को वर्तमान में एन्कोडिंग श्रेणीकरण की आवश्यकता है।
बेन रेइनिगर

जवाबों:


11

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

यदि आप स्केलेर के लिए प्रतिबद्ध नहीं हैं, तो h2o रैंडम फ़ॉरेस्ट इम्प्लीमेंटेशन श्रेणीबद्ध विशेषताओं को सीधे हैंडल करता है।


0

जहाँ तक मुझे पता है इस प्रकार की त्रुटि प्राप्त करने के लिए कुछ समस्याएँ हैं। पहले एक, मेरे डेटासेट में अतिरिक्त जगह मौजूद है कि त्रुटि क्यों दिखाई दे रही है, 'इनपुट में NAN मान शामिल है; दूसरा, अजगर किसी भी प्रकार के ऑब्जेक्ट वैल्यू के साथ काम करने में सक्षम नहीं है। हमें इस ऑब्जेक्ट वैल्यू को न्यूमेरिक वैल्यू में बदलने की जरूरत है। ऑब्जेक्ट को न्यूमेरिक में परिवर्तित करने के लिए दो प्रकार की एन्कोडिंग प्रक्रिया मौजूद है: लेबल एनकोडर और एक हॉट एनकोडर। जहां लेबल एनकोडर एनकोड ऑब्जेक्ट को 0 से n_classes-1 के बीच और एक हॉट एन्कोडर का मान 0 से 1 के बीच में एनकोड करता है। अपने काम में, किसी भी प्रकार के वर्गीकरण पद्धति के लिए अपना डेटा फिट करने से पहले, मैं वेल्यू परिवर्तित करने के लिए लेबल एनकोडर का उपयोग करता हूं और परिवर्तित करने से पहले मैं यह सुनिश्चित करता हूं कि मेरे डेटा सेट में कोई खाली जगह मौजूद नहीं है।

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