मुझे एहसास है कि यह एक पुराना सवाल है, एक स्थापित जवाब के साथ। मेरे द्वारा पोस्ट किए जाने का कारण यह है कि स्वीकृत उत्तर में k-NN ( k -nearest पड़ोसी) के कई तत्व हैं , एक अलग एल्गोरिथ्म।
K-NN और NaiveBayes दोनों वर्गीकरण एल्गोरिदम हैं। वैचारिक रूप से, के-एनएन नई संस्थाओं को वर्गीकृत करने के लिए "मंहगाई" के विचार का उपयोग करता है। K-NN में ess nearness ’को यूक्लिडियन डिस्टेंस या कोसाइन डिस्टेंस जैसे विचारों के साथ तैयार किया गया है। इसके विपरीत, NaiveBayes में, 'प्रायिकता' की अवधारणा का उपयोग नई संस्थाओं को वर्गीकृत करने के लिए किया जाता है।
चूँकि सवाल Naive Bayes के बारे में है, यहाँ मैं किसी के विचारों और चरणों का वर्णन कैसे करूँगा। मैं इसे कुछ समीकरणों और यथासंभव सरल अंग्रेजी में करने की कोशिश करूंगा।
सबसे पहले, सशर्त संभावना और बेय्स नियम
इससे पहले कि कोई व्यक्ति नेव बेयस की बारीकियों को समझ और सराह सकता है, उन्हें पहले संबंधित अवधारणाओं के एक जोड़े को जानना होगा, अर्थात्, सशर्त संभाव्यता और बेयस नियम के विचार। (यदि आप इन अवधारणाओं से परिचित हैं, तो 'Naive Bayes' के शीर्षक वाले अनुभाग पर जाएं ' )
सादे अंग्रेजी में सशर्त संभावना : क्या संभावना है कि कुछ होगा, यह देखते हुए कि कुछ और पहले ही हुआ है।
मान लीजिए कि कुछ आउटकम O हैं। और कुछ साक्ष्य ई। जिस तरह से इन संभावनाओं को परिभाषित किया गया है: आउटकम ओ और एविडेंस ई दोनों होने की संभावना है: (ओ होने की संभावना) गुणा (ई की संभावना से दी गई है) ओ हुआ)
सशर्त संभाव्यता को समझने के लिए एक उदाहरण:
मान लीजिए कि हमारे पास अमेरिकी सीनेटरों का एक संग्रह है। सीनेटर डेमोक्रेट या रिपब्लिकन हो सकते हैं। वे भी पुरुष या महिला हैं।
यदि हम एक सीनेटर को पूरी तरह से यादृच्छिक रूप से चुनते हैं, तो यह संभावना क्या है कि यह व्यक्ति एक महिला डेमोक्रेट है? सशर्त संभावना हमें इसका जवाब देने में मदद कर सकती है।
संभावना (डेमोक्रेट और महिला सीनेटर) = प्रोब (सीनेटर डेमोक्रेट है) महिला होने की सशर्त संभावना से गुणा किया जाता है कि वे एक डेमोक्रेट हैं।
P(Democrat & Female) = P(Democrat) * P(Female | Democrat)
हम ठीक उसी चीज़ की गणना कर सकते हैं, रिवर्स तरीका:
P(Democrat & Female) = P(Female) * P(Democrat | Female)
समझे नियम नियम
वैचारिक रूप से, यह P (Evidence | Known Outcome) से P (Outcome | ज्ञात साक्ष्य) तक जाने का एक तरीका है। अक्सर, हम जानते हैं कि किसी विशेष परिणाम को कितनी बार देखा जाता है, एक ज्ञात परिणाम दिया जाता है । हमें इस ज्ञात तथ्य का उपयोग उल्टा गणना करने के लिए करना है, उस परिणाम की संभावना की गणना करने के लिए , साक्ष्य को देखते हुए।
पी (आउटकम दिया गया है कि हम कुछ साक्ष्य जानते हैं) = पी (साक्ष्य दिया गया है कि हम आउटकम को जानते हैं) पी (साक्ष्य) द्वारा बढ़ाया गया प्रोब (आउटकम)
बेयस नियम को समझने के लिए उत्कृष्ट उदाहरण:
Probability of Disease D given Test-positive =
Prob(Test is positive|Disease) * P(Disease)
_______________________________________________________________
(scaled by) Prob(Testing Positive, with or without the disease)
अब, यह सब केवल प्रस्तावना था, जिसे नैवे बे को प्राप्त करना था।
Naive Bayes के लिए हो रही है '
अब तक, हमने केवल एक सबूत के बारे में बात की है। वास्तव में, हमें एक परिणाम की भविष्यवाणी करनी होगी जिसमें कई साक्ष्य दिए गए हैं। उस स्थिति में, गणित बहुत जटिल हो जाता है। उस जटिलता के चारों ओर जाने के लिए, एक दृष्टिकोण सबूत के कई टुकड़ों को 'अनउपलब्ध' करना और सबूत के प्रत्येक टुकड़े को स्वतंत्र मानना है। यह दृष्टिकोण इसीलिए इसे भोला बेयस कहा जाता है ।
P(Outcome|Multiple Evidence) =
P(Evidence1|Outcome) * P(Evidence2|outcome) * ... * P(EvidenceN|outcome) * P(Outcome)
scaled by P(Multiple Evidence)
बहुत से लोग इसे याद रखने के लिए चुनते हैं:
P(Likelihood of Evidence) * Prior prob of outcome
P(outcome|evidence) = _________________________________________________
P(Evidence)
इस समीकरण के बारे में कुछ बातें नोटिस करें:
- यदि प्रोब (साक्ष्य | परिणाम) 1 है, तो हम सिर्फ 1 से गुणा कर रहे हैं।
- यदि प्रोब (कुछ विशेष साक्ष्य | परिणाम) 0 है, तो संपूर्ण प्रोब। 0. हो जाता है यदि आप सबूतों का विरोधाभास देखते हैं, तो हम उस परिणाम को खारिज कर सकते हैं।
- चूँकि हम P (साक्ष्य) द्वारा सब कुछ विभाजित करते हैं, इसलिए हम इसकी गणना किए बिना भी दूर हो सकते हैं।
- पूर्व से गुणा करने के पीछे अंतर्ज्ञान इतना है कि हम अधिक सामान्य परिणामों को उच्च संभावना देते हैं, और कम परिणामों की संभावना नहीं है। इन्हें भी कहा जाता है
base rates
और ये हमारी अनुमानित संभावनाओं को मापने का एक तरीका है।
कैसे एक परिणाम की भविष्यवाणी करने के लिए NaiveBayes लागू करने के लिए?
प्रत्येक संभावित परिणाम के लिए बस ऊपर दिए गए सूत्र को चलाएँ। चूंकि हम वर्गीकृत करने की कोशिश कर रहे हैं , प्रत्येक परिणाम को एक लेबल कहा जाता है class
और इसका एक class label.
हमारा काम है सबूतों को देखना, यह विचार करना कि यह इस वर्ग या उस वर्ग के होने की कितनी संभावना है, और प्रत्येक इकाई को एक लेबल असाइन करें। फिर, हम एक बहुत ही सरल दृष्टिकोण लेते हैं: जिस वर्ग में सबसे अधिक संभावना है उसे "विजेता" घोषित किया जाता है और उस वर्ग लेबल को साक्ष्य के संयोजन के लिए सौंपा जाता है।
फल उदाहरण
आइए इसे अपनी समझ बढ़ाने के लिए एक उदाहरण पर आज़माएँ: ओपी ने एक 'फल' पहचान उदाहरण के लिए कहा।
मान लीजिए कि हमारे पास फलों के 1000 टुकड़े हैं। वे केले , नारंगी या कुछ अन्य फल होते हैं । हम प्रत्येक फल के बारे में 3 विशेषताएँ जानते हैं:
- चाहे वह लंबा हो
- चाहे वह मीठा हो और
- अगर उसका रंग पीला है।
यह हमारा 'प्रशिक्षण सेट' है। हम इसका उपयोग हमारे द्वारा सामना किए जाने वाले किसी भी नए फल के प्रकार की भविष्यवाणी करने के लिए करेंगे ।
Type Long | Not Long || Sweet | Not Sweet || Yellow |Not Yellow|Total
___________________________________________________________________
Banana | 400 | 100 || 350 | 150 || 450 | 50 | 500
Orange | 0 | 300 || 150 | 150 || 300 | 0 | 300
Other Fruit | 100 | 100 || 150 | 50 || 50 | 150 | 200
____________________________________________________________________
Total | 500 | 500 || 650 | 350 || 800 | 200 | 1000
___________________________________________________________________
हम अपने फलों के संग्रह के बारे में बहुत सारी चीजों की पूर्व-गणना कर सकते हैं।
तथाकथित "पूर्व" संभावनाएं। (यदि हम किसी भी फल गुण को नहीं जानते हैं, तो यह हमारा अनुमान होगा।) ये हमारे हैंbase rates.
P(Banana) = 0.5 (500/1000)
P(Orange) = 0.3
P(Other Fruit) = 0.2
"साक्ष्य" की संभावना
p(Long) = 0.5
P(Sweet) = 0.65
P(Yellow) = 0.8
"संभावना" की संभावना
P(Long|Banana) = 0.8
P(Long|Orange) = 0 [Oranges are never long in all the fruit we have seen.]
....
P(Yellow|Other Fruit) = 50/200 = 0.25
P(Not Yellow|Other Fruit) = 0.75
एक फल को देखते हुए, इसे कैसे वर्गीकृत किया जाए?
मान लीजिए कि हमें एक अज्ञात फल के गुण दिए गए हैं, और इसे वर्गीकृत करने के लिए कहा गया है। हमें बताया गया है कि फल लंबा, मीठा और पीला है। क्या यह एक केला है? यह एक नारंगी है? या यह कुछ अन्य फल है?
हम बस एक के बाद एक, 3 परिणामों में से प्रत्येक के लिए संख्याओं को चला सकते हैं। तब हम सबसे अधिक संभावना चुनते हैं और अपने अज्ञात फल को 'वर्गीकृत' करते हैं क्योंकि हमारे पूर्व प्रमाण (हमारे 1000 फल प्रशिक्षण सेट) के आधार पर उच्चतम संभावना थी।
P(Banana|Long, Sweet and Yellow)
P(Long|Banana) * P(Sweet|Banana) * P(Yellow|Banana) * P(banana)
= _______________________________________________________________
P(Long) * P(Sweet) * P(Yellow)
= 0.8 * 0.7 * 0.9 * 0.5 / P(evidence)
= 0.252 / P(evidence)
P(Orange|Long, Sweet and Yellow) = 0
P(Other Fruit|Long, Sweet and Yellow)
P(Long|Other fruit) * P(Sweet|Other fruit) * P(Yellow|Other fruit) * P(Other Fruit)
= ____________________________________________________________________________________
P(evidence)
= (100/200 * 150/200 * 50/200 * 200/1000) / P(evidence)
= 0.01875 / P(evidence)
एक भारी मार्जिन ( 0.252 >> 0.01875
) के द्वारा, हम इस मीठे / लंबे / पीले फल को एक केले के रूप में वर्गीकृत करते हैं।
बेयस क्लासिफायर इतना लोकप्रिय क्यों है?
यह देखो कि यह आखिरकार नीचे आता है। बस कुछ गिनती और गुणा। हम इन सभी शर्तों को पूर्व-गणना कर सकते हैं, और इसलिए वर्गीकरण आसान, त्वरित और कुशल हो जाता है।
Let z = 1 / P(evidence).
अब हम जल्दी से निम्नलिखित तीन मात्राओं की गणना करते हैं।
P(Banana|evidence) = z * Prob(Banana) * Prob(Evidence1|Banana) * Prob(Evidence2|Banana) ...
P(Orange|Evidence) = z * Prob(Orange) * Prob(Evidence1|Orange) * Prob(Evidence2|Orange) ...
P(Other|Evidence) = z * Prob(Other) * Prob(Evidence1|Other) * Prob(Evidence2|Other) ...
जो भी सबसे अधिक संख्या का वर्ग लेबल असाइन करें, और आप कर रहे हैं।
नाम के बावजूद, Naive Bayes कुछ अनुप्रयोगों में उत्कृष्ट निकला। पाठ वर्गीकरण एक ऐसा क्षेत्र है जहां यह वास्तव में चमकता है।
आशा है कि Naive Bayes एल्गोरिथ्म के पीछे की अवधारणाओं को समझने में मदद करता है।