الگوریتم دسته بندی بیز ساده Naive Bayes


الگوریتم دسته بندی بیز ساده Naive Bayes

مقدمه ای بر الگوریتم دسته بندی بیز ساده Naive Bayes :

الگوریتم دسته بندی بیز ساده Naive Bayes : عدم اطمینان و احتمال در پدیده ­های مختلف منجر به این شده که یادگیری ماشین در هوش مصنوعی باید با داده ­هایی کار کند که در بسیاری از موارد بزرگ است اما با در نظر گرفتن داده­ های از دست رفته و مدیریت این گونه داده­ ها خواهد بود. دقیقاً مانند انسان­ها، کامپیوتر نیز باید ریسک کند و به آینده ­ای که قطعی نیست فکر کند.

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

الگوریتم دسته بندی بیز ساده Naive Bayes

Naive bayes در یادگیری ماشین

Naive bayes در یادگیری ماشین : این یک روش طبقه ­بندی بر اساس قضیه بیز با فرض استقلال در بین پیش­بینی­ کننده ­ها است. به زبان ساده، یک طبقه ­بند Naive Bayes فرض می­کند که وجود یک ویژگی خاص در یک کلاس با وجود ویژگی دیگر ارتباطی ندارد. به عنوان مثال، میوه ­ای اگر قرمز، گرد و حدود 3 اینچ قطر داشته باشد، ممکن است یک سیب در نظر گرفته شود. حتی اگر این ویژگی ­ها به یکدیگر یا ویژگی­ های دیگری بستگی داشته باشند، همه این خصوصیات به طور مستقل در احتمال سیب بودن این میوه نقش دارند و به همین دلیل به “بیز ساده” معروف است. ساخت مدل دسته بندی بیز ساده Naive Bayes آسان است و مخصوصاً برای مجموعه داده ­های بسیار بزرگ مفید است. همراه با سادگی، ثابت شده که این الگوریتم حتی از روش­های طبقه­بندی بسیار پیچیده نیز پیشی می­گیرد.

ویژگی های naive bayes

ویژگی های naive bayes : الگوریتم دسته بندی بیز ساده Naive Bayes از دو کلمه Naive و Bayes تشکیل شده است که می تواند به صورت زیر توصیف شود:  به آن Naive می­گویند زیرا فرض می­کند که وقوع یک ویژگی خاص مستقل از وقوع سایر ویژگی­ها باشد. مانند اینکه اگر میوه بر اساس رنگ ، شکل و طعم مشخص شود ، میوه قرمز ، کروی و شیرین به عنوان سیب شناخته می شود. از این رو هر ویژگی به صورت جداگانه کمک می­کند تا تشخیص دهد که یک سیب است و بدون اینکه به یکدیگر وابسته باشد. بیز: به آن Bayes گفته می­شود زیرا به اصل قضیه بیز بستگی دارد.

به عنوان مثال ، ممکن است سعی کنید عملکرد یک قهرمان المپیک را در طول بازی های المپیک بعدی بر اساس نتایج گذشته پیش­بینی کنید. حتی اگر او در مسابقات قبل برنده بوده باشد، به این معنی نیست که این بار برنده خواهند شد. عوامل غیرقابل پیش بینی مانند مشاجره با همسرش امروز صبح یا عدم وقت برای صرف صبحانه ممکن است بر نتایج او تأثیر بگذارد. بنابراین، عدم اطمینان در مدل سازی یادگیری ماشین جدایی ناپذیر است، زیرا  زندگی پیچیده است و هیچ چیز کامل نیست. سه منبع اصلی عدم اطمینان در یادگیری ماشین، داده های پر از نویز، داده ناقص مسئله و مدل­های ناقص است.

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

الگوریتم دسته بندی بیز ساده Naive Bayes

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

الگوریتم دسته بندی بیز ساده Naive Bayes

فرض کنید:

الگوریتم دسته بندی بیز ساده Naive Bayes

برداری از ویژگی‌ را بیان کند که به صورت متغیرهای مستقل هستند. به این ترتیب می‌توان احتمال  به صورت زیر در نظر گرفت (احتمال رخداد به ازای  های مختلف):

الگوریتم دسته بندی بیز ساده Naive Bayes

قضیه بیز را براساس احتمالات پیشامدهای «پیشین» (Prior)، «پسین» (Posterior)، «درست نمایی» (Likelihood ) و «شواهد» (Evidence) به صورت زیر می­توان نشان داد:

الگوریتم دسته بندی بیز ساده Naive Bayes

احتمال پیشین A است (احتمال پیشین، یعنی احتمال وقوع یک پیشامد قبل از مشاهده­ ی  شواهد).

شواهد (evidence )، ارزش ویژگی یک نمونه ناشناخته است (در اینجا این رخ داد B است).

احتمال پسین B است که به معنی احتمال وقوع حادثه پس از مشاهده شواهد(evidence) می باشد.

مثال naive bayes

مثال naive bayes : احتمال بیزی به ما امکان محاسبه احتمالات شرطی را می­دهد. این بسیار مفید است زیرا ما را قادر می­سازد تا از برخی دانش­ هایی که قبلاً در اختیار داشته ­ایم برای محاسبه احتمال یک رویداد مرتبط استفاده کنیم. قاعده بیز معمولاً در نظریه احتمالات برای محاسبه احتمال شرطی استفاده می­شود. به عنوان مثال، بگذارید برای مشاوره یک ورزشکار در مورد رژیم غذایی قبل از بازی از این الگوریتم استفاده می­شود و الگوریتم این داده ­ها را ارائه می­دهد:

در80 درصد از مواقع، اگر برنده مسابقه شود، صبحانه خوبی خورده. P(breakfast|win)

در 60 درصد از اوقات، او یک صبحانه خوب دارد.این حالت.B   P(breakfast)

در 20 درصد از اوقات، او در یک مسابقه پیروز می­شود. این حالتA . P(win)

با استفاده از قانون Bayes ، می­توانیم:

P (win | breakfast) = 0.8

P(breakfast) = 0.6

P(win) = 0.2

الگوریتم دسته بندی بیز ساده Naive Bayes

یعنی احتمال برنده شدن وی در مسابقه با صرف صبحانه مفصلی 26٪ است. واضح است که یک بار اضافی از کربوهیدرات­ها به او تحمل بیشتری در طول مسابقات می­دهد. آنچه مهم است این است که ما نه تنها می­توانیم اثبات کنیم که شواهد چگونه احتمال وقوع را تحت تأثیر قرار می­دهند، بلکه میزان آن را نیز می­دانند.

Naive bayes در یادگیری ماشین

Naive bayes در یادگیری ماشین : الگوریتم دسته بندی بیز ساده Naive Bayes، یک الگوریتم ساده یادگیری ماشین تحت نظارت است که از قضیه بیز با فرضیه استقلال قوی بین ویژگی­ها برای تهیه نتایج استفاده می­کند. این بدان معنی است که الگوریتم فقط فرض می­کند که هر متغیر ورودی مستقل است. این مدل حتی با داده ­های ناکافی یا نامناسب نیز به خوبی کار می­کند، بنابراین نیازی نیست که صدها هزار نمونه آن را “تغذیه” کند قبل از اینکه بتوانید چیزی منطقی از آن دریافت کنید.

انواع طبقه بندی الگوریتم دسته بندی بیز ساده Naive Bayes

انواع طبقه بندی الگوریتم دسته بندی بیز ساده Naive Bayes : بسته به نوع داده هر ویژگی، روش متفاوتی مورد نیاز است. به طور خاص، داده­ ها برای تخمین پارامترها از یکی از سه توزیع احتمال استاندارد استفاده می­شوند. در مورد متغیرهای طبقه ­ای، مانند تعداد یا برچسب­ ها، می­توان از توزیع چند جمله ­ای استفاده کرد. اگر متغیرها باینری باشند، مانند بله / خیر یا درست / غلط ، می­توان از توزیع دوجمله­ ای استفاده کرد. اگر یک متغیر عددی باشد، مانند اندازه گیری، اغلب از توزیع گوسی استفاده می­شود.

باینری(Binary): توزیع دوجمله ­ای(Binomial distribution).

دسته­ بندی(Categorical): توزیع چند جمله ای(Multinomial distribution).

عددی(Numeric): توزیع گوسی(Gaussian distribution).

الگوریتم دسته بندی بیز ساده Naive Bayes

دسته ­بند بیز ساده گاوسی (Gaussian Naive Bayes):

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

دسته ­بند بیز ساده چندجمله‌ای (Multinomial Naive Bayes):

دیگر طبقه­ بندی کننده مفید الگوریتم دسته بندی بیز ساده Naive Bayes، Naive Bayes چندجمله ­ای است که در آن فرض می­شود ویژگی­ ها از یک توزیع ساده چندجمله ­ای گرفته شده­ اند. چنین Naive Bayes برای ویژگی هایی که ارائه دهنده اعداد گسسته هستند، مناسب تر است. این حالت معمولاً برای مشکلات طبقه بندی اسناد اعمال می شود. تصمیمات خود را بر اساس ویژگی­­های گسسته (عدد صحیح)، به عنوان مثال، بر اساس فراوانی کلمات موجود در سند می­گیرد.

دسته­ بند بیز ساده برنولی(Bernoulli Naive Bayes):

مدل مهم دیگر از الگوریتم دسته بندی بیز ساده Naive Bayes ،Naive Bayes  برنولی است که در آن فرض می­شود ویژگی ­ها یا پیش بینی کننده ها متغیرهای بولی (صفر و یک) هستند. بنابراین ، پارامترهای مورد استفاده برای پیش­بینی متغیر کلاس فقط می­توانند مقادیر بله یا خیر داشته باشند، به عنوان مثال اگر کلمه ­ای در متن رخ دهد یا نه طبقه ­بندی متن می­تواند یک برنامه کاربردی از Naive Bayes برنولی باشد.

کاربردهای الگوریتم دسته بندی بیز ساده Naive Bayes

از الگوریتم دسته بندی بیز ساده Naive Bayes  می­توان استفاده ­های بی شماری کرد. در اینجا برخی از برنامه ­های رایج Naive Bayes  برای کارهای روزمره وجود دارد:

 طبقه ­بندی اسناد:

این الگوریتم می­تواند به شما کمک کند تا تعیین کنید که یک سند مشخص به کدام دسته تعلق دارد. می­تواند برای طبقه­ بندی متون به زبان­ها، ژانرها یا موضوعات مختلف (از طریق کلمات کلیدی) مورد استفاده قرار گیرد. فیلتر هرزنامه Naive Bayes  به راحتی هرزنامه ها را با استفاده از کلمات کلیدی مرتب می­کند به همین دلیل از آنها برای حل مسائلی مانند spam-filtering استفاده می شود. الگوریتم باید برای تشخیص چنین احتمالاتی آموزش ببیند و سپس بتواند آنها را به طور موثر دسته­ بندی کند.

تحلیل احساسات:

بر اساس آنچه احساسات کلمات در متن بیان می­شود، Naive Bayes می­تواند احتمال مثبت یا منفی بودن آن را محاسبه کند. به عنوان مثال در بررسی مشتری، “خوب” یا “ارزان” معمولاً به معنای رضایت مشتری است. با این حال، Naive Bayes به کنایه و کلماتی که به معنای متفاوتی از خودشان به کار می­رود حساس نیست.

طبقه ­بندی تصویر:

طبقه­ بندی تصویر برای اهداف شخصی و تحقیقاتی، ساخت طبقه ­بند Naive Bayesian آسان است، می­توان آن را آموزش داد تا از طریق یادگیری ماشین تحت نظارت، ارقام دست نوشته را تشخیص دهد یا تصاویر را در دسته ­ها قرار دهد.

پیش­ بینی در لحظه:

Naive Bayes یک طبقه ­بندی یادگیری مطمئن و سریع است. بنابراین، می­توان از آن برای پیش­بینی در زمان واقعی استفاده کرد.

پیش ­بینی چند کلاسه:

این الگوریتم به دلیل ویژگی پیش­بینی چند کلاس نیز شناخته شده است. در اینجا می­توانیم احتمال چندین کلاس متغیر هدف را پیش­ بینی کنیم.

 سیستم پیشنهادی: الگوریتم naive bayes در داده کاوی

طبقه بندی کننده Naive Bayes و فیلتر کردن مشارکتی با هم یک سیستم پیشنهادی ایجاد می­کنند که با استفاده از یادگیری ماشین و تکنیک­ های داده کاوی اطلاعات نامشهود را فیلتر می­کند و پیش­بینی می­کند آیا کاربر منبع خاصی را می خواهد یا نه. یا اینکه پیشنهاداتی به او ارائه شود که به سلیقه ­ی او نزدیک باشد. (الگوریتم naive bayes در داده کاوی)

 

مزایا و معایب تئوری بیز

در ادامه به مزایا و معایب تئوری بیز میپرداریم:

مزایا الگوریتم دسته بندی بیز ساده Naive Bayes

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

معایب الگوریتم دسته بندی بیز ساده Naive Bayes

معایب الگوریتم دسته بندی بیز ساده Naive Bayes :  این الگوریتم در مورد مقادیر طبقه ­ای بهتر از مقادیر عددی عمل می­کند. همچنین، اگر یک متغیر دسته ­بندی در مجموعه داده ­های آزمون، دسته­ ای داشته باشد که در مجموعه داده ­های آموزش وجود نداشته باشد، مدل به آن احتمال صفر می­دهد و قادر به پیش­بینی نخواهد بود. به این مسئله مشکل فرکانس صفر گفته می­شود. محدودیت دیگر Naive Bayes فرض پیش بینی­های مستقل است. در زندگی واقعی، تقریباً غیرممکن است که مجموعه­ای از پیش­بینی کننده­ ها را کاملاً مستقل بدست آوریم.

بی اثر کردن الگوریتم دسته بندی بیز ساده Naive Bayes روشی است که توسط اسپمرهای ایمیل استفاده می­شود تا سعی در کاهش کارآیی فیلترهای هرزنامه ­ها داشته باشد که از قانون Bayes استفاده می­کنند. این روش با تبدیل کلماتی که قبلاً به کلمات اسپم در یک پایگاه داده بیزی شناخته می­شده ­اند به کلماتی که نشانه ­ی اسپم بودن را ندارد و یا افزودن کلماتی که احتمالاً در ایمیل­های غیر هرزنامه وجود دارد، این فیلتر را کم اثر کنند. با این حال، آموزش مجدد فیلتر به طور موثری از انواع حملات جلوگیری می­کند. به همین دلیل است که از الگوریتم دسته بندی بیز ساده Naive Bayes به همراه اکتشافات خاص مانند لیست سیاه همچنان برای شناسایی هرزنامه استفاده می­شود.

جمع ­بندی الگوریتم دسته بندی بیز ساده Naive Bayes

به طور ساده روش الگوریتم دسته بندی بیز ساده Naive Bayes روشی برای دسته ­بندی پدیده‌ها، بر پایه احتمال وقوع یا عدم وقوع یک پدیده ‌است. براساس ویژگی‌های ذاتی احتمال (به ویژه اشتراک احتمال) الگوریتم دسته بندی بیز ساده Naive Bayes با دریافت داده ­های اموزش نتایج خوبی ارائه خواهد کرد. شیوه یادگیری در روش Naive Bayes از نوع یادگیری با ناظر است. برنامه‌های کاربردی بسیاری هستند که پارامترهای الگوریتم دسته بندی بیز ساده Naive Bayes را تخمین می‌زنند، بنابر این افراد بدون سروکار داشتن با تئوری بیز می‌توانند از این امکان به منظور حل مسائل مورد نظر بهره ببرند. با وجود مسائل طراحی و پیش فرض‌هایی که در خصوص روش بیز وجود دارد، این روش برای طبقه بندی کردن بیشتر مسایل در جهان واقعی، مناسب است.

نویسنده: تیم پژوهش راهبرد

 

منابع

pico.net

serokell.io

towardsdatascience.com

5/5 - (1 امتیاز)

دیدگاه (2)

  • علی یوسفی پاسخ

    خیلی ممنون از این بررسی کامل و جامع

    17 خرداد 1403 در 12:48 ب.ظ
    • مدیر سایت پاسخ

      سپاسگزاریم.

      6 تیر 1403 در 7:51 ب.ظ

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

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