الگوریتم بیز ساده یه روش طبقهبندی مبتنی به اصل بیز هست و توی مواردی که مجموعه دادهها بزرگه، کاربرد داره. الگوریتم Naive Bayes فرض میکنه ویژگیهای مختلف توی دادهها مستقل از هم دیگه هستن و توی دستهی یادگیری با ناظر قرار داره.
قبل از بررسی الگوریتم بیز ساده، باید با اصل بیز آشنا شیم. اصل بیز رابطهای ریاضیه که احتمال وقوع یه رویداد رو بر اساس دانش قبلی از شرایط مرتبط با اون رویداد تعیین میکنه. فرمول اصل بیز رو داخل تصویر میتونین ببینین.
توی این مدل فرض میشه که ویژگیها دارای توزیع نرمال (گاوسی) هستن. این روش در مواقعی که ویژگیها ویژگیهای پیوسته هستن، مثل قد یا وزن، کاربرد داره.
این الگوریتم برای متغیرهای گسسته مثل شمارش کلمات در متن به کار میره و توی طبقهبندی متن و تحلیل احساسات بسیار محبوبه.
مناسب برای ویژگیهای دودویی (مثلا حضور یا عدم حضور یک ویژگی در یک نمونه). این الگوریتم در مواردی که ویژگیها به صورت "بودن" یا "نبودن" هستن، مفیده.
#Machine_Learning
#Naive_Bayes
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍3👌3
#Machine_Learning
#Naive_Bayes
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤4👨💻1
مزایای Bernoulli Naïve Bayes شامل سادگی، کارآمدی و دقت بالا توی مجموعه دادههای کوچیکه. این الگوریتم به خوبی برای طبقهبندی متن کار میکنه، اما چون فرض استقلال ویژگیها رو داره، ممکنه نتایج نامناسبی تولید کنه و برای مسائل چند کلاسه مناسب نیست. همچنین اگه توی کلاسبندی دادهها عدم تعادل وجود داشته باشه، دقت کلی مدل کاهش پیدا میکنه.
مزایای استفاده از Multinomial Naïve Bayes عبارتند از کارآمدی، پیادهسازی ساده، مقاومت در برابر ویژگیهای غیرمرتبط و نتایج قابل تفسیر. این الگوریتم گزینهای عملی برای وظایف طبقهبندی متن مثل تشخیص هرزنامه، تحلیل احساسات و دستهبندی اسناده، جایی که ویژگیها اغلب بر اساس شمارش کلمات هستن.
#Machine_Learning
#Naive_Bayes
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2👌1👨💻1
❓کوئیز شماره ۳۹: توی کدوم مدل احتمال P(x_i|y) بر اساس تعداد دفعات وقوع ویژگی (x_i) توی کلاس y محاسبه میشه؟
Anonymous Quiz
58%
Bernoulli Naive Bayes
42%
Multinomial Naive Bayes
👍5❤2😎2👌1
#Machine_Learning
#Naive_Bayes
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👌4👨💻1
بیز ساده Gaussian یه روش دستهبندی مبتنی بر احتماله که فرض میکنه توزیع ویژگیها توی دادهها به صورت نرماله. این به این معنیه که هر ویژگی دادههای آموزشی توسط میانگین و واریانسش توصیف میشه.
برای هر کلاس، میانگین و واریانس هر ویژگی محاسبه میشه. بعد، با استفاده از این پارامترها، احتمال تعلق یک نمونه جدید به هر کلاس تعیین میشه. این احتمالات با استفاده از تابع چگالی احتمال نرمال محاسبه میشن.
برای درک بهتر، فرض کنین میخوایم بر اساس ویژگیهایی مثل قد و وزن، افراد رو به گروههای ورزشی مختلف طبقهبندی کنیم. اول باید میانگین و واریانس قد و وزن توی هر گروه ورزشی رو محاسبه کنیم. در ادامه برای طبقهبندی یک نفر جدید، احتمال تعلقش به هر گروه بر اساس ویژگیهایش محاسبه میشه.
یکی از مزایای اصلی بیز ساده Gaussian سادگی و کارآمدیش در مواجهه با دادههای پیوستهست. اما مثل بقیه مدلهای بیز ساده، این روش هم فرض میکنه که ویژگیها مستقل از هم هستن، که در بسیاری از مثالهای دنیای واقعی کاربرد نداره. همچنین، عملکردش در مواجهه با دادههایی که توزیع نرمال ندارن، ممکنه کاهش پیدا کنه.
#Machine_Learning
#Naive_Bayes
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👌6❤2👍1👨💻1
❓کوئیز شماره ۴۰: کدوم گزینه یه پارامتر GaussianNB توی کتابخانه Scikit-Learn هست؟
Anonymous Quiz
33%
priors
19%
max_features
37%
n_estimators
12%
learning_rate
😎7❤2🤔2👍1
بعضی از روشهای متداول برای بهبود عملکرد طبقهبندی توی بیز ساده کاربردی نیستن. در ادامه روشهای موثر برای این الگوریتم رو بررسی میکنیم.
#Machine_Learning
#Naive_Bayes
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1👨💻1
❓کوئیز شماره ۴۱: تکنیک Laplace Smoothing توی بیز ساده چطور مشکل احتمالات صفر رو برطرف میکنه؟
Anonymous Quiz
64%
با اضافه کردن یه مقدار ثابت به همه مقادیر، تا از اختصاص احتمال صفر جلوگیری شه.
7%
با کاهش اهمیت ویژگیهایی که احتمال بالایی دارن.
29%
با تغییر توزیع احتمالات به طوری که به حالت نرمال نزدیک شن.
❤7😎4👌2
#Machine_Learning
#Naive_Bayes
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8👌2❤1👨💻1
نایو بیز به طور گسترده توی طبقهبندی متن مثل تشخیص ایمیل اسپم و تجزیه و تحلیل احساسات محتوای شبکههای اجتماعی استفاده میشه. این روش به دلیل تواناییاش توی کار با ویژگیهای متنی که اکثرا بسیار بزرگ و پراکنده هستن، محبوبه.
توی حوزه پزشکی، نایو بیز میتونه برای تشخیص بیماریها و کمک به تصمیمگیریهای بالینی استفاده شه. این مدل با در نظر گرفتن ویژگیهای مختلف بیمار، پیشبینیهای دقیقی ارائه میده.
نایو بیز توی ساخت سیستمهای توصیهگر برای پیشنهاد محصولات یا خدمات به کاربران بر اساس علایق و رفتارهای گذشتهشون به کار میره. سرعت و کارایی بالا و سادگی مدل از دلایل دیگه استفاده نایو بیز توی سیستمهای توصیهگره.
یکی از بزرگترین مزایای نایو بیز، سادگی و سرعت آموزش و پیشبینیش هست. این مدل به راحتی قابل پیادهسازیه و به منابع کمتری نسبت به سایر مدلهای پیچیدهتر نیاز داره.
نایو بیز توی مواجهه با مجموعههای دادهی بزرگ و دارای ابعاد بالا عملکرد خوبی داره. این قابلیتش اونو را برای کاربردهایی مثل طبقهبندی متن و تجزیه و تحلیل دادههای بزرگ مفید میکنه.
نایو بیز میتونه توی شرایطی که بخشی از دادهها گم شده یا ناقصه، همچنان عملکرد خوبی داشته باشه. این ویژگی اونو برای کاربردهای دنیای واقعی که اغلب با دادههای ناکامل مواجه هستیم، ایدهآل میکنه.
نایو بیز به خوبی میتونه با تغییرات توی مجموعه دادهها سازگار شه. این انعطافپذیری به محققان و مهندسان اجازه میده که مدلها رو به سرعت بهروزرسانی کنن.
#Machine_Learning
#Naive_Bayes
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1👌1👨💻1
❓کوئیز شماره ۴۲: چطور میشه توضیح داد که نایو بیز تا چه حد در برابر ویژگیهای نامربوط مقاومه و این موضوع چه تأثیری روی عملکرد کلیش داره؟
Anonymous Quiz
26%
مقاومت کامل، بدون تأثیر منفی بر دقت
46%
مقاومت متوسط، با کاهش جزئی در دقت
14%
حساسیت بالا، با کاهش قابل توجه در دقت
14%
حساسیت نسبی، با تغییرات پیچیده در عملکرد
😎6👌2❤1
- نایو بیز
- شبکههای بیزی
- میدانهای تصادفی مارکوف
- رگرسیون لجستیک
- ماشین بردار پشتیبان
- شبکههای عصبی سنتی
- KNN
#Machine_Learning
#Naive_Bayes
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👌8❤1👍1👨💻1
توی این کد انواع مختلف طبقهبندیکنندههای نایو بایز رو روی یک دیتاست پیاده سازی و عملکردها رو مقایسه کردیم. این کد برای هر مدل بیز ساده، دقت (accuracy) رو محاسبه میکنه و بهترین مدل رو بر اساس بالاترین دقت انتخاب میکنه.
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
from sklearn.naive_bayes import GaussianNB, MultinomialNB, BernoulliNB
from sklearn.metrics import accuracy_score
data = load_iris()
X = data.data
y = data.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
models = {
"GaussianNB": GaussianNB(),
"MultinomialNB": MultinomialNB(),
"BernoulliNB": BernoulliNB()
}
for name, model in models.items():
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f"{name} Accuracy: {accuracy}")
best_model = max(models, key=lambda k: models[k].score(X_test, y_test))
print(f"Best Model: {best_model}")
MultinomialNB Accuracy: 0.95
BernoulliNB Accuracy: 0.28
Best Model: GaussianNB
#Machine_Learning
#Naive_Bayes
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤4👌2👏1
❓کوئیز شماره ۴۳: کدوم یک از پارامترهای زیر در مدلی که از sklearn.naive_bayes import GaussianNB ساخته میشه، وجود نداره؟
Anonymous Quiz
26%
var_smoothing
20%
priors
31%
alpha
23%
class_prior
😎7👍3🤔1
#Machine_Learning
#Naive_Bayes
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10👌2❤1👏1
https://t.iss.one/data_ml/139
#Weekend
#Machine_Learning
#Naive_Bayes
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👏6❤1🔥1
Audio
@DSLanders | دیاسلندرز
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1🔥1
#Machine_Learning
#KNN
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12👌2👨💻1
الگوریتم یادگیری باناظر K-Nearest Neighbor(KNN) یا K نزدیکترین همسایه، برای حل مسائل طبقهبندی و رگرسیون به کار میره. این الگوریتم بر اساس این فرضیهست که دادههای مشابه توی فضای ویژگی نزدیک به هم دیگه قرار دارن.
الگوریتم KNN به دلیل غیر پارامتریک بودنش، یعنی اینکه هیچ فرضی راجع به توزیع دادهها نمیکنه (بر خلاف الگوریتمهای دیگه مثل GaussianNB که توزیع نرمال دادهها رو فرض میکنن)، توی مسائل واقعی بسیار قابل استفادهست. KNN یه الگوریتم مبتنی بر برداره و نزدیکترین همسایهها بر اساس روشهای محاسبه فاصله، مثل فاصله اقلیدسی انتخاب میشن.
این الگوریتم میتونه هم با دادههای عددی و هم با دادههای Categorical کار کنه، که این ویژگی KNN رو به گزینهای انعطافپذیر برای انواع مختلف مجموعههای داده تبدیل میکنه. K-NN نسبت به بقیه الگوریتمها به نویز و دادههای خارج از محدوده (outliers) کمتر حساسه.
توی تصویر، یه نمودار دو بعدی و دادههایی با دو طبقهبندی نشون داده شدن. دسته اول با رنگ قرمز، دسته دوم رنگ آبی و یه داده جدید (new data point) که هنوز به هیچ کدوم از دستهها اختصاص داده نشده وجود داره.
براساس الگوریتم KNN، برای طبقهبندی داده جدید، ما به دنبال نزدیکترین همسایگان به این نقطه توی فضای ویژگی هستیم. برای مثال، اگه K رو برابر 3 در نظر بگیریم، سه تا از نزدیکترین همسایهها به نقطه جدید رو در نظر میگیریم و براساس فاصله این سه همسایه، نقطه جدید رو طبقهبندی میکنیم.
مقدار K توی K-NN بسیار مهمه و تعداد همسایهها رو تعیین میکنه و انتخابش باید بر اساس دادههای ورودی صورت بگیره. اگه دادههای ورودی دارای نویز یا outliers بالایی باشن، انتخاب مقدار بالاتر برای K بهتره. توصیه میشه مقدار K به صورت عدد فرد انتخاب شه و روشهای اعتبارسنجی متقابل توی انتخاب بهترین مقدار K موثرن.
#Machine_Learning
#KNN
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👌2👨💻1
❓کوئیز شماره ۴۴: الگوریتم _______ روش یادگیری تنبل (lazy learner) داره. چون تابع تمیزدهنده (Discriminative function) رو از دادههای آموزشی یادنمیگیره.
Anonymous Quiz
71%
KNN
29%
K-means
👍6😎4👏1