طبقه بندی کننده های 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).
جدولی از مجموعه داده ما در زیر آورده شده است :
مجموعه داده (dataset) را می توانیم به دو بخش ماتریس ویژگیها و پاسخ تقسیم کنیم.
- ماتریس ویژگی، شامل همه ی ردیف های مجموعه داده می شود که در آن، ردیف ها از ویژگی های به هم پیوسته تشکیل شده اند. در مجموعهداده ی بالا ‘Outlook’ ،‘Temperature’، ‘Humidity’ و‘Windy’ از این نوع می باشند.
- بردار پاسخ در مجموعهداده ی بالا شامل همه ی خروجی های ماتریس ویژگی است که در ستون Play Golf نشان داده می شود.
فرض اساسی Naive Bayes در مورد ویژگی ها به صورت زیر است:
- مستقل
- یکسان
با توجه به مجموعه داده بالا ، این مفهوم را می توان درک کرد:
- فرض می کنیم ویژگی ها مستقل از یکدیگر هستند.به عنوان مثال ، “Hot” بودن دما هیچ ارتباطی با humidity(رطوبت هوا) ندارد یا اگر outlook در آن روز “Rainy”(بارانی) باشد ،هیچ تاثیری بر بادها ندارد. از این رو ، ویژگی ها به هم وابسته نیستند.
- همه ی ویژگیها دارای اهمیت و وزن یکسان میباشند. به عنوان مثال شما با داشتن دو مقدار humidity و outlook نمیتوانید به صورت دقیق وضعیت آب و هوا را پیش بینی کنید. هیچکدام از ویژگی بی ربط و بی اهمیت نیستند و هرکدام از آن ها در پیشبینی به یک اندازه موثر می باشند.
پیش فرض های مطرح شده Naive Bayes به طور کلی در موقعیت های واقعی درست نیستند.در حقیقت ، فرض مستقل بودن هرگز درست نیست،اما اغلب در تمرین و عمل به خوبی کار می کند.
حال، با توجه به مجموعه داده بالا، می توانیم تئوری Bayes را به صورت زیر بازنویسی کنیم:
که ، y متغیر کلاس است و X یک بردار ویژگی وابسته است (اندازه n) که در آن:
به عنوان مثال برای واضح تر شدن مساله ،بردار ویژگی(X) و خروجی (y) متناظر آن را به صورت زیر می توان نوشت:
در این مثال (P(y|X با توجه به شرایط آب و هوایی “ Rainy is outlook ”, “Temperature is hot”, “high humidity” و“no wind” به معنی احتمال بازی نکردن گلف می باشد.
حال زمان آن است تا فرض Naive را به تئوری بیز اضافه کنیم.این بدان معنی است که ویژگی ها از یکدیگر مستقل هستند. به همین خاطر شواهد را به بخش های مستقل تقسیم می کنیم.
حال ، اگر هر دو رویداد A و B مستقل باشند، داریم :
از این رو ، به نتیجه می رسیم:
که می تواند به صورت زیر بیان شود:
به دلیل ثابت ماندن مخرج برای ورودی مشخص ، می توانیم آن را حذف کنیم:
اکنون ، ما باید یک مدل طبقه بندی کننده ایجاد کنیم.برای این منظور ، احتمال مجموعه ای از ورودی های داده شده را برای تمام مقادیر ممکن از متغیر کلاس y پیدا کرده و حداکثر احتمال خروجی را بدست می آوریم. به صورت ریاصی می توان اینگونه بیان کرد:
پس از آن ما باید (P(y و (P(xi | y را بدست آوریم. توجه داشته باشید که (P (y را احتمال کلاس و (P (xi | y را نیز احتمال شرطی می نامند.طبقه بندی های مختلف naive Bayes عمدتاً با فرضیاتی که در مورد توزیع (P (xi | y ارائه می دهند متفاوت است.بیایید سعی کنیم فرمول فوق را بر روی مجموعه داده هواشناسی بالااعمال کنیم. برای این منظور ، ما باید پیش پردازش هایی را روی مجموعه داده خود انجام دهیم.
ما باید (P (xi | yj را برای هر xi در X و yj در y پیدا کنیم. تمام این محاسبات در جداول زیر نشان داده شده است:
در شکل بالا ،(P (xi | yj برای هر xi در X و yj در y به صورت دستی در جداول محاسبه کرده ایم. همانطور که مشاهده می کنید به ازای هر ویژگی یک جدول رسم شده است و تعداد Yes وNo ها به ازای هر مقدار در آن درج شده اند.به عنوان مثال احتمال بازی گلف زمانی که temperature مقدار cool دارد به این صورت است :
همچنین ، ما باید احتمالات کلاس (P (y را که در جدول آخر محاسبه شده است ، پیدا کنیم. برای رسم این جدول کافی است تعداد Yes ها و Noها را شمارش کنید .سپس برای بدست آورن احتمال (P(Yes و (P(No کافی است تعدادYes و Noها را بر تعداد کل نمونه ها تقسیم کنید که در این مثال ۱۴مورد میباشد.
اکنون پیشپردازش دادهها انجام شده است ومیتوانیم آنها را طبقهبندی کنیم.
بیایید آن را بر روی مجموعه ای جدید از ویژگی ها آزمایش کنیم ( به نام today):
احتمال بازی کردن به صورت زیر می باشد :
و احتمال بازی نکردن در گلف :
از آنجا که ، (P(today در هر دو احتمال مشترک است ، می توانیم (P(today را نادیده بگیریم و احتمالات را به صورت نسبی بدست آوریم:
و برای No داریم :
از این رو داریم :
این اعداد را می توان با محاسبه جمع برابر با ۱ (نرمال سازی) به یک احتمال تبدیل کرد:
و
پس داریم :
پس طبق پیشبینی ،بازی انجام میشود.
روشی که در بالا بحث کردیم برای داده های گسسته قابل استفاده است. در صورتی که دادهها پیوسته باشند ، ما باید در مورد توزیع مقادیر هر ویژگی فرضیاتی ارائه دهیم. طبقه بندی های مختلف Naive Bayes عمدتاً با فرضیاتی که در مورد توزیع (P (xi | y ارائه می دهند متفاوت است.
در آینده در مورد توزیع پیوسته و کدنویسی مربوط به Naive Bayes صحبت خواهیم کرد. با نظرات با ارزشتان به ما در بهتر شدن کمک کنید.
منبع : geeksforgeeks