Naive Bayes

آموزش Naive Bayes: قضیه بیز، فرض استقلال ویژگی‌ها، انواع و کاربرد در متن

Naive Bayes چیست؟

دسته‌بندی مبتنی بر قضیه بیز از نظریه احتمال:

P(کلاس | ویژگی‌ها) = P(ویژگی‌ها | کلاس) × P(کلاس) / P(ویژگی‌ها)

یعنی: «با دیدن این ویژگی‌ها، احتمال هر کلاس چقدر است؟» کلاسی با بیشترین احتمال انتخاب می‌شود.

چرا «Naive» (ساده‌لوح)؟

چون فرض می‌کند ویژگی‌ها مستقل از هم‌اند! این فرض تقریباً همیشه غلط است (متراژ و قیمت خانه مستقل نیستند!) ولی مدل باز هم شگفت‌آور خوب کار می‌کند.

مثال: اسپم یا نه؟

اگر کلمه «جایزه» در ایمیل است:

انواع 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 نقطه شروع کلاسیک و سریع است.

جمع‌بندی

این مبحث بخشی از دوره آموزش کامل ماشین لرنینگ است.

ابزارهای مرتبط