دسته‌بندی‌کننده بیز ساده

**دسته‌بندی‌کننده بیز ساده**  در یادگیری ماشین به گروهی از دسته‌بندی‌کننده‌های ساده بر پایه احتمالات گفته می‌شود که با فرض استقلال متغیرهای تصادفی و براساس قضیه بیز ساخته می‌شوند. به‌طور ساده روش بیز روشی برای دسته‌بندی پدیده‌ها، بر پایه احتمال وقوع یا عدم وقوع یک پدیده است. این روش از ساده‌ترین الگوریتم‌های پیش‌بینی است که دقت قابل قبولی هم دارد. دقت آن را می‌توان با استفاده از برآورد چگالی کرنل به صورت قابل توجهی بالا برد. شیوه یادگیری در روش بیز ساده از نوع یادگیری با نظارت است. این روش در دهه ۱۹۶۰ در میان دانشمندان بازیابی اطلاعات توسعه یافت و هنوز هم از روش‌های محبوب در دسته‌بندی اسناد به‌شمار می‌آید.

بیز ساده فرض را بر استقلال متغیرهای پیش‌بینی می‌گذارد از این رو بیز ساده یا بیز ساده‌لوح خوانده می‌شود. برای نمونه در مسئله پیش‌بینی یک میوه (این میوه مثلاً ممکن است پرتقال باشد) اگر میوه نارنجی و کروی با شعاع حدود ده سانتی‌متر باشد و به شرطی که این احتمالات به درستی از همدیگر مستقل باشند بیز ساده در تشخیص اینکه این میوه پرتقال است یا نه به‌درستی عمل خواهد کرد.

برنامه‌های کاربردی بسیاری هستند که پارامترهای نایو بیز را تخمین می‌زنند، بنابراین افراد بدون سروکار داشتن با تئوری بیز می‌توانند از این امکان به منظور حل مسایل مورد نظر بهره ببرند. با وجود مسائل طراحی و پیش فرض‌هایی که در خصوص روش بیز وجود دارد، این روش برای طبقه‌بندی کردن بیشتر مسایل در جهان واقعی، مناسب است.

## مدل‌سازی احتمالی
اگر n متغیر ورودی داشته باشیم یعنی \mathbf{x} = (x_1, \dots, x_n) و خروجی \mathbf{y} از یک مجموعه *<math>K</math>* عضوی باشد، هدف از مدل‌سازی پیدا کردن احتمال مشروط هر کدام از این K دسته است یعنی p(C_k \mid x_1, \dots, x_n)\, . طبق قانون بیز این احتمال برابر است با

p(C_k \mid \mathbf{x}) = \frac{p\left(C_k\,,\,\mathbf{x}\right)}{p(\mathbf{x})} \, \propto p\left(C_k\,,\,\mathbf{x}\right)

به عبارت دیگر احتمال مشروط  p(C_k \mid x_1, \dots, x_n)\, به توزیع توأم \mathbf{x} و  C_k بستگی دارد. طبق قانون زنجیره‌ای این توزیع توأم برابر است با:


\begin{align}
p(C_k, x_1, \dots, x_n) & = p(x_1, \dots, x_n, C_k) \\
p(C_k, x_1, \dots, x_n) & = p(x_1 \mid x_2, \dots, x_n, C_k)\,p(x_2, \dots, x_n, C_k) \\
p(C_k, x_1, \dots, x_n) & = p(x_1 \mid x_2, \dots, x_n, C_k)\,p(x_2 \mid x_3, \dots, x_n, C_k)\,p(x_3, \dots, x_n, C_k) \\
p(C_k, x_1, \dots, x_n) & = \dots \\
p(C_k, x_1, \dots, x_n) & = p(x_1 \mid x_2, \dots, x_n, C_k)\,p(x_2 \mid x_3, \dots, x_n, C_k) \dots   p(x_{n-1} \mid x_n, C_k)\,p(x_n \mid C_k) p(C_k) \\
\end{align}


حال اگر فرض کنیم هر متغیری نسبت به متغیرهای دیگر به شرط دسته C_k مستقل است یعنیp(x_i \mid x_{i+1}, \dots ,x_{n}, C_k ) = p(x_i \mid C_k)\,  به نتیجه پایین می‌رسیم:


\begin{align}
p(C_k \mid x_1, \dots, x_n) & \varpropto p(C_k, x_1, \dots, x_n) \\
p(C_k, x_1, \dots, x_n) & = p(C_k) \ p(x_1 \mid C_k) \ p(x_2\mid C_k) \ p(x_3\mid C_k) \ \cdots \\
p(C_k, x_1, \dots, x_n) & = p(C_k) \prod_{i=1}^n p(x_i \mid C_k)\,
\end{align}


با نرمال‌سازی عبارت قبلی می‌توان توزیع احتمال مشروط را پیدا کرد، در معادله پایین Z = p(\mathbf{x}) = \sum_k p(C_k) \ p(\mathbf{x} \mid C_k) همان ضریب نرمال‌سازی است:

p(C_k \mid x_1, \dots, x_n) = \frac{1}{Z} p(C_k) \prod_{i=1}^n p(x_i \mid C_k)

اگر هدف پیدا کردن محتملترین دسته باشد، به ضریب نرمال‌سازی یعنی Z نیازی نیست:

\hat{y} = \underset{k \in \{1, \dots, K\}}{\operatorname{argmax}} \ p(C_k) \displaystyle\prod_{i=1}^n p(x_i \mid C_k).

### تخمین پارامترها
برای مدلسازی **دسته‌بندی‌کننده بیز ساده** برای تمام kها به تخمین p(C_k) و  p(x_i \mid C_k) نیاز داریم. p(C_k) به سادگی با حساب درصد داده‌هایی که متعلق به کلاس  C_k هستند بدست می‌آید. برای بدست آوردن p(x_i \mid C_k) راه‌های مختلفی وجود دارد، تخمین توزیع چند جمله‌ای یا توزیع طبیعی روش‌هایی متداول برای این کار هستند.

در روش تخمین توزیع طبیعی، p(x_i \mid C_k) را با یک توزیع طبیعی با میانگین \mu_{i,k} و واریانس \sigma^2_{i,k} تخمین می‌زنیم و \mu_{i,k} و \sigma^2_{i,k} را از طریق درست نمایی بیشینه بدست می‌آوریم:


p(x_i=v \mid C_k)=\frac{1}{\sqrt{2\pi\sigma^2_{i,k}}}\,\exp\left( -\frac{(v-\mu_{i,k})^2}{2\sigma^2_{i,k}} \right)


اگر x_i گسسته باشد، توزیع p(x_i = v \mid C_k) را می‌توان با یک توزیع چند جمله‌ای تخمین زد.

## مثال‌ها
### بازی گلف
در این مثال داده‌هایی از شخصی داریم که به ما می‌گوید که در شرایط مختلف آب و هوایی این شخص گلف بازی می‌کند یا خیر.

دسته‌بندی‌کننده با استفاده از این داده‌ها به جداول زیر می‌رسد. در هر جدول احتمال شرایط مختلف آب و هوایی به شرط این که شخص گلف بازی کند یا نکند آمده است.

فرض کنید هوا بارانی، طوفانی، سرد و مرطوب باشد. حال می‌خواهیم مشخص کنیم که این شخص گلف بازی می‌کند یا خیر. فرض کنید x_1 معادل بارانی بودن، x_2 معادل طوفانی بودن، x_3 معادل سرد بودن و x_4 معادل مرطوب بودن باشد. همچنین C_1 معادل بازی کردن و C_2 معادل بازی نکردن باشد. در این صورت داریم

\begin{align}
&p(C_1 \mid \mathbf{x}) \propto p(C_1) p(x_1\mid C_1) p(x_2\mid C_1)p(x_3\mid C_1)p(x4\mid C_1) = \frac{9}{14}\times \frac{2}{9}\times \frac{3}{9}\times \frac{3}{9}\times \frac{3}{9} \approx 0.0053 \\
&p(C_2 \mid \mathbf{x}) \propto p(C_2) p(x_1\mid C_2) p(x_2\mid C_2)p(x_3\mid C_2)p(x4\mid C_2) = \frac{5}{14}\times \frac{3}{5}\times \frac{3}{5}\times \frac{1}{5}\times \frac{4}{5} \approx 0.02 \\
&\Longrightarrow p(C_2\mid \mathbf{x}) > p(C_1\mid \mathbf{x}) \\
\end{align} 

پس دسته‌بندی‌کننده برچسب 
C_2
 را انتخاب خواهد کرد. در نتیجه شخص با این شرایط گلف بازی نخواهد کرد.

## مزایا و معایب
تحقیقاتی در سال ۲۰۰۴ دلایل نظریه‌ای برای رفتارهای غیر منطقی بیز مطرح کرد و همچنین در سال ۲۰۰۶ مشاهدات فراگیری به منظور مقایسه این روش با سایر روش‌های طبقه‌بندی مانند boosted trees و جنگل تصادفی (random forests) انجام شد که بر کارا بودن این روش صحه گذاشتند.

از مزایای این روش می‌توان به موارد زیر اشاره کرد:
* دسته‌بندی کردن داده‌های آزمایشی آسان و سریع است. همچنین زمانی که تعداد دسته‌ها از دو بیشتر باشد نیز عملکرد خوبی از خودش نشان می‌دهد.
* تا زمانی که شرط مستقل بودن برقرار باشد، یک دسته‌بندی‌کننده بیز ساده عملکرد بهتری نسبت به مدل‌های دیگر مانند رگرسیون لجستیک دارد و به حجم آموزش کمی نیاز دارد.
* در حالتی که ورودی‌هایمان دسته‌بندی شده باشند این روش عملکرد بهتری نسبت به حالی دارد که ورودی‌هایمان عدد باشند. برای حالتی که ورودی عدد باشد معمولاً فرض می‌شود که از توزیع نرمال پیروی می‌کنند. (که فرض قوی‌ای است)

علاوه بر مزایایی که این دسته‌بندی‌کننده دارد معایبی نیز دارد، از جمله:
* در صورتی که ورودی‌مان دسته‌بندی شده باشد و در مرحلهٔ یادگیری دسته‌ای وجود داشته باشد که دسته‌بندی‌کننده هیچ داده‌ای از آن دسته مشاهده نکرده باشد، دسته‌بندی‌کننده احتمالی برابر صفر برای آن دسته در نظر می‌گیرد و قادر به دسته‌بندی کردن نخواهد بود. برای حل این مشکل می‌توان از تکنیک‌های هموارسازی مانند تخمین‌گر لاپلاس استفاده کرد.
* یکی دیگر از معایب این دسته‌بندی‌کننده این است که دستیابی به شرط مستقل بودن در دنیای واقعی تقریباً غیرممکن است.

## کاربردها
برخی از کاربردهای این دسته‌بندی‌کننده به شرح زیر است:
* دسته‌بندی‌کننده متن: دسته‌بندی‌کننده‌های بیز ساده عموماً در دسته‌بندی متن کاربرد دارند و نسبت به روش‌های دیگر درصد موفقیت بیشتری در این زمینه دارند.
* فیلترینگ اسپم: یکی از معروف‌ترین کاربردهای این دسته‌بندی‌کننده فیلترینگ اسپم است. در این روش فیلترینگ از دسته‌بندی‌کننده بیز ساده برای شناسایی ایمیل‌های اسپم استفاده می‌شود. امروزه بسیاری از سرویس‌دهندگان پست‌های الکترونیک از فیلترینگ اسپم بیزی استفاده می‌کنند. این روش در نرم‌افزارهای فیلتر اسپم نیز استفاده می‌شود. فیلترهای سمت سرور مانند Bogofilter, SpamBayes, SpamAssassin, DSPAM و ASSP نیز از تکنیک‌های فیلتر اسپم بیزی استفاده می‌کنند.
* سامانه توصیه‌گر: دسته‌بندی‌کننده بیز ساده به همراه پالایش گروهی سامانهٔ توصیه‌گری را تشکیل می‌دهد که از تکنیک‌های یادگیری ماشین و داده‌کاوی برای فیلتر کردن اطلاعات دیده نشده و پیش‌بینی نظر یک کاربر در مورد اقلام مختلف استفاده می‌کند.
* تحلیل احساسات: از این دسته‌بندی‌کننده در تحلیل احساسات متون و نظرات مختلف (برای مثال در شبکه‌های اجتماعی) استفاده می‌شود.

## جستارهای وابسته
* یادگیری بانظارت
* رگرسیون لجستیک
* پردازش زبان‌های طبیعی
* قانون بیز

## منابع

* 
* Book Chapter: Naive Bayes text classification, Introduction to Information Retrieval
* Naive Bayes for Text Classification with Unbalanced Classes
* Benchmark results of Naive Bayes implementations 
* Hierarchical Naive Bayes Classifiers for uncertain data (an extension of the Naive Bayes classifier).

رده:مقاله‌های نیازمند پیوند
رده:آمار بیزی
رده:الگوریتم‌های دسته‌بندی
رده:دسته‌بندی آماری