2012-11-30 33 views
6

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

लेकिन मैं केएनएन वर्गीकरण के लिए ऐसा कैसे कर सकता हूं?

मैं प्रलेखन खोज की है और कुछ कार्यों पाया:

  1. Class = knnclassify(Sample, Training, Group, k)
  2. mdl = ClassificationKNN.fit(X,Y,'NumNeighbors',i,'leaveout','On')

मैं चला सकते हैं (क) और का उपयोग करके छुट्टी-एक-बाहर पार एक भ्रम मैट्रिक्स मिल प्रमाणीकरण लेकिन आरओसी बनाने के लिए प्राथमिकता संभावना को बदलना संभव नहीं है?

मैंने पहले (बी) कोशिश नहीं की है लेकिन यह एक मॉडल बनाता है जहां आप mdl.Prior को संशोधित कर सकते हैं। लेकिन मुझे कोई संकेत नहीं है कि भ्रम मैट्रिक्स कैसे प्राप्त करें।

क्या कोई विकल्प है जिसे मैंने याद किया है या कोई ऐसा व्यक्ति जो समझा सकता है कि आरओसी प्राप्त करने के लिए उन कार्यों का पूरी तरह से उपयोग कैसे किया जाए?

उत्तर

0

यह वास्तव में सीधा नहीं है, क्योंकि के-एनएन क्लासिफायरफायर का आउटपुट एक ऐसा स्कोर नहीं है जिसके द्वारा निर्णय थ्रेसहोल्डिंग द्वारा लिया गया है, लेकिन बहुमत के वोट पर आधारित निर्णय ही है।

मेरा सुझाव: पड़ोस में कक्षाओं के अनुपात के आधार पर एक स्कोर परिभाषित करें, और फिर आरओसी की गणना करने के लिए इस स्कोर को थ्रेसहोल्ड करें। संक्षेप में बोलते हुए, स्कोर व्यक्त करता है कि एल्गोरिदम कितना निश्चित है; यह -1 (कक्षा -1 के लिए अधिकतम निश्चितता) से +1 (कक्षा +1 के लिए अधिकतम निश्चितता) से लेकर है।

उदाहरण: कश्मीर = 6 के लिए, स्कोर

  • 1 है अगर सभी छह पड़ोसियों वर्ग +1 की कर रहे हैं;
  • -1 यदि सभी छह पड़ोसी कक्षा -1 के हैं;
  • 0 यदि पड़ोसियों को हेलवे कक्षा +1 के हैं और neigbours halbour वर्ग -1 के हैं।

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

+0

टिप्पणी के लिए धन्यवाद। मैं विचार करूंगा कि क्या अन्य विकल्प व्यवहार्य हैं और आपके सुझाव में देखें! – user1865820