2010-07-11 12 views
7

मेरे पास "0" वर्ग (लगभग 30000 बनाम 1500) की ओर एक बड़ी स्कू के साथ एक बाइनरी क्लास डेटासेट (0/1) है। प्रत्येक उदाहरण के लिए 7 विशेषताएं हैं, कोई गुम मूल्य नहीं है।जानबूझकर वेका पेड़ वर्गीकृतों को कैसे खत्म करें?

जब मैं जे 48 या किसी अन्य पेड़ वर्गीकृत का उपयोग करता हूं, तो मुझे लगभग "1" उदाहरणों को "0" के रूप में गलत वर्गीकृत किया जाता है।

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

मैं सिर्फ एक मॉडल नहीं बना सकता जो मेरे डेटा को ओवरफिट करता है!

मैंने लगभग सभी अन्य वर्गीकृत वीका प्रदान किए हैं, लेकिन इसी तरह के परिणाम मिल गए हैं।

आईबी 1 का उपयोग 100% सटीकता (ट्रेनों पर ट्रेनेट) प्राप्त करता है, इसलिए यह एक ही सुविधा मूल्यों और विभिन्न वर्गों के साथ कई उदाहरणों की समस्या नहीं है।

मैं एक पूरी तरह से अप्रसन्न पेड़ कैसे बना सकता हूं? या अन्यथा मेरे डेटा को खत्म करने के लिए वेका को मजबूर करते हैं?

धन्यवाद।

अद्यतन: ठीक है, यह बेतुका है। मैं केवल बारे में 3100 और 1200 के नकारात्मक सकारात्मक उदाहरण का उपयोग किया है, और इस पेड़ मुझे मिल गया है (unpruned!):

J48 unpruned tree 
------------------ 

F <= 0.90747: 1 (201.0/54.0) 
F > 0.90747: 0 (4153.0/1062.0) 

कहने की जरूरत नहीं, IB1 अभी भी 100% सटीक देता है।

अपडेट 2: मुझे नहीं पता कि मुझे यह कैसे याद आया - अनियंत्रित सरलकार्ट काम करता है और ट्रेन पर 100% सटीकता ट्रेन देता है; Pruned SimpleCart J48 के रूप में पक्षपातपूर्ण नहीं है और इसका सभ्य झूठा सकारात्मक और नकारात्मक अनुपात है।

+0

संभव संबंधित सवाल: http://stackoverflow.com/ प्रश्न/2519 997/अलग-वजन-झूठी-सकारात्मक-और-झूठी-नकारात्मक-इन-तंत्रिका-नेटवर्क – Amro

उत्तर

2

त्वरित और गंदे समाधान को फिर से शुरू करना है। अपने सकारात्मक उदाहरणों के 1500 लेकिन एक संतुलित डेटा सेट पर ट्रेन को फेंक दें। मुझे यकीन है कि ऐसा करने के लिए वेका में एक अनुकरण घटक है।

दूसरा समाधान प्रत्येक वर्ग के लिए परिवर्तनीय लागत वाले क्लासिफायर का उपयोग करना है। मुझे यकीन है कि libSVM आपको ऐसा करने की अनुमति देता है और मुझे पता है कि वीका libSVM को लपेट सकता है। हालांकि मैंने थोड़ी देर में वेका का उपयोग नहीं किया है, इसलिए मैं यहां बहुत व्यावहारिक सहायता नहीं कर सकता हूं।

+0

धन्यवाद। मुझे यकीन नहीं है कि resampling काम करेगा - प्रयोगों से मैंने ऐसा लगता है कि एक संतुलित डेटासेट (प्रत्येक वर्ग के लिए 1000 उदाहरण) पर भी J48 और अन्य क्लासिफायर (सिंपलकार्ट को छोड़कर) हास्यास्पद परिणाम प्राप्त करते हैं - या तो वर्ग के लिए बहुत अधिक एफपी या एफएन " 0 "या वर्ग" 1 "के लिए बहुत अधिक (और दूसरी कक्षा को ज्यादातर सही ढंग से वर्गीकृत किया जाता है)। लागत संवेदनशील वर्गीकरण के बारे में - मैं पूरी तरह से इसके बारे में भूल गया, मैं जल्द ही इसे देख लूंगा। धन्यवाद! – Haggai

+0

लागत संवेदनशील दृष्टिकोण काम किया। मुझे अभी भी समझ में नहीं आ रहा है कि क्यों अप्रतिबंधित J48 मुझे प्रशिक्षण सेट पर 100% सटीकता नहीं देगा, या J48 के साथ एक संतुलित डेटासेट अभी भी हास्यास्पद आउटपुट क्यों देता है। लेकिन कम से कम अब मेरे पास काम करने के लिए कुछ है। धन्यवाद! – Haggai

5

Weka ब्याज की दो मेटा-classifiers शामिल हैं:

वे आप की अनुमति देता है किसी भी एल्गोरिथ्म लागत के प्रति संवेदनशील (SVM तक ही सीमित नहीं है) और एक निर्दिष्ट करने के लिए लागत मैट्रिक्स (विभिन्न त्रुटियों का जुर्माना); 0 को 1 के रूप में गलत तरीके से वर्गीकृत करने के लिए आप उदाहरणों को 0 के रूप में गलत वर्गीकरण के लिए उच्च दंड देंगे।

परिणाम है कि एल्गोरिथ्म तो करने की कोशिश करेंगे:

की उम्मीद गलत वर्गीकरण लागत को कम करने (बल्कि सबसे अधिक संभावना वर्ग की तुलना में)

+1

धन्यवाद, यह वही समाधान है जिसका मैंने उपयोग किया है। – Haggai

संबंधित मुद्दे