الگوریتم Naive Bayes در یادگیری ماشین

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

طبقه بندی کننده های Naive Bayes ،مجموعه ای از الگوریتم های طبقه بندی بر اساس تئوری Bayes است. Naive Bayes یک الگوریتم تنها نیست بلکه یک خانواده از الگوریتم‌هاست که در یک اصل مشترک می‌باشند. هر جفت ویژگی طبقه بندی‌شده در الگوریتم‌های بیز مستقل از یکدیگر است.

بهتر است بخوانید : یادگیری ماشین – یادگیری نظارت شده یا Supervised Learning

طبقه بندی یا classifier چیست ؟

طبقه بندی یا classifier یک مدل در یادگیری ماشین است که برای تفکیک اشیای مختلف بر اساس ویژگی‌های خاص مورد استفاده قرار می گیرد.

تئوری بیز

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

تئوری بیز 

  • (P(A احتمال پیشین A است(احتمال پیشین ، یعنی احتمال وقوع یک پیشامد قبل از مشاهده ی  شواهد). شواهد یا evidence ، ارزش ویژگی یک نمونه ناشناخته است(در اینجا این رخ داد B است).
  • (P(A|B احتمال پسین B است که به معنی احتمال وقوع حادثه پس از مشاهده شواهد(evidence) می باشد.

مثالی از الگوریتم Naive Bayes

یک مجموعه ی داده را در نظر بگیرید که شرایط آب‌و‌‌هوا را برای برگزاری یک بازی گلف توصیف می کند. با توجه به شرایط در صورت مناسب بودن آب و هوا برای بازی Play Golf باری انجام می شود(Yes) و در صورت نامناسب بودن آب و هوا بازی انجام نمی شود(No).

جدولی از مجموعه داده ما در زیر آورده شده است :

Naive Bayes Classifiers

مجموعه داده (dataset) را می توانیم به دو بخش ماتریس ویژگی‌‌ها و پاسخ تقسیم کنیم.

  • ماتریس ویژگی، شامل همه ی ردیف های مجموعه داده می شود که در آن، ردیف ها از ویژگی های به هم پیوسته تشکیل شده اند. در مجموعه‌‌داده ی بالا ‘Outlook’ ،‘Temperature’، ‘Humidity’ و‘Windy’ از این نوع می باشند.
  • بردار پاسخ در مجموعه‌داده ی بالا شامل همه ی خروجی های ماتریس ویژگی است که در ستون Play Golf نشان داده می شود.
فرض اساسی Naive Bayes در مورد ویژگی ها به صورت زیر است:
  • مستقل
  • یکسان

با توجه به مجموعه داده بالا ، این مفهوم را می توان درک کرد:

  • فرض می کنیم ویژگی ها مستقل از یکدیگر هستند.به عنوان مثال ، “Hot” بودن دما هیچ ارتباطی با humidity(رطوبت هوا) ندارد یا اگر outlook در آن روز “Rainy”(بارانی) باشد ،هیچ تاثیری بر بادها ندارد. از این رو ، ویژگی ها به هم وابسته نیستند.
  • همه ی ویژگی‌ها دارای اهمیت و وزن یکسان می‌باشند.  به عنوان مثال شما با داشتن دو مقدار humidity و outlook  نمی‌‌توانید به صورت دقیق وضعیت آب و هوا را پیش بینی کنید. هیچکدام از ویژگی بی ربط و بی اهمیت نیستند و هرکدام از آن ها در پیش‌بینی به یک اندازه موثر می باشند.

پیش فرض های مطرح شده Naive Bayes به طور کلی در موقعیت های واقعی درست نیستند.در حقیقت ، فرض مستقل بودن هرگز درست نیست،اما اغلب در تمرین و عمل به خوبی کار می کند.

حال، با توجه به مجموعه داده بالا، می توانیم تئوری Bayes را به صورت زیر بازنویسی کنیم:

قضیه بیز

که ، y متغیر کلاس است و X یک بردار ویژگی وابسته است (اندازه n) که در آن:

Naive Bayes Classifier

به عنوان مثال برای واضح تر شدن مساله ،بردار ویژگی(X) و خروجی (y) متناظر آن را به صورت زیر می توان نوشت:

الگوریتم Naive Bayes در یادگیری ماشین

در این مثال (P(y|X با توجه به شرایط آب و هوایی “ Rainy is outlook ”, “Temperature is hot”, “high humidity” و“no wind” به معنی احتمال بازی نکردن گلف می باشد.

حال زمان آن است تا فرض Naive را به تئوری بیز اضافه کنیم.این بدان معنی است که ویژگی ها از یکدیگر مستقل هستند. به همین خاطر شواهد را به بخش های مستقل تقسیم می کنیم.

حال ، اگر هر دو رویداد A و B مستقل باشند، داریم :

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

از این رو ، به نتیجه می رسیم:

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

که می تواند به صورت زیر بیان شود:

الگوریتم Naive Bayes در یادگیری ماشین

به دلیل ثابت ماندن مخرج برای ورودی مشخص ، می توانیم آن را حذف کنیم:

الگوریتم Naive Bayes در یادگیری ماشین

اکنون ، ما باید یک مدل طبقه بندی کننده ایجاد کنیم.برای این منظور ، احتمال مجموعه ای از ورودی های داده شده را برای تمام مقادیر ممکن از متغیر کلاس y پیدا کرده و حداکثر احتمال خروجی را بدست می آوریم. به صورت ریاصی می توان اینگونه بیان کرد:

naive-bayes-classifiers

پس از آن ما باید (P(y و (P(xi | y را بدست آوریم. توجه داشته باشید که (P (y را احتمال کلاس و (P (xi | y را نیز احتمال شرطی می نامند.طبقه بندی های مختلف naive Bayes عمدتاً با فرضیاتی که در مورد توزیع (P (xi | y ارائه می دهند متفاوت است.بیایید سعی کنیم فرمول فوق را بر روی مجموعه داده  هواشناسی بالااعمال کنیم. برای این منظور ، ما باید پیش پردازش هایی را روی مجموعه داده خود انجام دهیم.

ما باید (P (xi | yj را برای هر xi در X و yj در y  پیدا کنیم. تمام این محاسبات در جداول زیر نشان داده شده است:

الگوریتم Naive Bayes در یادگیری ماشین

 در شکل بالا ،(P (xi | yj برای هر xi در X و yj در y به صورت دستی در جداول  محاسبه کرده ایم. همانطور که مشاهده می کنید به ازای هر ویژگی یک جدول رسم شده است و تعداد Yes وNo ها به ازای هر مقدار در آن درج شده اند.به عنوان مثال احتمال بازی گلف زمانی که temperature مقدار cool دارد به این صورت است :

naive bayes classification

همچنین ، ما باید احتمالات کلاس (P (y را که در جدول آخر محاسبه شده است ، پیدا کنیم. برای رسم این جدول کافی است تعداد Yes ها و Noها را شمارش کنید .سپس برای بدست آورن احتمال (P(Yes و (P(No کافی است تعدادYes و Noها را بر تعداد کل نمونه ها تقسیم کنید که در این مثال ۱۴مورد می‌باشد.

الگوریتم Naive Bayes در یادگیری ماشین

اکنون پیش‌پردازش داده‌ها انجام شده است ومی‌توانیم آن‌ها را طبقه‌بندی کنیم.

بیایید آن را بر روی مجموعه ای جدید از ویژگی ها آزمایش کنیم ( به نام today):

naive bayes classification

احتمال بازی کردن به صورت زیر می باشد :

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

و احتمال بازی نکردن در گلف :

naive bayes classification

از آنجا که ، (P(today در هر دو احتمال مشترک است ، می توانیم (P(today را نادیده بگیریم و احتمالات را به صورت نسبی بدست آوریم:

naive bayes classification

و برای No داریم :

naive bayes classification

از این رو داریم :

naive bayes classification

این اعداد را می توان با محاسبه جمع برابر با ۱ (نرمال سازی) به یک احتمال تبدیل کرد:

naive bayes classification

و

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

پس داریم :

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

پس طبق پیش‌بینی ،بازی انجام می‌شود.

روشی که در بالا بحث کردیم برای داده های گسسته قابل استفاده است. در صورتی که داده‌ها پیوسته باشند ، ما باید در مورد توزیع مقادیر هر ویژگی فرضیاتی ارائه دهیم. طبقه بندی های مختلف Naive Bayes عمدتاً با فرضیاتی که در مورد توزیع (P (xi | y ارائه می دهند متفاوت است.

در آینده در مورد توزیع پیوسته و کدنویسی مربوط به Naive Bayes صحبت خواهیم کرد. با نظرات با ارزشتان به ما در بهتر شدن کمک کنید.

منبع : geeksforgeeks

قبلی «
بعدی »

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

مطالب اخیر