#Machine_Learning
#Regularization
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👌8👍2👨💻1
👨🏫 آشنایی با تکنیک L2 Regularization
تکنیک L2 Regularization که گاهی به عنوان Ridge Regularization هم شناخته میشه، یه تکنیک در یادگیری ماشینه که برای جلوگیری از overfitting (بیشبرازش) در مدلهای پیچیده استفاده میشه. این روش با اضافه کردن یه جمله جریمه به تابع هزینه مدل ماشین لرنینگ، به کنترل پیچیدگی کمک میکنه.
🔵 این جمله جریمه برابره با مجموع مربعهای وزنهای مدل (coefficients)، ضربدر یک ضریب λ (lambda). فرمول L2 به شکل زیره و توی این فرمول، λ یه پارامتره که میزان جریمه رو تعیین میکنه. w وزنهای مدل هستن.
L2 = λ * sum(w²)
🔵 تأثیر L2 Regularization
این تکنیک کمک میکنه تا وزنهای مدل پایین نگه داشته شن و جلوی وابستگی بیش از حد به دادههای خاص گرفته شه. این روش به افزایش تعمیم پذیری مدل کمک میکنه؛ در نتیجه مدل برابر دادههای جدید عملکرد بهتری داره.
🔵 نحوه انتخاب Lambda
افزایش λ و انتخابش با مقدار بزرگ منجر به افزایش جریمه و کاهش پیچیدگی مدل میشه و میتونه underfitting ایجاد کنه. کاهش λ منجر به کاهش تأثیر regularization و افزایش خطر overfitting میشه. به Lambda اصطلاحا regularization rate هم میگم.
🔵 کاربردها و محدودیتها
رگرسیون ریج توی مدلهایی که ویژگیها همبستگی دارن، موثره و کاربرد داره. انتخاب λ مناسب میتونه چالشبرانگیز باشه و باید با دقت انجام شه.
#Machine_Learning
#Regularization
@Data_ML | دیتاساینس و ماشین لرنینگ
تکنیک L2 Regularization که گاهی به عنوان Ridge Regularization هم شناخته میشه، یه تکنیک در یادگیری ماشینه که برای جلوگیری از overfitting (بیشبرازش) در مدلهای پیچیده استفاده میشه. این روش با اضافه کردن یه جمله جریمه به تابع هزینه مدل ماشین لرنینگ، به کنترل پیچیدگی کمک میکنه.
L2 = λ * sum(w²)
این تکنیک کمک میکنه تا وزنهای مدل پایین نگه داشته شن و جلوی وابستگی بیش از حد به دادههای خاص گرفته شه. این روش به افزایش تعمیم پذیری مدل کمک میکنه؛ در نتیجه مدل برابر دادههای جدید عملکرد بهتری داره.
افزایش λ و انتخابش با مقدار بزرگ منجر به افزایش جریمه و کاهش پیچیدگی مدل میشه و میتونه underfitting ایجاد کنه. کاهش λ منجر به کاهش تأثیر regularization و افزایش خطر overfitting میشه. به Lambda اصطلاحا regularization rate هم میگم.
رگرسیون ریج توی مدلهایی که ویژگیها همبستگی دارن، موثره و کاربرد داره. انتخاب λ مناسب میتونه چالشبرانگیز باشه و باید با دقت انجام شه.
#Machine_Learning
#Regularization
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3👨💻2
❓کوئیز شماره ۲۸: فرض کنید λ در تنظیم L2 به نحوی انتخاب شده که باعث صفر شدن بعضی از وزنها میشه. این حالت چه نتیجهای داره؟
Anonymous Quiz
14%
مدل به شدت overfit شده
14%
تنظیم L2 به اشتباه به عنوان L1 اجرا شده
50%
مقدار λ بیش از حد بزرگه و ممکنه به underfitting منجر شه.
23%
این یه سناریو غلطه و باید بررسی شه که آیا محاسبات به درستی انجام شده یا نه
😎6👍3❤1👏1
#Machine_Learning
#Regularization
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👌7❤3👍2
👨🏫 ترکیب رگولاریزاسیون L1 و L2
تکنیک ترکیب L1 Regularization و L2 Regularization، که گاهی به عنوان Elastic Net هم شناخته میشه، یه تکنیک پیشرفته در یادگیری ماشینه که برای جلوگیری از overfitting (بیشبرازش) در مدلهای پیچیده استفاده میشه. این روش با اضافه کردن دو جمله جریمه به تابع هزینه مدل، مزایای L1 و L2 رو ترکیب میکنه.
🔵 جملههای جریمه در Elastic Net
در این روش، جمله جریمه شامل دو بخشه: یک بخش براساس L1 (مجموع مطلق ضرایب) و بخش دیگر براساس L2 (مجموع مربع ضرایب). فرمول Elastic Net ترکیبی از این دو جریمهست و به این شکله:
Elastic Net = α * sum(|w|) + β * sum(w²)
در اینجا، α و β ضرایبی هستن که میزان تأثیر L1 و L2 رو تعیین میکنن.
🔵 تأثیر Elastic Net
این تکنیک به حفظ تعادل بین ویژگیهای با اهمیت (که L1 ممکنه حذف کنه) و جلوگیری از وابستگی شدید به ویژگیهای خاص (مشکلی که در L2 ممکنه پیش بیاد) کمک میکنه. همچنین، میتونه در موقعیتهایی که ویژگیها با هم همبستگی دارن، مفید باشه.
🔵 نحوه انتخاب α و β
انتخاب این ضرایب باید با دقت انجام بشه. مقدارهای بالای α ممکنه باعث ایجاد Sparsity (صفر شدن بعضی ضرایب) بشه، در حالی که مقدارهای بالای β ممکنه باعث کاهش تأثیر این Sparsity بشه. تعادل بین این دو بخش برای به دست آوردن بهترین عملکرد مدل ضروریه.
🔵 کاربردها و محدودیتها
این تکنیک در مدلهای پیچیده با تعداد زیادی ویژگی، به ویژه زمانی که تعدادی از ویژگیها با هم همبستگی دارن، کاربرد داره. اما، تنظیم دقیق پارامترها میتونه چالشبرانگیز باشه.
🔵 پارامترهای alpha و l1_ratio در کد Elastic Net
🔵 نقش alpha: این پارامتر میزان کلی جریمهای که به مدل اعمال میشه رو تعیین میکنه. هرچی
انتخاب
🔵 نقش l1_ratio: این پارامتر تعیین میکنه که چه میزان از جریمه کلی به L1 (رگرسیون لاسو) اختصاص داره و چه میزان به L2 (رگرسیون ریج).
با تنظیم
#Machine_Learning
#Regularization
@Data_ML | دیتاساینس و ماشین لرنینگ
تکنیک ترکیب L1 Regularization و L2 Regularization، که گاهی به عنوان Elastic Net هم شناخته میشه، یه تکنیک پیشرفته در یادگیری ماشینه که برای جلوگیری از overfitting (بیشبرازش) در مدلهای پیچیده استفاده میشه. این روش با اضافه کردن دو جمله جریمه به تابع هزینه مدل، مزایای L1 و L2 رو ترکیب میکنه.
در این روش، جمله جریمه شامل دو بخشه: یک بخش براساس L1 (مجموع مطلق ضرایب) و بخش دیگر براساس L2 (مجموع مربع ضرایب). فرمول Elastic Net ترکیبی از این دو جریمهست و به این شکله:
Elastic Net = α * sum(|w|) + β * sum(w²)
در اینجا، α و β ضرایبی هستن که میزان تأثیر L1 و L2 رو تعیین میکنن.
این تکنیک به حفظ تعادل بین ویژگیهای با اهمیت (که L1 ممکنه حذف کنه) و جلوگیری از وابستگی شدید به ویژگیهای خاص (مشکلی که در L2 ممکنه پیش بیاد) کمک میکنه. همچنین، میتونه در موقعیتهایی که ویژگیها با هم همبستگی دارن، مفید باشه.
انتخاب این ضرایب باید با دقت انجام بشه. مقدارهای بالای α ممکنه باعث ایجاد Sparsity (صفر شدن بعضی ضرایب) بشه، در حالی که مقدارهای بالای β ممکنه باعث کاهش تأثیر این Sparsity بشه. تعادل بین این دو بخش برای به دست آوردن بهترین عملکرد مدل ضروریه.
این تکنیک در مدلهای پیچیده با تعداد زیادی ویژگی، به ویژه زمانی که تعدادی از ویژگیها با هم همبستگی دارن، کاربرد داره. اما، تنظیم دقیق پارامترها میتونه چالشبرانگیز باشه.
alpha = 1.0
l1_ratio = 0.5
elastic_net_reg = ElasticNet(alpha=alpha, l1_ratio=l1_ratio, random_state=42)
alpha
بزرگتر باشه، جریمه بیشتری به ضرایب اعمال میشه و بنابراین، مدل سادهتر میشه. انتخاب
alpha = 1.0
به این معناست که جریمهای متوسط به مدل اعمال شه. این مقدار معمولاً به عنوان یک نقطه شروع خوب در نظر گرفته میشه، اما ممکنه برای هر مجموعه دادهای بهینه نباشه. تنظیم دقیق alpha
بر اساس دادهها به بهبود عملکرد مدل کمک میکنه.با تنظیم
l1_ratio
بر روی 0.5، ما به طور مساوی جریمه رو بین L1 و L2 تقسیم میکنیم. این انتخاب نشون دهنده تعادل بین تأثیرات L1 و L2 هست و برای موقعیتهایی که هر دو نوع جریمه ممکنه مفید باشن، مناسبه.#Machine_Learning
#Regularization
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👌9❤2🔥1👨💻1
❓کوئیز شماره ۲۹: چطور میتونیم بهترین ترکیب از alpha و l1_ratio رو در Elastic Net انتخاب کنیم؟
Anonymous Quiz
36%
با استفاده از آزمون و خطا
54%
با انجام Cross-Validation
4%
با انتخاب تصادفی
6%
با استفاده از فرمولهای ریاضی مشخص
👌8😎2❤1👏1
افزایش داده یا Data Augmentation یه تکنیک مهم برای افزایش اندازه مجموعه داده آموزشیه و با ایجاد نسخههای جدید و کمی متفاوت از دادههای موجود انجام میشه. هدف اینکه مدل یادگیری ماشین در برابر تغییرات جزئی توی دادهها مقاومتر شه و عملکردش بهبود پیدا کنه.
#Data_Augmentation
#Machine_Learning
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍2👌2👨💻2
❓کوئیز شماره ۳۰: کدوم کتابخونه زیر برای افزایش داده (Data Augmentation) کاربرد نداره؟
Anonymous Quiz
18%
Pytorch
23%
Augmentor
23%
Albumentations
38%
NumPy
❤6👍2😎2
#Data_Augmentation
#Machine_Learning
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👌7❤2👍1
توی فرآیند آموزش مدل، مفهوم انتخاب ویژگی (Feature Selection) اهمیت زیادی داره. این فرآیند با انتخاب باارزشترین و کارآمدترین Featureها، دقت و قابلیت تفسیرپذیری مدل رو افرایش میده.
#Machine_Learning
#Feature_Selection
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9👌1👨💻1
❓کوئیز شماره ۳۱: تاثیر واریانس در Feature Selection
چرا حذف ویژگیها با واریانس کم مهمه؟ کدوم متد در scikit-learn برای حذف ویژگیها با واریانس کم استفاده میشه؟
چرا حذف ویژگیها با واریانس کم مهمه؟ کدوم متد در scikit-learn برای حذف ویژگیها با واریانس کم استفاده میشه؟
Anonymous Quiz
5%
افزایش سرعت آموزش مدل، SelectKBest
21%
بهبود دقت پیشبینی مدل، VarianceThreshold
14%
جلوگیری از بیشبرازش، SelectKBest
60%
همه موارد بالا، VarianceThreshold
😎5❤3👌1
#Machine_Learning
#Feature_Selection
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤3👌1
همونطور که توی پستهای قبل گفتیم، روشهای تنظیم توی یادگیری ماشین رو میشه به طور کلی به دو دسته تقسیم کرد: راهکارهای مبتنی به ویژگیها و راهکارهای مبتنی به مدل. توی این پست میخوایم راهکارهای مبتنی به مدل رو بیشتر بررسی کنیم.
یکی از روشهای تنظیم توی درخت تصمیم، هرس کردن (Pruning) درخته. هرس کردن شامل حذف بعضی از شاخهها یا گرههای درخت به منظور جلوگیری از بیشبرازشه. یک روش متداول برای هرس کردن، کنترل عمق درخته. با محدود کردن عمق درخت، از پیچیدگی بیش از حد مدل و یادگیری جزئیات نامربوط به دادههای آموزشی جلوگیری میشه.
توی شبکههای عصبی، یکی از روشهای تنظیم مدل، اعمال محدودیت روی وزنهای شبکهست. این کار معمولاً از طریق اضافه کردن یه جمله تنظیمکننده (Regularization Term) به تابع هزینه انجام میشه که روزهای گذشته درموردشون آموزش دادیم. دو روش محبوب تنظیم وزنها، L1 و L2 هستن که به ترتیب باعث ایجاد وزنهای کمتر و محدود کردن اندازه وزنهاست.
توی ماشینهای بردار پشتیبان (SVM)، پارامتر C نقش مهم تنظیم مدل رو به عهده داره. این پارامتر میزان جریمه خطاهای دستهبندی رو تعیین میکنه. مقدار کمتر C باعث میشه که مدل تا حدی انعطافپذیر باشه و بیشبرازش کمتری داشته باشه، در حالی که مقدار بیشتر C به مدل اجازه میده که به دادههای آموزشی بیشتر توجه کنه، اما در نتیجه ممکنه بیشبرازش اتفاق بیوفته.
توی مدلهای رگرسیون، گاهی اوقات کاهش تعداد ویژگیها (Feature Reduction) به عنوان یک روش تنظیم مدل به کار میره. این روش شامل حذف ویژگیهای کم اهمیت یا ترکیب ویژگیهای مرتبط باهمه تا پیچیدگی مدل کم و عملکردش روی دادههای جدید بهتر شه.
#Machine_Learning
#Regularization
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8👌2❤1👨💻1
❓کوئیز شماره ۳۲: کدوم روش هرس به صورت رایج در الگوریتمهای درخت تصمیم استفاده میشه؟
Anonymous Quiz
40%
هرس پیشبینی محور (Predictive Pruning)
29%
هرس پسین (Post-pruning)
25%
هرس تصادفی (Random Pruning)
5%
هرس بر اساس زمان (Time-based Pruning)
👍7❤2🤔1
#Weekend
#Machine_Learning
#Regularization
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👨💻3👌2
#Machine_Learning
#Cross_Validation
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👌2🔥1
اعتبارسنجی متقابل (Cross Validation) یه روش مهم برای تخمین دقت مدلهای یادگیری ماشینه و کمک میکنه تا درک بهتری از این داشته باشیم که مدل چطور روی دادههای دیده نشده عمل میکنه. Cross Validation برای جلوگیری از overfitting و بهبود تعمیم پذیری اهمیت زیادی داره. در ادامه انواع مختلفش رو بررسی میکنیم:
توی این روش، دادهها به k بخش تقسیم میشن. هر بخش یک بار به عنوان داده تست استفاده میشه و k-1 بار دیگر به عنوان داده آموزش. برای مثال اگه k=5، دادهها به 5 بخش تقسیم میشن و هر بخش یه بار به عنوان داده تست و 4 بار به عنوان داده آموزش استفاده میشه. این روش برای دادههایی با توزیع یکنواخت و زمانی که حجم دادهها نه خیلی کم و نه خیلی زیاده، مناسبه.
توی این روش، دادهها به نحوی تقسیم میشن که هر بخش توزیعی شبیه به توزیع کلی دادهها داره. این روش برای حفظ تناسب نمونهها توی دستههای مختلف مفیده. یعنی تضمین میکنه که هر بخش از دادهها نمایندهای از کل دادهها باشن، مخصوصا در مورد ویژگیهای مهم و تاثیرگذار. این روش برای دادههای دستهبندی شده و زمانی که نمونههای مختلف در دستهها به صورت نامتوازن توزیع شدن مناسبه.
این روش برای دادههای سری زمانی استفاده میشه، جایی که ترتیب زمانی دادهها مهمه. توی این روش دادهها بر اساس ترتیب زمانی تقسیم میشن تا تأثیر زمان روی دادهها حفظ بشه و برای پیشبینی مالی یا هواشناسی کاربرد داره.
#Machine_Learning
#Cross_Validation
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2👨💻1
❓کوئیز شماره ۳۳: اعتبارسنجی متقاطع چطور از بیشبرازش جلوگیری میکنه؟
Anonymous Quiz
12%
با افزایش تعداد ویژگیهای داده
10%
با کاهش حجم دادههای آموزش
63%
با استفاده متناوب از بخشهای مختلف داده به عنوان داده تست
15%
با افزایش تعداد دورههای (iteration) آموزش
❤6😎4👌1
زمان استفاده از CV، نرخ خطای مجموعه اعتبارسنجی میتونه متغیر باشه. در نتیجه پیشبینی دقت مدل روی دادههای جدید میتونه دقیق نباشه. این مشکل زمانی که با دیتاست نامتوازن یا محدود مواجه هستیم بیشتر نمود پیدا میکنه.
توی هر دوره از فرایند CV، فقط بخشی از دادهها برای آموزش مدل به کار برده میشه. یعنی مدل فرصت استفاده از تمام دادههای موجود رو نداره. این مسئله مخصوصا زمانی که دادهها محدود هستن، به نتایج کمتر دقیق و کاهش توانایی تعمیمپذیری مدل منجر میشه.
در اصل میشه گفت ویژگیهای منحر بفرد Cross Validation در شرایطی میتونن جزو معایب این روش هم باشن و اینکه این روش مفید باشه یا ناکارآمد کاملا بستگی به شرایط دادهها داره.
#Machine_Learning
#Cross_Validation
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👌9❤2👍1👨💻1
اعتبارسنجی متقابل k-برابر (k-fold Cross-Validation) یکی از انواع اعتبار سنجی متقابله و زمانی که مقدار دادههای موجود محدودن، بسیار مفیده و کاربرد داره. این روش به ما امکان میده تا ارزیابی دقیقتر و بدون سوگیری از مدلهای پیچیده داشته باشیم و به درک بهتر از تواناییها و محدودیتهای مدلهای مورد استفاده کمک میکنه.
تقسیم دادهها: در مرحله اول، دادهها به k بخش تقسیم میشن.
آموزش و آزمایش: برای هر تکرار، k-1 بخش برای آموزش و 1 بخش برای آزمایش استفاده میشه.
تکرار: این فرآیند برای هر یک از kها تکرار میشه.
انتخاب مقدار k بسیار مهمه و به طور مستقیم روی عملکرد مدل تأثیر داره و معمولا از مقادیر 5 یا 10 برای k استفاده میشه. زمانیکه با دادههای نامتوازن روبرو هستیم، استفاده از تکنیکهای خاص (مثل Stratified K-Fold، Resampling، Data Augmentation) برای حفظ توازن توی هر بخش ضروریه. این روشها به ما کمک میکنن تا یکنواختی و دقت بیشتری در طول فرایند اعتبارسنجی متقابل داشته باشیم و نتایج قابل اعتمادتری بگیریم.
استفاده از k-fold برای تنظیم پارامترهای مدل (hyperparameter tuning)، این امکان رو میده که بهترین ترکیب پارامترها رو برای مدل پیدا کنیم. این کار با انجام آزمایشهای متعدد و مقایسه نتایج حاصل از هر کدوم انجام میشه. همچنین، k-fold امکان مقایسه عملکرد چندین مدل مختلف رو ممکن میکنه که در نتیجه میشه بهینهترین مدل رو انتخاب کرد.
#Machine_Learning
#Cross_Validation
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤4👌2👍1