❓کوئیز شماره ۳۶: توی اعتبارسنجی متقاطع سری زمانی با پنجره زمانی ثابت، دادهها چطور تقسیم میشن؟
Anonymous Quiz
7%
هر بخش دادهها به صورت تصادفی انتخاب میشه
14%
اندازه پنجره آموزش و تست با گذشت زمان تغییر میکنه
72%
اندازه پنجره آموزش و تست ثابته و در طول زمان جابجا میشه
7%
فقط یک داده توی هر Fold اضافه میشه
😎7❤2👌1
روشهای اعتبارسنجی متقابل K-Fold، Stratified و TimeSeries عمدتاً توی مدلهای یادگیری نظارت شده به کار میرن، چون برای ارزیابی، نیاز به دادههای برچسب دار دارن. اما نسخههای تغییریافته این روشها میتونن برای مدلهای یادگیری بدون نظارت هم استفاده شن.
برای مثال، اعتبارسنجی متقابل K-Fold میتونه توی یادگیری بدون نظارت برای ارزیابی وضعیت خوشهبندیها استفاده شه. اما روشهای Stratified و TimeSeries به دلیل تمرکز روی حفظ تعادل کلاسها یا ترتیب زمانی، بیشتر به مدلهای نظارت شده و دادههای برچسبدار وابسته هستن.
#Machine_Learning
#Cross_Validation
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👌6👍3❤1👨💻1
کلاس
KFold
از sklearn.model_selection
برای شروع فرآیند اعتبارسنجی متقابل استفاده میشه. میتونین تعداد تقسیمها (n_splits
) رو مشخص کنین که به طور پیشفرض 5 هست و حداقل باید 2 باشه. میشه تصمیم گرفت که قبل از تقسیم دادهها، اونها رو بر زد (shuffle=False
به طور پیشفرض). روش KFold
به دلیل سادگی و اینکه مدلمحور نیست، بسیار کاربردیه و برای انواع گستردهای از مجموعه دادهها و مدلها قابل استفادهست. random_state
کنترل کننده ترتیب شاخصهاست برای زمانیکه shuffle
فعاله.from sklearn.model_selection import KFold
kf = KFold(n_splits=5, shuffle=False, random_state=None)
برای مقداردهی اولیه این فرآیند از کلاس
StratifiedKFold
توی sklearn.model_selection
استفاده میشه. مثل `KFold`، میشه تعداد تقسیمها رو مشخص کرد و مقدارش حداقل باید 2 باشه. همچنین، میشه تصمیم گرفت که آیا قبل از تقسیم، دادهها بر زده بشن یا نه. from sklearn.model_selection import StratifiedKFold
skf = StratifiedKFold(n_splits=5, shuffle=False, random_state=None)
برای دادههای سری زمانی از کلاس
TimeSeriesSplit
توی sklearn.model_selection
استفاده میشه. این کلاس به صورت ویژه برای دادههای زمانی طراحی شده.import numpy as np
from sklearn.model_selection import TimeSeriesSplit
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
X = np.array([[1, 2], [3, 4], [1, 2], [3, 4], [1, 2], [3, 4]])
y = np.array([1, 2, 3, 4, 5, 6])
tscv = TimeSeriesSplit(n_splits=3)
model = LinearRegression()
# TimeSeries Cross-Validation
for train_index, test_index in tscv.split(X):
X_train, X_test = X[train_index], X[test_index]
y_train, y_test = y[train_index], y[test_index]
model.fit(X_train, y_train)
predictions = model.predict(X_test)
mse = mean_squared_error(y_test, predictions)
print(f"Train indices: {train_index}, Test indices: {test_index}, MSE: {mse}")
برای استفاده پیشرفتهتر،
sklearn
قابلیت cross_validate
رو ارائه میده که امکان ارزیابی چندین معیار رو ممکن میکنه و یه دیکشنری شامل زمانهای آموزش، زمانهای امتیازدهی و نمرات تست رو برمیگردونه. این تابع زمانی مفیده که بخواین یه مدل رو همزمان با استفاده از معیارهای مختلف ارزیابی کنین.#Machine_Learning
#Cross_Validation
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍3👨💻1
❓کوئیز شماره ۳۷:
برای استفاده از cross_val_predict توی sklearn، کدوم گزینه صحیحه؟
برای استفاده از cross_val_predict توی sklearn، کدوم گزینه صحیحه؟
Anonymous Quiz
14%
نتایجش با cross_val_score متفاوته، مگه اینکه همه مجموعههای آزمایشی اندازهی برابر داشته باشن.
61%
امکان استفاده از روشهای مختلف پیشبینی مثل predict_proba و decision_function رو فراهم میکنه.
25%
همیشه نتایج دقیقتری نسبت به cross_val_score ارائه میده.
😎6❤2👌2
در روش LPO، از مجموعه دادهای با N نمونه، P نمونه به صورت تصادفی حذف میشن و مدل روی N-P نمونه باقیمونده آموزش داده میشه و عملکرد مدل روی P نمونه حذفشده ارزیابی میشه.
فرض کنین مجموعه دادهای داریم با 5 نمونه (N=5) که عددهای 1 تا 5 رو نشون میده. میخوایم LPO رو با P=2 انجام بدیم.
1. انتخاب ترکیبات P نمونه برای تست: باید همه ترکیبات ممکن 2 نمونهای از 5 نمونه رو برای تست انتخاب کنیم. این ترکیبات عبارتند از: (1,2)، (1,3)، (1,4)، (1,5)، (2,3)، (2,4)، (2,5)، (3,4)، (3,5) و (4,5). پس 10 ترکیب داریم.
2. آموزش و تست مدل برای هر ترکیب: برای هر ترکیب، ما دو نمونه رو برای تست کنار میگذاریم و مدل رو روی 3 نمونه باقیمانده آموزش میدهیم. بعد عملکرد مدل رو روی دو نمونه حذف شده تست میکنیم.
- مثلاً برای ترکیب (1,2)، مدل روی نمونههای 3، 4، و 5 آموزش داده میشه و بعد عملکردش روی نمونههای 1 و 2 ارزیابی میشه.
3. محاسبه عملکرد کلی مدل: در نهایت، میانگین عملکرد مدل روی همه ترکیبات به عنوان ارزیابی کلی از دقت مدل در نظر گرفته میشه.
روش LOOCV حالت خاصیه از LPO که در اون P برابره با 1. در نتیجه توی هر دور از اعتبارسنجی، فقط یک نمونه حذف میشه و مدل روی N-1 نمونه باقیمانده آموزش میبیند.
مزیت این روش اینکه نیاز به تصمیمگیری در مورد تعداد فولدها نداره و از دادهها به بهترین شکل استفاده میکنه. اما توی مجموعه دادههای بزرگ بسیار زمانبره و گاهی اوقات میتونه به بیشبرازش منجر شه، مخصوصا اگه مدل پیچیده باشه.
1. انتخاب تک تک نمونهها برای تست: توی LOOCV، ما هر نمونه رو به نوبت به عنوان داده تست انتخاب میکنیم. بنابراین، پنج ترکیب داریم که هر کدوم شامل یه نمونه برای تست و 4 نمونه دیگه برای آموزشن. این ترکیبات عبارتند از: نمونه 1 برای تست و بقیه برای آموزش، نمونه 2 برای تست و بقیه برای آموزش، و همینطور تا نمونه 5.
2. آموزش و تست مدل برای هر ترکیب: برای هر ترکیب، ما یک نمونه رو برای تست کنار میگذاریم و مدل رو روی 4 نمونه باقیمانده آموزش میدیم. بعد عملکرد مدل رو روی نمونه حذف شده تست میکنیم.
مثلاً برای ترکیب اول، مدل روی نمونههای 2، 3، 4، و 5 آموزش داده میشن و عملکردش روی نمونه 1 ارزیابی میشه.
این فرایند برای هر کذوم از 5 ترکیب تکرار میشن.
3. محاسبه عملکرد کلی مدل: در نهایت، میانگین عملکرد مدل روی تمام ترکیبات به عنوان ارزیابی کلی از دقت مدل در نظر گرفته میشه.
#Machine_Learning
#Cross_Validation
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👌6❤2👨💻1
❓کوئیز شماره ۳۸: توی اعتبارسنجی متقابل LPO، اگه P رو افزایش بدیم، کدوم گزینه صحیحه؟
Anonymous Quiz
17%
زمان محاسبات کمتر میشه
33%
تعداد ترکیبات ممکن برای انتخاب نمونههای تست کاهش پیدا میکنه
50%
زمان محاسبات بیشتر میشه
0%
تأثیری روی زمان محاسبات نداره
👍5❤2👏1
اعتبار سنجی متقابل برای ارزیابی عملکرد مدل با استفاده از ترکیبهای مختلف از پارامترها استفاده میشه. این کار میتونه با استفاده از Grid Search یا Random Search ترکیب شه.
برای مثال میشه از Grid Search برای پیدا کردن بهترین ترکیب از پارامترهای مدل استفاده کرد، بعد از Cross Validation برای ارزیابی عملکرد مدل روی ترکیبهای مختلف پارامترها استفاده کرد.
#Machine_Learning
#Cross_Validation
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👌6👍1👨💻1
#Weekend
#Machine_Learning
#Cross_Validation
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤3👏1
توی هر حوزهای برای استفاده از مفاهیم تئوری، نیاز به تعریف مسئله، انجام تمرین علمی و پروژه کاربردی هست. توی این وبینار بررسی میکنیم که چه مسائلی امکان تعریف در قالب تسک و اجرا با استفاده از ماشین لرنینگ رو دارن.
@DSLanders | دیاسلندرز
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍2👨💻1
#Machine_Learning
#Naive_Bayes
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👌2👨💻1
الگوریتم بیز ساده یه روش طبقهبندی مبتنی به اصل بیز هست و توی مواردی که مجموعه دادهها بزرگه، کاربرد داره. الگوریتم 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