Naive Bayes में, टेस्ट सेट में अज्ञात शब्द होने पर लैप्लस स्मूथिंग से क्यों परेशान होते हैं?


27

मैं आज Naive Bayes Classification पर पढ़ रहा था। मैं 1 चौरसाई जोड़ने के साथ पैरामीटर अनुमान के शीर्षक के तहत पढ़ता हूं :

चलो एक वर्ग (जैसे सकारात्मक या नकारात्मक रूप में) का उल्लेख, और एक टोकन या शब्द का संदर्भ लें।सीw

लिए अधिकतम संभावना अनुमानक isपी(w|सी)

सीयूnटी(w,सी)सीयूnटी(सी)=वर्ग c में w गिनता हैकक्षा सी में शब्दों की गिनती

का यह अनुमान समस्याग्रस्त हो सकता है क्योंकि यह हमें अज्ञात शब्दों वाले दस्तावेजों के लिए संभावना देगा । इस समस्या को हल करने का एक सामान्य तरीका लाप्लास स्मूथिंग का उपयोग करना है।पी(w|सी)0

V को प्रशिक्षण सेट में शब्दों का सेट होने दें, शब्दों के सेट में एक नया तत्व यूएनकश्मीर (अज्ञात के लिए) जोड़ें ।

P को परिभाषित करें

पी(w|सी)=गिनती(w,सी)+1गिनती(सी)+|वी|+1,

जहां वी शब्दावली (प्रशिक्षण सेट में शब्द) को संदर्भित करता है।

विशेष रूप से, किसी भी अज्ञात शब्द में प्रायिकता

1गिनती(सी)+|वी|+1

मेरा सवाल यह है: हम इस लाप्लास के साथ बिल्कुल परेशान क्यों करते हैं? यदि ये अज्ञात शब्द जो हम परीक्षण सेट में मुठभेड़ करते हैं, तो एक संभावना है जो स्पष्ट रूप से लगभग शून्य है, अर्थात, 1count(c)+|V|+1 , उन्हें मॉडल में शामिल करने का क्या मतलब है? क्यों न केवल अवहेलना करें और उन्हें हटाएं?


3
यदि आप ऐसा नहीं करते हैं, तो आपके द्वारा पहले अनदेखे शब्द से संबंधित कोई भी बयान । इसका मतलब है कि एक असंभव घटना बीत गई है। जिसका मतलब है कि आपका मॉडल एक अविश्वसनीय रूप से खराब फिट था। इसके अलावा एक उचित बायेसियन मॉडल में ऐसा कभी नहीं हो सकता है, क्योंकि अज्ञात शब्द की संभावना के पास पूर्ववर्ती (संभवतः 1) द्वारा दिया गया एक अंश होगा। इसलिए मुझे नहीं पता कि इसके लिए फैंसी नाम 'लाप्लास स्मूथिंग' की आवश्यकता क्यों है। p=0
conjectures

1
पाठ क्या था जो पढ़ने से आया था?
wordsforthewise

जवाबों:


17

आपको हमेशा इस 'विफल-सुरक्षित' संभावना की आवश्यकता होती है।

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

एक और चरम उदाहरण परीक्षण वाक्य है "एलेक्स स्टीव से मिला।" जहां प्रशिक्षण नमूने में "मिले" कई बार दिखाई देते हैं लेकिन "एलेक्स" और "स्टीव" नहीं। आपका मॉडल यह निष्कर्ष निकालता है कि इस कथन की बहुत संभावना है जो सच नहीं है।


मैं एक पूर्ण मोरन की तरह ध्वनि से नफरत करता हूं, लेकिन क्या आप विस्तार से बताएंगे? "एलेक्स" और "स्टीव" को हटाने से बयान होने की संभावना कैसे बदल जाती है?
मैट ओ'ब्रायन

2
यदि हम P (एलेक्स) P (स्टीव) P (मिले) << P (मिले)
सिड

1
हम प्रशिक्षण डेटा सेट पर मॉडल को प्रशिक्षित करते समय एक शब्दावली का निर्माण कर सकते हैं, इसलिए परीक्षण डेटा सेट पर भविष्यवाणियां करते समय शब्दावली में उत्पन्न होने वाले सभी नए शब्दों को क्यों न हटाएं?
एवोकैडो

15

मान लीजिए कि आपने अपने Naive Bayes Classifier को 2 वर्गों, "Ham" और "Spam" पर प्रशिक्षित किया है (अर्थात यह ईमेल को वर्गीकृत करता है)। सादगी के लिए, हम पूर्व संभावनाओं को 50/50 मान लेंगे।

आइए अब मान लीजिए कि आप एक ईमेल है (w1,w2,,wn) जो अपने वर्गीकारक दर बहुत अत्यधिक के रूप में "हाम", कहते हैं कि

पी(एचमीटर|w1,w2,wn)=.90
और
पी(एसपीमीटर|w1,w2,wn)=.10

अब तक सब ठीक है।

आइए अब कहते हैं कि तुम एक और ईमेल है (w1,w2,,wn,wn+1) जो वास्तव में ऊपर ईमेल के रूप में ही है कि इसमें एक शब्द है कि शब्दावली में शामिल नहीं है है, सिवाय इसके कि । इसलिए, चूंकि इस शब्द की गिनती 0 है,

पी(एचमीटर|wn+1)=पी(एसपीमीटर|wn+1)=0

अचानक,

पी(एचमीटर|w1,w2,wn,wn+1)=पी(एचमीटर|w1,w2,wn)*पी(एचमीटर|wn+1)=0
और
पी(एसपीमीटर|w1,w2,wn,wn+1)=पी(एसपीमीटर|w1,w2,wn)*पी(एसपीमीटर|wn+1)=0

1 ईमेल को एक कक्षा में दृढ़ता से वर्गीकृत किए जाने के बावजूद, इस 2 ईमेल को अलग-अलग तरीके से वर्गीकृत किया जा सकता है क्योंकि उस अंतिम शब्द में शून्य की संभावना है।

लाप्लास स्मूथिंग अंतिम शब्द को दोनों वर्गों के लिए एक छोटा गैर-शून्य संभावना देकर हल करती है, ताकि पीछे की संभावनाएं अचानक शून्य पर न जाएं।


हम एक शब्द क्यों रखेंगे जो शब्दावली में मौजूद नहीं है? क्यों नहीं इसे हटा दें?
एवोकैडो

4
यदि आपका क्लासिफायर किसी ईमेल को हैम होने की संभावना रखता है, तो p (हैम w1, ..., wn) 0.9 है, p नहीं (w1, ..., wn | हैम)
braaterAfrikaaner

5

यह प्रश्न सरल है यदि आप बेयस अनुमानकों से परिचित हैं, क्योंकि यह बेयस अनुमानक का सीधा निष्कर्ष है।

बायेसियन दृष्टिकोण में, मापदंडों को एक मात्रा माना जाता है, जिसकी भिन्नता एक संभाव्यता वितरण (या पूर्व वितरण) द्वारा वर्णित की जा सकती है।

इसलिए, यदि हम बहुपद वितरण के रूप में लेने की प्रक्रिया को देखते हैं, तो हम कुछ चरणों में प्रश्न हल कर सकते हैं।

सबसे पहले, परिभाषित करें

मीटर=|वी|,n=Σnमैं

अगर हम की पूर्व वितरण मान पीमैं समान वितरण, हम इसे के रूप में सशर्त प्रायिकता वितरण है की गणना कर सकते है

पी(पी1,पी2,,पीमीटर|n1,n2,,nमीटर)=Γ(n+मीटर)Πमैं=1मीटरΓ(nमैं+1)Πमैं=1मीटरपीमैंnमैं

पीमैं

[पीमैं]=nमैं+1n+मीटर

पीमैंपीमैं

पी^मैं=[पीमैं]

You can see we just draw the same conclusion as Laplace Smoothing.


4

Disregarding those words is another way to handle it. It corresponds to averaging (integrate out) over all missing variables. So the result is different. How?

Assuming the notation used here:

P(C|d)=argmaxCip(ti|C)P(C)P(d)argmaxCip(ti|C)P(C)
where ti are the tokens in the vocabulary and d is a document.

Let say token tk does not appear. Instead of using a Laplace smoothing (which comes from imposing a Dirichlet prior on the multinomial Bayes), you sum out tk which corresponds to saying: I take a weighted voting over all possibilities for the unknown tokens (having them or not).

P(C|d)argmaxCtkip(ti|C)P(C)=argmaxCP(C)ikp(ti|C)tkp(tk|C)=argmaxCP(C)ikp(ti|C)

But in practice one prefers the smoothing approach. Instead of ignoring those tokens, you assign them a low probability which is like thinking: if I have unknown tokens, it is more unlikely that is the kind of document I'd otherwise think it is.


2

You want to know why we bother with smoothing at all in a Naive Bayes classifier (when we can throw away the unknown features instead).

The answer to your question is: not all words have to be unknown in all classes.

Say there are two classes M and N with features A, B and C, as follows:

M: A=3, B=1, C=0

(In the class M, A appears 3 times and B only once)

N: A=0, B=1, C=3

(कक्षा एन में , सी 3 बार और बी केवल एक बार दिखाई देता है )

आइए देखें कि जब आप शून्य बार दिखाई देने वाली सुविधाओं को फेंक देते हैं तो क्या होता है ।

ए) थ्रो अवे फीचर्स दैट अपियर जीरो टाइम्स इन एनी क्लास

यदि आप और सी की विशेषताओं को फेंक देते हैं क्योंकि वे किसी भी वर्ग में शून्य बार दिखाई देते हैं, तो आपके पास केवल दस्तावेज़ बी के साथ दस्तावेज़ों को वर्गीकृत करने के लिए छोड़ दिया जाता है।

और उस जानकारी को खोना एक बुरी बात है जैसा कि आप नीचे देखेंगे!

यदि आपको एक परीक्षण दस्तावेज के साथ प्रस्तुत किया जाता है:

बी = 1, सी = 3

(इसमें एक बार बी और तीन बार सी)

Now, since you've discarded the features A and B, you won't be able to tell whether the above document belongs to class M or class N.

So, losing any feature information is a bad thing!

B) Throw Away Features That Appear Zero Times In All Classes

Is it possible to get around this problem by discarding only those features that appear zero times in all of the classes?

No, because that would create its own problems!

The following test document illustrates what would happen if we did that:

A=3, B=1, C=1

एम और एन की संभावना दोनों शून्य हो जाएगी (क्योंकि हम कक्षा एन में की शून्य संभावना और कक्षा एम में सी की शून्य संभावना नहीं फेंकते हैं )।

सी) दूर कुछ भी मत फेंको - इसके बजाय चौरसाई का उपयोग करें

चौरसाई आपको उपरोक्त दोनों दस्तावेजों को सही ढंग से वर्गीकृत करने की अनुमति देती है क्योंकि:

  1. आप उन कक्षाओं में जानकारी नहीं खोते जहां ऐसी जानकारी उपलब्ध है और
  2. आपको शून्य गणना के साथ संघर्ष करने की आवश्यकता नहीं है।

Naive Bayes Classifiers अभ्यास में

NLTK में Naive Bayes क्लासिफायर ने उन विशेषताओं को फेंक दिया, जिनकी किसी भी कक्षा में शून्य गणना थी।

यह एक कठिन EM प्रक्रिया (जहाँ क्लासिफायर को बहुत कम प्रशिक्षण डेटा से बूटस्ट्रैप किया जाता है) का उपयोग करके प्रशिक्षित होने पर इसे खराब प्रदर्शन करने के लिए उपयोग किया जाता है।


2
@ Aiaioo लैब्स आप यह महसूस करने में विफल रहे कि वह उन शब्दों का उल्लेख कर रहे थे जो प्रशिक्षण सेट में बिल्कुल भी प्रकट नहीं हुए थे, आपके उदाहरण के लिए, वह यह कहना चाह रहे थे कि यदि डी दिखाई दिया, तो समस्या लैपलैस स्मूथिंग से गणना पर नहीं है परीक्षण सेट के बजाय प्रशिक्षण सेट। टेस्ट सेट से अज्ञात शब्दों पर लैप्लस स्मूथिंग का उपयोग करने की संभावना कम हो जाती है, जो भी वर्ग के कम से कम टोकनों की मात्रा 0 + 1/2 + 3 के बड़े होने के कारण होती है कि 0 + 1/3 + 3 (यदि कक्षाओं में से एक था 3 टोकन और दूसरे के पास 2) थे। ...

2
यह वास्तव में एक सही वर्गीकरण को गलत वर्गीकरण में बदल सकता है यदि पर्याप्त अज्ञात शब्दों को समीकरण में चिकना किया जाता है। ट्रेनिंग सेट गणना के लिए लाप्लास स्मूथिंग ठीक है, लेकिन सेट विश्लेषण का परीक्षण करने के लिए हानिकारक है। यह भी कल्पना कीजिए कि आपके पास सभी अनकहे शब्दों के साथ एक परीक्षण सेट है, इसे तुरंत उच्चतम संभावना वाले वर्ग में वर्गीकृत किया जाना चाहिए, लेकिन वास्तव में यह ऐसा हो सकता है और आमतौर पर वर्गीकृत नहीं किया जा सकता है, और आमतौर पर सबसे कम राशि वाले वर्ग के रूप में वर्गीकृत किया जाता है। टोकन का।

@DrakeThatcher, आपसे बहुत सहमत है, हाँ अगर हम शब्दों को शब्दावली में नहीं हटाते हैं, तो पूर्वानुमानित प्रोब को कम से कम शब्दों के साथ वर्ग में तिरछा किया जाएगा।
एवोकैडो

1

नैवे बेस का अध्ययन करते समय मुझे भी यही समस्या आई।

मेरे अनुसार, जब भी हम एक परीक्षा उदाहरण का सामना करते हैं, जो हम प्रशिक्षण के दौरान नहीं आए थे, तो पोस्टीरियर प्रायिकता 0 हो जाएगी।

इसलिए 1 को जोड़ने पर, भले ही हम कभी किसी विशेष सुविधा / वर्ग पर प्रशिक्षण न दें, पोस्टीरियर संभावना कभी 0 नहीं होगी।


1

मैट आप सही हैं आप एक बहुत अच्छा मुद्दा उठाते हैं - हां लाप्लास स्मूथिंग काफी स्पष्ट रूप से बकवास है! बस उन विशेषताओं को फेंकना एक वैध दृष्टिकोण हो सकता है, खासकर जब हर भी एक छोटी संख्या है - संभावना अनुमान का समर्थन करने के लिए पर्याप्त सबूत नहीं है।

मैं कुछ मनमाने समायोजन के उपयोग के माध्यम से किसी भी समस्या को हल करने के लिए एक मजबूत विरोधाभास है। यहां समस्या शून्य है, "समाधान" सिर्फ "कुछ छोटे मूल्य को शून्य में जोड़ना है ताकि यह अब शून्य न हो - समस्या का कोई और समाधान नहीं है"। बेशक यह पूरी तरह से मनमाना है।

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

अब संभावना अनुमान के लिए वैकल्पिक तकनीक मौजूद हैं (अधिकतम संभावना + लाप्लास स्मूथिंग के अलावा), लेकिन बड़े पैमाने पर प्रलेखित हैं। वास्तव में Inductive Logic और Inference Processes नामक एक संपूर्ण फ़ील्ड है जो सूचना सिद्धांत से बहुत सारे उपकरण का उपयोग करता है।

हम जो व्यवहार में उपयोग करते हैं वह न्यूनतम क्रॉस एंट्रोपी अपडेटिंग का है जो जेफरी के अपडेटिंग का एक विस्तार है जहां हम संभावना क्षेत्र के उत्तल क्षेत्र को इस क्षेत्र के साक्ष्य के अनुरूप परिभाषित करते हैं कि इसमें एक बिंदु का अर्थ होगा अधिकतम लाइकलेस अनुमान। बिंदु से पूर्ण विचलन की उम्मीद है।

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

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