#Machine_Learning
#Logistic_Regression
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤1👨💻1
توی این پست، به مدلهای مختلف رگرسیون لجستیک توی کتابخانه Sklearn میپردازیم. Sklearn یه کتابخانه محبوب زبان برنامهنویسی پایتونه که توی حوزه یادگیری ماشین کاربرد داره.
این مدل اولیه در Sklearn بهتون اجازه میده تا مسائل دستهبندی دوتایی و چندتایی رو حل کنین. میتونین با تنظیم پارامترهایی مانند
solver
(الگوریتم بهینهسازی) و penalty
(نوع جریمه برای جلوگیری از بیشبرازش)، مدل رو براساس تسک تنظیم کنین.from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
X, y = load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
model = LogisticRegression(solver='liblinear')
model.fit(X_train, y_train)
print(f'Accuracy: {model.score(X_test, y_test)}')
این مدل، LogisticRegression رو با قابلیت اعتبارسنجی متقاطع (Cross-Validation) ارائه میده. در نتیجه میتونین بهترین پارامترها مثل
Cs
(مقادیر مختلف برای قدرت جریمه) رو پیدا کنین و مدل رو حین آموزش بهینه کنین.from sklearn.linear_model import LogisticRegressionCV
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
X, y = load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
model = LogisticRegressionCV(Cs=10, cv=4, random_state=0)
model.fit(X_train, y_train)
print(f'Accuracy: {model.score(X_test, y_test)}')
این مدل برای دستهبندی با استفاده از روش گرادیان کاهشی تصادفی (Stochastic Gradient Descent) کار میکنه. با تنظیم پارامتر
loss
به log
, میتونین از این مدل برای رگرسیون لجستیک استفاده کنین. این مدل برای دادههای بزرگ و پیچیده مناسبه.from sklearn.linear_model import SGDClassifier
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
X, y = load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
model = SGDClassifier(loss='log', max_iter=1000, tol=1e-3)
model.fit(X_train, y_train)
print(f'Accuracy: {model.score(X_test, y_test)}')
#Machine_Learning
#Logistic_Regression
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👨💻2👍1
❓کوئیز شماره ۲۶: LogisticRegression در Sklearn
کدوم گزینه در مورد multi_class در LogisticRegression صحیحه؟
کدوم گزینه در مورد multi_class در LogisticRegression صحیحه؟
Anonymous Quiz
20%
حالت multi_class=multinomial فقط برای دستهبندیهای دوتایی مناسبه.
3%
حالت multi_class=auto همیشه ovr رو انتخاب میکنه.
74%
حالت multi_class=multinomial برای مسائل دستهبندی چندتایی بهینهست.
3%
حالت multi_class=ovr بهترین گزینه برای دادههای بزرگه.
😎6👍4❤2🤔1
یه نکته قابل توجه در مورد استفاده از SGDClassifier برای رگرسیون لجستیک اینکه این مدل به دلیل استفاده از روش گرادیان کاهشی تصادفی (SGD)، به تنظیم دقیقتر پارامترها و دادههای اولیه نیاز داره.
برعکس LogisticRegression و LogisticRegressionCV که به صورت خودکار به بهینهسازی دقیقتر میپردازن، SGDClassifier ممکنه به دلیل طبیعت تصادفیش در هر بار اجرا نتایج متفاوتی ارائه بده. این ویژگی میتونه در مجموعه دادهها با حجم بالا و پیچیدگی زیاد مفید باشه، اما ممکنه در مجموعههای کوچک یا سادهتر به اندازه دو مدل دیگه دقیق نباشه.
در نتیجه، استفاده از SGDClassifier در مواردی که دقت و پایداری در هر بار اجرا اهمیت داره، باید با دقت انجام شه و احتمالاً نیاز به اعمال تکنیکهایی مثل تنظیم پارامتر و تکرار چند باره برای رسیدن به نتایج معتبر داره.
#Machine_Learning
#Logistic_Regression
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7👏1👨💻1
#Weekend
#Machine_Learning
#Logistic_Regression
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤3👏1
Audio
@DSLanders | دیاسلندرز
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2🔥1👌1
#Machine_Learning
#Regularization
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤4👨💻1
تکنیک L1 Regularization که گاهی به عنوان Lasso Regularization هم شناخته میشه، یه تکنیک در یادگیری ماشینه که برای جلوگیری از overfitting (بیشبرازش) در مدلهای پیچیده استفاده میشه. این روش با اضافه کردن یه جمله جریمه به تابع هزینه مدل، به کنترل پیچیدگی کمک میکنه.
L1 = α * sum(|w|)
این تکنیک میتونه منجر به وزنهایی شه که برابر با صفر هستن (Sparsity)، در نتیجه بعضی از ویژگیها کاملاً از مدل حذف شن. علاوه بر این به طور طبیعی میتونه به عنوان یه روش انتخاب ویژگی (Feature Selection) عمل کنه.
افزایش λ و انتخابش با مقدار بزرگ منجر به افزایش جریمه و کاهش پیچیدگی مدل میشه و میتونه underfitting ایجاد کنه. کاهش λ منجر به کاهش تأثیر regularization و افزایش خطر overfitting میشه.
این تکنیک توی مدلهایی با تعداد ویژگی زیاد، مخصوصا زمانیکه بعضی ویژگیها ممکنه نامرتبط باشن، کاربرد داره. همچنین با کمک به کاهش وابستگی به دادههای آموزشی، پیشبینیهای پایدارتری ارائه میده. تعیین مقدار مناسب برای λ میتونه چالشبرانگیز باشه و گاهی ممکنه بعضی ویژگیهای مهم به اشتباه حذف شن.
فرض کنین یه مدل رگرسیون داریم که برای پیشبینی قیمت خونه استفاده میشه. دادههای آموزشی این مدل شامل ویژگیهایی مثل متراژ، تعداد اتاقها و موقعیت مکانیه. با استفاده از L1 Regularization، میتوانیم از overfitting جلوگیری کنیم و دقت مدل رو بهبود ببخشیم. برای این کار، باید مقدار α رو تنظیم کنیم. مقدار α باید به طوری باشه که باعث شه وزنهای مدل کوچک شن، اما باعث کاهش دقت مدل نشه. با آزمایش مقدارهای مختلف α، میتونیم مقدار مناسبی رو پیدا کنیم که باعث بهبود عملکرد مدل شه.
تکنیک L1 Regularization یه ابزار قدرتمنده که به کاهش overfitting و بهبود تعمیمپذیری کمک میکنه.
#Machine_Learning
#Regularization
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤4👨💻1
❓کوئیز شماره ۲۷: کدوم گزینه یک تکنیک تنظیم (regularization) هست؟
Anonymous Quiz
5%
Ridge Regression، که جمع مربعهای ضرایب رو جریمه میکنه (L2)
19%
Lasso Regression، که مجموع مطلق مقادیر ضرایب رو جریمه میکنه (L1)
7%
Elastic Net، ترکیب محدبی از Ridge و Lasso
69%
همه موارد
😎7👍3❤2🔥1
#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