یادگیری نظارت شده و کلاسه بندی بیز ساده – بخش اول : نظریه

به آموزش یادگیری نظارت شده خوش آمدید. ما ابتدا یک سناریو کوچک را مورد بحث قرار می دهیم که اساس بحث های آینده را تشکیل می دهد. سپس، درباره ریاضیات احتمال پسین که با عنوان قضیه بیز نیز شناخته می شود، بحث خواهیم کرد. این بخش اصلی کلاسه بند بیز ساده ( Naive Bayes Classifier ) است. در نهایت، ما کتابخانه sklearn زبان پایتون را بررسی خواهیم کرد و یک کد کوچک برای استفاده از بیز ساده جهت مساله ای که در ابتدا در مورد آن بحث می کنیم، در پایتون می نویسیم.

مقاله مرتبط :

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

دو نفر به نام های آلیس و باب را تصور کنید که الگوی استفاده از کلمات آن ها را می دانید. برای ساده نگه داشتن مثالمان، اجازه دهید فرض کنیم که آلیس از ترکیب سه کلمه [ عشق  ، بزرگ و فوق العاده ] استفاده می کند و  باب کلمات [ سگ  ، توپ و فوق العاده ] را به کار می گیرد.

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

می توانید حدس بزنید که  فرستنده ممکن است چه کسی باشد؟

 

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

حالا بیایید ترکیب و احتمال در داده های خود اضافه کنیم. فرض کنید آلیس و باب از کلمات زیر با احتمالات داده شده استفاده  می کنند. اکنون می توانید حدس بزنید که چه کسی فرستنده  این محتوا است: “عشق فوق العاده”.

مثال کلاسه بند بیز ساده کلمات

 حالا چه فکر می کنید؟

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

قضیه بیز

فرمول قضیه بیز

قضیه بیز به ما می گوید که اتفاق A با توجه به رخ داد اتفاق B ، چقدر احتمال وقوع دارد؛ که به صورت P(A|B) نوشته می شود. وقتی می دانیم چقدر احتمال وقوع B با توجه به رخ داد A وجود دارد می نویسیم P(B|A) و معمولا  A و B از هم مستقل هستند.

  • P(A|B) احتمال A با توجه به B است، که احتمال رخ دادن A است وقتی که اتفاق B رخ دهد.
  • P(A) احتمال A است.
  • P(B|A) احتمال B با توجه به A است، که احتمال رخ دادن B است وقتی که اتفاق A رخ دهد.
  • P(B) احتمال B است.

وقتی گفته می شود که P(آتش) به این معنی است که چقدر احتمال وجود آتش وجود دارد و P(دود) به این معنی است که چقدر احتمال دیدن دود وجود دارد.

P(آتش|دود) به این معنی است که زمانی که دود رامی بینیم، چقدر احتمال وجود آتش وجود دارد.

P(دود|آتش) به این معنی است که وقتی آتش وجود دارد چقدر احتمال دارد دود ببینیم.

بنابراین این فرمول به ما “جلو رفتن” ها را می گوید در صورتی که ما “عقب رفتن” ها را می دانیم (و برعکس).

مثال: اگر آتش سوزی خطرناک کمیاب باشد (۱ %) اما دود به خاطر کارخانه ها نسبتاً 

شایع است (۱۰ %) و ۹۰ % آتش سوزی های خطرناک دود تولید می کنند:

P(آتش|دود) =P(آتش) P(دود|آتش) =۱% x 90% = 9%P(دود)۱۰%

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

حالا می توانید این را برای مثال برای آلیس و باب اعمال کنید؟

کلاسه بند بیز ساده

کلاسه بند بیز ساده احتمالات وقوع را برای هر فاکتور محاسبه می کند (در مورد مثال ایمیل، آلیس و باب برای یک ویژگی ورودی داده شده). سپس نتیجه ای با بالاترین احتمال را انتخاب می کند.

این کلاسه بند فرض را بر این می گیرد که ویژگی ها (در مثال ما کلمات را به عنوان ورودی گرفته بودیم) مستقل هستند. به همین دلیل به آن ساده می گویند. با این وجود، این الگوریتم روش خوبی برای استفاده های زیر است

  • پیش بینی آنی (Real Time )
  • کلاسه بندی متن / جدا سازی هزرنامه ها
  • سیستم پیشنهادات

پس از نظر ریاضی می توانیم بنویسیم،

اگر ما یک رویداد خاص E و بازیگران آزمایشی x1 ، x2 ، x3 و … را داریم.

ابتدا P(x1| E) ،  P(x2 | E) و … را محاسبه می کنیم (احتمال رخ داد x1 در صورت وقوع E) و سپس یک بازیگر آزمایشی x با بیش ترین مقدار احتمال را  انتخاب می کنیم.

کلاسه بند بیز ساده احتمال

امیدواریم این موضوع به خوبی توضیح داده شده باشد که کلاسه بند بیز ساده چیست. در قسمت بعدی ما از sklearn در پایتون استفاده خواهیم کرد و کلاسه بند بیز ساده ای را برای برچسب زدن ایمیل ها به صورت هزر نامه یا مفید استفاده خواهیم کرد. اگر هر گونه کمکی نیاز دارید یا پیشنهادی برای ما دارید کامنت بگذارید.

بیشتر بخوانید :

منبع Medium
5/5 (1 نظر)

درباره‌ی احمدرضا جعفری

همچنین ببینید

سخت افزار یادگیری عمیق FPGA و GPU و CPU و TPU

CPU ، GPU، FPGA یا TPU : کدام یک را برای آموزش یادگیری ماشین خود انتخاب کنم؟

در حال حاضر، ارائه دهندگان فناوری ابری، برای برنامه یادگیری ماشین شما ، گزینه های …