Naive Bayes
آموزش Naive Bayes: قضیه بیز، فرض استقلال ویژگیها، انواع و کاربرد در متن
Naive Bayes چیست؟
دستهبندی مبتنی بر قضیه بیز از نظریه احتمال:
P(کلاس | ویژگیها) = P(ویژگیها | کلاس) × P(کلاس) / P(ویژگیها)
یعنی: «با دیدن این ویژگیها، احتمال هر کلاس چقدر است؟» کلاسی با بیشترین احتمال انتخاب میشود.
چرا «Naive» (سادهلوح)؟
چون فرض میکند ویژگیها مستقل از هماند! این فرض تقریباً همیشه غلط است (متراژ و قیمت خانه مستقل نیستند!) ولی مدل باز هم شگفتآور خوب کار میکند.
مثال: اسپم یا نه؟
اگر کلمه «جایزه» در ایمیل است:
- P(«جایزه» | اسپم) = ۰.۳ — در ۳۰٪ اسپمها هست
- P(«جایزه» | عادی) = ۰.۰۱ — در ۱٪ ایمیلهای عادی
- پس احتمال اسپم بودن خیلی بالا میرود!
انواع Naive Bayes
| نوع | برای چه دادهای |
|---|---|
GaussianNB | ویژگیهای عددی پیوسته |
MultinomialNB | شمارش کلمات (متن!) |
BernoulliNB | ویژگیهای باینری ۰/۱ |
پیادهسازی
from sklearn.naive_bayes import GaussianNB
model = GaussianNB()
model.fit(X_train, y_train)
probs = model.predict_proba(X_test)
مزایا و معایب
| مزایا | معایب |
|---|---|
| فوقالعاده سریع | فرض استقلال غالباً غلط |
| با داده کم هم کار میکند | تخمین احتمال خام ضعیف |
| عالی برای متن و دستهبندی | ویژگیهای همبسته را بد مدیریت میکند |
برای دستهبندی متن (اخبار، نظرات، اسپم)، MultinomialNB نقطه شروع کلاسیک و سریع است.
جمعبندی
- قضیه بیز + فرض استقلال = دستهبند سریع
- Gaussian برای عددی، Multinomial برای متن
- خط پایه عالی برای مسائل متنی
این مبحث بخشی از دوره آموزش کامل ماشین لرنینگ است.