केएनएन में संबंधों, वज़न और मतदान से निपटना


15

मैं एक kNN एल्गोरिथ्म प्रोग्रामिंग कर रहा हूं और निम्नलिखित जानना चाहूंगा:

टाई-ब्रेक:

  1. बहुसंख्यक मतदान में स्पष्ट विजेता नहीं होने पर क्या होता है? जैसे सभी k निकटतम पड़ोसी विभिन्न वर्गों से हैं, या k = 4 के लिए वर्ग A से 2 पड़ोसी हैं और वर्ग B से 2 पड़ोसी हैं?
  2. क्या होता है अगर यह ठीक से निकटतम पड़ोसियों को निर्धारित करना संभव नहीं है, क्योंकि अधिक पड़ोसी हैं जिनकी समान दूरी है? उदा। दूरियों की सूची के (x1;2), (x2;3.5), (x3;4.8), (x4;4.8), (x5;4.8), (x6;9.2)लिए k = 3 या k = 4 निकटतम पड़ोसियों को निर्धारित करना संभव नहीं होगा, क्योंकि 3 से 5 वें पड़ोसी सभी के पास समान दूरी है।

तौल:

  1. मैंने पढ़ा कि विजेता वर्ग का चयन करने से पहले के-निकटतम पड़ोसियों का वजन करना अच्छा है। वह कैसे काम करता है? यानी पड़ोसियों का वजन कैसे किया जाता है और फिर कक्षा का निर्धारण कैसे किया जाता है?

अधिकांश वोट विकल्प:

  1. क्या बहुमत के वोट के अलावा विजेता वर्ग को निर्धारित करने के लिए अन्य नियम / रणनीति हैं?

जवाबों:


7

मेरे विचार में k निकटतम पड़ोसी के लिए एक टाई को तोड़ने का आदर्श तरीका है कि जब तक आप टाई को तोड़ न दें, तब तक k 1 से कम हो जाएगा । यह हमेशा वोट वेटिंग स्कीम की परवाह किए बिना काम करेगा, क्योंकि k = 1. एक टाई असंभव है जब आप k को बढ़ाते हैं , तो आपकी वेटिंग स्कीम और श्रेणियों की संख्या को लंबित रखते हुए, आप टाई ब्रेक की गारंटी नहीं दे पाएंगे।


12
जब t = k 1 हो तो असंभव क्यों है, यदि दो पड़ोसी समान दूरी वाले विभिन्न वर्गों के हैं, तो आप k = 1 के साथ निकटतम पड़ोसी का निर्धारण कैसे करते हैं?
j5shi

7

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

इस बात को ध्यान में रखते हुए, आप महसूस कर सकते हैं कि बहुसंख्यक मतदान में स्पष्ट विजेता नहीं होने पर क्या करना चाहिए, इसकी कोई स्पष्ट अनिवार्यता नहीं है। आप या तो हमेशा एक विषम कश्मीर का उपयोग कर सकते हैं, या कुछ इंजेक्शन भार का उपयोग कर सकते हैं।

पड़ोसियों के मामले में 3 से 5 ब्याज के बिंदु से समान दूरी पर होने के कारण, आप या तो केवल दो का उपयोग कर सकते हैं, या सभी का उपयोग कर सकते हैं 5. फिर, ध्यान रखें कि केएनएन जटिल गणितीय विश्लेषण से प्राप्त कुछ एल्गोरिथ्म नहीं है, लेकिन सिर्फ सरल अंतर्ज्ञान। यह आपके ऊपर है कि आप उन विशेष मामलों से कैसे निपटना चाहते हैं।

जब वज़न करने की बात आती है, तो आप अपने एल्गोरिथ्म को उस अंतर्ज्ञान पर आधारित करते हैं, जब फ़ंक्शन बहुत अधिक नहीं बदलता है जब तर्क बहुत अधिक नहीं बदलते हैं। इसलिए आप ऐसे पॉइंट्स को बड़ा वेट देना चाहते हैं जो पॉइंट ऑफ इंटरेस्ट के करीब हों। एक अच्छी वेटिंग उदाहरण के लिए होगी , या कोई अन्य जो अपेक्षाकृत बड़ा है जब दूरी छोटी होती है, और अपेक्षाकृत छोटा तब होता है जब अंकों के बीच की दूरी बड़ी होती है (इसलिए शायद कुछ का विलोम। सतत मीट्रिक समारोह)।1||xy||2

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

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

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

विवरण के लिए, जैस्पर स्नोके, ह्यूगो लॉरेल और रयान पी एडम्स (भी या तो अपनी वेबसाइटों पर या Google के माध्यम से पाया जा सकता है) द्वारा "प्रैक्टिकल बायेसियन ऑप्टिमाइज़ेशन ऑफ मशीन लर्निंग एल्गोरिथम" की तलाश करें।


2
चेतावनी: हाइपरपरमेटर्स को वैधीकरण सेट पर सर्वोत्तम सटीकता के लिए अनुकूलित करना, गुमनामी से दूर रहने का एक सीधा तरीका है। आप नेस्टेड सीवी चाहते हैं।

एक त्वरित ध्यान दें कि "एक अजीब कश्मीर" जरूरी नहीं कि टाई समस्या को हल करे ... जैसे तीन समूहों को वर्गीकृत करते समय k = 3। इसके अलावा मैं सहमत हूं। अच्छी व्याख्या।
Pyll

1

इस टाई भाग के बारे में, संबंधों के लिए सबसे अच्छा आधारभूत विचार आमतौर पर यादृच्छिक रूप से टूट जाता है, इसलिए मतदान जीतने वाले सभी के यादृच्छिक वर्ग का चयन करना और के को भरने के लिए बड़े पैमाने पर बंधी वस्तुओं के सबसेट का चयन करना।

ऐसा समाधान इस तथ्य पर बल देता है कि वे रोग संबंधी मामले हैं जो केवल केएनएन शासन में निर्णय लेने के लिए पर्याप्त जानकारी प्रदान नहीं करते हैं। BTW यदि वे आपके डेटा के लिए सामान्य हैं, तो शायद आपको कुछ और अंतर करने की कोशिश करनी चाहिए?


0

एक संभावित तरीका यह है कि जब तक आपको स्पष्ट विजेता नहीं मिल जाता, तब तक एल्गोरिथ्म स्वचालित रूप से वृद्धि या कमी करेगा।

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