वर्गीकरण एल्गोरिदम - Naïve Bayes

Na tove Bayes एल्गोरिथ्म का परिचय

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

बायेसियन वर्गीकरण में, मुख्य रुचि यह है कि पीछे की संभावनाओं को खोजने के लिए यानी एक लेबल की संभावना कुछ प्रेक्षित विशेषताएं दी गई हैं, (- |)। बेयस प्रमेय की मदद से, हम इसे मात्रात्मक रूप में इस प्रकार व्यक्त कर सकते हैं -

$ $ P (L। विशेषताएँ) = \ frac {P (L) P (सुविधाएँ | L)} {} ()} $ $

यहाँ, (|) कक्षा की उत्तरवर्ती संभावना है।

() वर्ग की पूर्व संभावना है।

(!) संभावना है जो भविष्यवक्ता द्वारा दी गई कक्षा की संभावना है।

() पूर्वसूचक की पूर्व संभावना है।

पायथन में Na modelve Bayes का उपयोग कर मॉडल का निर्माण

पायथन पुस्तकालय, स्किकिट सीखते हैं सबसे उपयोगी पुस्तकालय है जो हमें पायथन में Na libraryve Bayes मॉडल बनाने में मदद करता है। हम निम्नलिखित तीन प्रकार के नाइके बेयस मॉडल के तहत स्किकिट में पायथन लाइब्रेरी सीखते हैं -

गौसियन नाओवे बेयस

यह सबसे सरल Naïve Bayes क्लासिफायर है, इस धारणा के साथ कि प्रत्येक लेबल के डेटा को एक साधारण गाऊसी वितरण से लिया गया है।

बहुराष्ट्रीय Na Bayve Bayes

एक अन्य उपयोगी नाओवे बेयस क्लासिफायर मल्टीमोनियल नाओवे बेयस है जिसमें सुविधाओं को एक साधारण बहुराष्ट्रीय वितरण से तैयार किया जाना माना जाता है। इस तरह के Na kindve Bayes सुविधाओं के लिए सबसे उपयुक्त हैं जो असतत गणना का प्रतिनिधित्व करते हैं।

बर्नौली नाओवे बेयस

एक अन्य महत्वपूर्ण मॉडल बर्नौली नाओवे बेयस है जिसमें सुविधाओं को द्विआधारी (0s और 1s) माना जाता है। 'शब्दों के बैग' मॉडल के साथ पाठ का वर्गीकरण बर्नौली नाओवे बेयस का एक अनुप्रयोग हो सकता है।

उदाहरण

हमारे डेटा सेट के आधार पर, हम ऊपर वर्णित Na ,ve Bayes मॉडल में से कोई भी चुन सकते हैं। यहाँ, हम पायस में गाऊसी नाओवे बेयस मॉडल को लागू कर रहे हैं -

हम निम्नानुसार आवश्यक आयातों के साथ शुरू करेंगे -

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()

अब, Scikit के make_blobs () फ़ंक्शन का उपयोग करके सीखते हैं, हम गॉसियन वितरण के साथ अंक की बूँदें उत्पन्न कर सकते हैं: -

from sklearn.datasets import make_blobs
X, y = make_blobs(300, 2, centers=2, random_state=2, cluster_std=1.5)
plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='summer');

अगला, गॉसियनबीबी मॉडल का उपयोग करने के लिए, हमें निम्नानुसार अपनी वस्तु को आयात और बनाने की आवश्यकता है -

from sklearn.naive_bayes import GaussianNB
model_GBN = GaussianNB()
model_GNB.fit(X, y);

अब, हमें भविष्यवाणी करनी होगी। यह कुछ नए डेटा उत्पन्न करने के बाद किया जा सकता है -

rng = np.random.RandomState(0)
Xnew = [-6, -14] + [14, 18] * rng.rand(2000, 2)
ynew = model_GNB.predict(Xnew)

अगला, हम इसकी सीमाओं को खोजने के लिए नए डेटा की साजिश रच रहे हैं -

plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='summer')
lim = plt.axis()
plt.scatter(Xnew[:, 0], Xnew[:, 1], c=ynew, s=20, cmap='summer', alpha=0.1)
plt.axis(lim);

अब, कोड की निम्नलिखित पंक्ति की सहायता से, हम पहले और दूसरे लेबल की पिछली संभावनाओं को पा सकते हैं -

yprob = model_GNB.predict_proba(Xnew)
yprob[-10:].round(3)

उत्पादन

array([[0.998, 0.002],
   [1.   , 0.   ],
   [0.987, 0.013],
   [1.   , 0.   ],
   [1.   , 0.   ],
   [1.   , 0.   ],
   [1.   , 0.   ],
   [1.   , 0.   ],
   [0.   , 1.   ],
   [0.986, 0.014]]
)

फायदे नुकसान

पेशेवरों

निम्नलिखित नाओवे बेयस क्लासिफायर का उपयोग करने के कुछ नियम हैं -

  • Nave Bayes वर्गीकरण को लागू करना और तेज करना आसान है।

  • यह लॉजिस्टिक रिग्रेशन जैसे विवेकशील मॉडल की तुलना में अधिक तेजी से जुटेगा।

  • इसके लिए कम प्रशिक्षण डेटा की आवश्यकता होती है।

  • यह प्रकृति में अत्यधिक स्केलेबल है, या वे भविष्यवाणियों और डेटा बिंदुओं की संख्या के साथ रैखिक पैमाने पर हैं।

  • यह संभाव्य भविष्यवाणियां कर सकता है और निरंतर और साथ ही असतत डेटा को संभाल सकता है।

  • Nave Bayes वर्गीकरण एल्गोरिथ्म का उपयोग बाइनरी के साथ-साथ बहु-वर्ग वर्गीकरण समस्याओं दोनों के लिए किया जा सकता है।

विपक्ष

निम्नलिखित नाओवे बेयस के क्लासिफायर का उपयोग करने के कुछ विचार हैं -

  • नाओवे बेयस वर्गीकरण की सबसे महत्वपूर्ण विशेषताओं में से एक इसकी मजबूत विशेषता स्वतंत्रता है क्योंकि वास्तविक जीवन में सुविधाओं का एक सेट होना लगभग असंभव है जो एक दूसरे से पूरी तरह से स्वतंत्र हैं।

  • Na issueve Bayes वर्गीकरण के साथ एक और मुद्दा इसकी 'शून्य आवृत्ति' है, जिसका अर्थ है कि अगर किसी श्रेणी में परिवर्तनशील चर की श्रेणी है, लेकिन प्रशिक्षण डेटा सेट में नहीं देखा जा रहा है, तो Naïve Bayes मॉडल इसे शून्य संभावना बताएगा और यह बनाने में असमर्थ होगा भविष्यवाणी।

Na ofve Bayes वर्गीकरण के अनुप्रयोग

Naïve Bayes वर्गीकरण के कुछ सामान्य अनुप्रयोग निम्नलिखित हैं -

Real-time prediction - इसके कार्यान्वयन में आसानी और तेजी से गणना के कारण, इसका उपयोग वास्तविक समय में भविष्यवाणी करने के लिए किया जा सकता है।

Multi-class prediction - Na postve Bayes वर्गीकरण एल्गोरिथ्म का उपयोग लक्ष्य चर के कई वर्गों की पिछली संभावना की भविष्यवाणी करने के लिए किया जा सकता है।

Text classification- मल्टी-क्लास भविष्यवाणी की विशेषता के कारण, Na Bayve Bayes वर्गीकरण एल्गोरिदम पाठ वर्गीकरण के लिए अच्छी तरह से अनुकूल हैं। यही कारण है कि इसका उपयोग स्पैम-फ़िल्टरिंग और सेंटीमेंट विश्लेषण जैसी समस्याओं को हल करने के लिए भी किया जाता है।

Recommendation system - सहयोगी फ़िल्टरिंग जैसे एल्गोरिदम के साथ, Na Bayve Bayes एक अनुशंसा प्रणाली बनाता है जिसका उपयोग अनदेखी जानकारी को फ़िल्टर करने के लिए किया जा सकता है और मौसम की भविष्यवाणी करने के लिए एक उपयोगकर्ता दिए गए संसाधन को पसंद करेगा या नहीं।