مهمترین الگوریتمهای یادگیری ماشین (به همراه کدهای پایتون و R) — بخش ششم: الگوریم بیز ساده
این الگوریتم یک تکنیک کلاسبندی بر اساس قضیه بیز با فرض استقلال پیشبینها است. به بیان سادهتر، یک کلاسبندی بیزی ساده بر اساس این فرض عمل میکند که وجود یک ویژگی خاص در یک کلاس به وجود هیچ ویژگی دیگری وابسته نیست. برای مثال میوهای که سرخ باشد، گرد باشد و قطر 8 سانتیمتر داشته باشد را میتوان سیب در نظر گرفت. حتی اگر این ویژگیها به هم دیگر وابسته باشند یا به وجود ویژگیهای دیگر وابسته باشند، الگوریتم کلاسبندی کننده بیزی ساده، تأثیر همه این مشخصات در فرض سیب بودن این میوه را مستقل از هم در نظر میگیرد.
ساخت مدل بیزی ساده آسان است و به طور خاص برای مجموعه دادههای بزرگ مفید است. این الگوریتم علاوه بر سادگی، عملکرد بالایی نسبت به روشهای کلاسبندی با پیچیدگی بالا نشان داده است.
قضیه بیز روشی برای محاسبه احتمال پسین P(c|x) از روی P(c)،P(x) و P(x|c) به دست میدهد. معادله زیر را ببینید:
در این معادله:
- P(c|x) احتمال پسین کلاس (هدف) با فرض پیشبین (ویژگی) خاص است.
- P(c) احتمال پیشینی کلاس است.
- P(x|c) احتمال رخداد یک پیشبین بر حسب یک کلاس است.
- P(x) احتمال پیشینی پیشبین است.
نمونه ای از الگوریتم بیزی ساده
مثال: این الگوریتم را با یک مثال توضیح میدهیم. در ادامه مجموعه داده تمرینی برای آبوهوا و متغیر هدف متناظر با انجام بازی ارائه شده است. اینک ما باید کلاسبندی کنیم که بسته به شرایط آبوهوایی یک بازی انجام میشود یا نه. مراحل زیر را انجام میدهیم:
مرحله 1: دادهها را به جدول فراوانی تبدیل میکنیم.
مرحله 2: جدول احتمال را با یافتن احتمالاتی مانند احتمال ابری بودن برابر با 0.29 و احتمال بازی 0.64 تشکیل میدهیم.
مرحله 3: اینک از معادله بیزی ساده برای محاسبه احتمالی پسینی برای هر کلاس استفاده میکنیم. این کلاس با بالاترین احتمال پسینی، خروجی پیشبینی است.
سؤال: بازیکنان در صورتی که هوا آفتابی باشد بازی میکنند، آیا این گزاره صحیح است؟
پاسخ این سؤال را با روشی که در بالا گفتیم میتوان یافت بنابراین
(آفتابی) P/(بازی) P * (بازی | آفتابی) P = (آفتابی | بازی) P
در این رابطه داریم:
0.64 = 14/9 = (آفتابی) P، 0.36 =14/5 = (آفتابی) P، 0.33= 9/3= (بازی | آفتابی) P
اینک 0.60 = 0.36/0.64 * 0.33 = (آفتابی | بازی) P که احتمال بالایی است.
الگوریتم بیزی ساده از روش مشابهی برای پیشبینی احتمال رخداد کلاس متفاوت بر اساس ویژگیهای مختلف استفاده میکند. این الگوریتم در کلاسبندی متن و مسائلی که چند کلاس مختلف دارند به طور گستردهای استفاده میشود.
کد پایتون
#Import Library
from sklearn.naive_bayes import GaussianNB
#Assumed you have, X (predictor) and Y (target) for training data set and x_test(predictor) of test_dataset
# Create SVM classification object model = GaussianNB() # there is other distribution for multinomial classes like Bernoulli Naive Bayes, Refer link
# Train the model using the training sets and check score
model.fit(X, y)
#Predict Output
predicted= model.predict(x_test)
کد R
library(e1071)
x <- cbind(x_train,y_train)
# Fitting model
fit <-naiveBayes(y_train ~., data = x)
summary(fit)
#Predict Output
predicted= predict(fit,x_test)
در بخش بعدی این سلسله مطالب شما را با الگوریتم KNN آشنا میکنیم.
ممنون از متن و توضیحات مفیدتان.
با سلام، لطفا بفرمایید چگونه از تکنیک pac-bayesian در Deep learning استفاده می شود؟