الگوریتم بیز ساده (Naive Bayes) یکی از الگوریتم های داده کاوی و یادگیری ماشین برای حل مسئله های طبقه بندی (Classification) است که بیشتر برای مسئله های طبقه بندی متن به کار می رود. برای نمونه از الگوریتم بیز ساده می توان برای دسته بندی ایمیل ها، آنالیز احساسات (Sentimental Analysis) و یا بر طبقه بندی مقاله های (Article) تازه به کار گرفته شود.

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

قضیه بیز

البته الگوریتم بیز ساده، یک تک الگوریتم نیست بلکه مجموعه ای از الگوریتم ها است که همگی مبتنی بر یک مفهوم  و آن هم قضیه بیز (Bayes’ Theorem) هستند. قضیه بیز یکی از مهمترین و پرکاربردترین مفاهیم نظریه آمار و احتمال است و روشی است برای دسته بندی پدیده ها، بر پایه شانس (احتمال) رخ داد یا عدم رخ داد یک پدیده است. این قضیه از آن جهت مفید است که می‌توان از طریق آن، احتمال یک پیشامد را با مشروط کردن نسبت به وقوع یا عدم وقوع یک پیشامد دیگر محاسبه کرد. در بسیاری از حالت‌ها، محاسبهٔ احتمال یک پیشامد به صورت مستقیم کاری دشوار است. با استفاده از این قضیه و مشروط کردن پیشامد مورد نظر نسبت به پیشامد دیگر، می‌توان احتمال مورد نظر را محاسبه کرد. (ویکی پدیا فارسی)

برای نمونه دو پیشامد A امروز خیس می شوم و B امروز هوابارانی خواهد بود را داریم. اکنون می خواهیم احتمال پدیده A به شرط رخ دادن پدیده B را محاسبه کنیم. از آنجا که B رخ داده است، بر پایه شکل زیر بخش هاشور خورده، یعنی اشنراک A و B برای پدیده A اهمیت دارد. بنابراین اکنون به نظر می رسد احتمال رخ دادن A به شرط B بر پایه معادله زیر باشد.

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

در نهایت می توانیم معادله دوم را به صورت زیر بازنویسی کنیم که همان معادله قضیه بیز ساده است.

شکل بالا معادله قضیه بیز را نشان می دهد که در آن به دنبال احتمال رخ دادن پدیده A به شرط رخ دادن پدیده B هستیم که با نماد (P(A|B نشان داده می شود. در صورت کسر، احتمال بروز پدیده B به شرط پدیده A در احتمال بروز پدیده A ضرب شده و حاصل بر احتمال رخ دادن پدیده B تقسیم می شود.

  • (P(A|B را posterior نیز می نامند که همان احتمال رخ دادن پدیده A به شرط رخ دادن پدیده B است.
  • (P(B|A را likelihood نیز می گویند که احتمال رخ داد B به شرط رخ داد A است.
  • (P(A و (P(B را prior نیز می گویند که احتمال رخ دادن پدیده های A و B هستند.

نمونه کاربرد قضیه بیز

در شکل زیر دوباره به سراغ مجموعه داده بازی کردن (Yes) یا بازی نکردن (No) تنیس دریک روز می رویم تا چگونگی کاربرد قضیه بیز در طبقه بندی داده ها را نشان دهیم. در شکل زیر ۱۴ نمونه از روزهای گوناگون را داریم که برای هر نمونه چهار ویژگی هست و در ستون پایانی کلاس یا برچسب آن نمونه که Yes یا No است نشان داده شده است.

با توجه به این مجموعه داده، ۹ نمونه از ۱۴ نمونه دارای برچسب Yes هستند، بنابراین احتمال بازی کردن برابر با 9/14 = (P(Play = Yes است و از این رو احتمال بازی نکردن برابر با 5/14 = (P(Play = No است. بنابراین می توانیم معادله قضیه بیز را برای این مجموعه داده به صورت زیر بازنویسی کنیم که در آن (P(y|X یعنی احتمال بازی کردن به شرط X است.

از میان داده های نیاز برای حل مسئله، تنها (P(X|y مانده است و برای بدست آوردن آن باید داده های بالا را بر اساس هر کدام از چها ویزگی به زیر جدول هایی مانند زیر بشکنیم. برای نمونه جدول ۱ احتمال هر یک از مقدارهای ويژگی Outlook را بر اساس بازی کردن یا بازی نکردن نشان می دهد.

در مفاهیم آمار و احتمال، به هر یک از چهار جدول پایین (دارای شماره های ۱ تا ۴)، Frequency Table می گویند. در نوشته پسین نمونه های دیگری از قضیه بیز و Frequency Table را برای درک بیشتر گفته ایم.

برای نمونه احتمال آفتابی بودن هوا به شرط بازی کردن برابر با 2/9 است. توجه کنید تنها ۹ نمونه از ۱۴ نمونه برابر بازی کردن (مقدار Yes) هستند و از این میان تنها ۲ نمونه مقدار ویژگی آنها برابر با Sunny است، پس احتمال آفتابی بودن هوا به شرط بازی کردن که به صورت (P(Outlook=Sunny| Play=Yes نشان داده می شود، برابر با 2/9 است. در این نماد X=Outlook=Sunny است.

شکل بالا پنج جدول را نشان می دهد که چهار جدول نخست هر یک احتمال (P(X|y را نشان می دهد که بر اساس هر مسئله ای، مقدار در صورت در احتمال (P(Yes یا (P(y ضرب می شود. در شکل زیر نمونه های دیگری از احتمال (P(X|y یا احتمال (P(X|n نشان داده شده است. برای نمونه، احتمال آفتابی بودن هوا به شرط بازی نکردن با نماد (P(Outlook=Sunny | Play=No نشان داده شده است. پنجمین جدول نیز احتمال های (P(Play=Yes و (P(Play=No را نشان می دهد.

بنابراین با توجه به آنچه که گفته شد احتمال بازی کردن به شرط آفتابی بودن هوا از معادله زیر بدست می آید که مقدار آن برابر با شماره 0.60 خواهد بود. در معادله زیر، (P(Sunny|Yes برابر با احتمال آفتابی بودن به شرط بازی کردن است که گفتیم مقدار آن برابر با 3/9 است. همچنین مقدارهای (P(Yes برابر با 9/14 و (P(No برابر با 5/14 است.

کاربرد الگوریتم بیز

الگوریتم بیز در یادگیری ماشین و داده کاوی برای طبقه بندی چند کلاسی (و همچنین مانند بالا طبقه بندی دودویی یا دو کلاسی) کاربرد دارد ولی الگوریتم درخت تصمیم برای مسئله های طبقه بندی دودویی به کار گرفته می شود. الگوریتم بیز برای پیش بینی کلاس های گوناگون بر پایه ویژگی های گوناگون کاربرد دارد.

در کنار اینکه الگوریتم بیز برای طبقه بندی چند کلاسی کاربرد دارد، آن را می توان به ویژه برای کاربردهای طبقه بندی نوشته ها (Text Classification) به کار گرفت. همانگونه که گفتیم سایتی دارید که نویسنده های گوناگون نوشته هایی با محتوای گوناگون را در آن می نویسند و یا سایت خبری دارید که خبرهای گوناگون انتشار داده می شود و شما می خواهید خودکار نوشته برای نمونه به یکی از دسته های تاریخی، هوش مصنوعی، ورزشی، روانشناسی، سیاسی، مذهبی، ادبیات، باستان شناسی یا هر دسته دیگری تعلق گیرد.

در نام Naive Bayes واژه Naive (ساده) بدین مفهوم است که در این قضیه، هر ویژگی، مستقل (Independent) از ویژگی دیگر است، بنابراین تغییر در مقدار یک ویزگی، تاثیر یا تغییر سر راستی (مستقیمی) بر روی مقدار هر کدام یک از ویژگی های دیگر به کار گرفته شده در الگوریتم ندارد. الگوریتم بیز، یک الگوریتم آسان (ساده) و سریع است ولی بسیار توانمند و پرکاربرد است، به گونه ای که از این الگوریتم برای پیش بینی های بلادرنگ (Real Time Prediction) به کار گرفته می شود.

الگوریتم بیز ساده (Naive Bayes) روشی آماری (Statistical Technique) برای فیلتر کردن رایانانه ها (Email Filtering) است. در فیلتر سازی رایانامه ها برای شناسایی هرز نامه ها (Spam) ها، واژه ها/ویژگی ها به کار گرفته می شود، این رویکردی است که در طبقه بندی نوشته ها (Text Classification) به کار می رود. در این باره، الگوریتم طبقه بندی بیز، از توکن ها (Tokens) که معمولا واژگان (Words) یا چیزهای دیگر مانند جمله ها هستند برای شناسایی یا برچسب گذاری هرزنامه بودن یا نبود یک رایانامه کمک می گیرد. در واقع در الگوریتم بیز ساده، به دنبال احتمال این هستیم که آیا رایانامه هرزنامه هست یا نه؟