به تابع هزینه (Cost Function) در لجستیک رگرسیون، Cross-Entropy گفته میشه. این تابع به ما کمک میکنه تا میزان اختلاف بین پیشبینیهای مدل و دادههای واقعی رو اندازهگیری کنیم و هدف کاهش این اختلافه تا مدل بتونه پیشبینیهای دقیقتری ارائه بده.
import tensorflow as tf
# Binary Cross-Entropy
binary_CE = tf.keras.losses.BinaryCrossentropy()
loss = binary_CE(y_true, y_pred)
# Multi-Class Cross-Entropy
categorical_CE = tf.keras.losses.CategoricalCrossentropy()
loss = categorical_CE(y_true, y_pred)
#Machine_Learning
#Logistic_Regression
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍4👨💻2
❓کوئیز شماره ۲۳: تابع هزینه در لجستیک رگرسیون
چه زمانی تابع هزینه کراس آنتروپی توی لجستیک رگرسیون به بیشترین مقدارش میرسه؟
چه زمانی تابع هزینه کراس آنتروپی توی لجستیک رگرسیون به بیشترین مقدارش میرسه؟
Anonymous Quiz
21%
زمانی که پیشبینی دقیقاً برابر با برچسب واقعیه
54%
زمانی که پیشبینی کاملاً مخالف برچسب واقعی
20%
زمانی که تمام پیشبینیها 0.5 هستن
4%
تابع هزینه همیشه یک مقدار ثابت داره
❤6😎4👍1
میتونیم از یه تکنیک به نام "regularization" برای جلوگیری از بیشبرازش (overfitting) استفاده کنیم. بیشبرازش زمانی اتفاق میافته که مدل بیش از حد به دادههای آموزشی وابسته شده و توانایی تعمیم (generalization) به دادههای جدید رو از دست میده. Regularization با اضافه کردن یه جمله جریمهای (penalty term) به تابع هزینه (cost function)، وزنهای مدل رو کنترل میکنه.
دو روش رایج برای این کار، L1 Regularization و L2 Regularization هستن که به ترتیب به عنوان Lasso و Ridge شناخته میشن. این روشها با کنترل اندازه وزنها، از پیچیدگی بیش از حد مدل جلوگیری میکنن و کارایی رو در پیشبینی دادههای جدید افزایش میدن.
#Machine_Learning
#Logistic_Regression
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9👨💻3❤2
در رگرسیون لجستیک، هدف اصلی، تنظیم پارامترهای مدل به نحویه که خطای پیشبینی به حداقل برسه. این کار از طریق بهینهسازی تابع ضرر (Loss Function) انجام میشه که نشوندهنده تفاوت بین پیشبینیهای مدل و مقادیر واقعیه.
انتخاب روش بهینهسازی مناسب برای رگرسیون لجستیک به عواملی مثل ویژگیهای داده، اندازه مجموعه داده و پیچیدگی مدل بستگی دارد. به طور کلی، گرادیان کاهشی برای دادههای کم و گرادیان کاهشی تصادفی برای دادههای حجیم مناسبه، در حالی که روشهای نیوتن و شبه-نیوتن ممکنه در شرایط خاص کارایی بهتری داشته باشند.
#Machine_Learning
#Logistic_Regression
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🔥2👏2
❓کوئیز شماره ۲۴: روشهای بهینهسازی Logistic Regression
کدوم روش بیشترین سرعت همگرایی رو در رگرسیون لجستیک داره؟
کدوم روش بیشترین سرعت همگرایی رو در رگرسیون لجستیک داره؟
Anonymous Quiz
29%
گرادیان کاهشی مینی-بچ (Mini-Batch Gradient Descent)
40%
گرادیان کاهشی تصادفی (SGD)
27%
روش نیوتن-رافسون
4%
روش شبه-نیوتن (Quasi-Newton Methods)
😎5👍3❤1👏1
برای ارزیابی عملکرد مدل رگرسیون لجستیک، چندین معیار ارزیابی مختلف وجود داره که هر کدوم جنبههای مختلفی از عملکرد مدل رو مورد بررسی قرار میدن. این معیارها به ما کمک میکنن تا درک بهتری از کیفیت پیشبینیهای مدل به دست بیاریم.
دقت (Accuracy) یکی از سادهترین و رایجترین معیارهاست. این معیار نسبت تعداد پیشبینیهای صحیح به کل تعداد پیشبینیها رو نشان میده. دقت برای مسائلی که تعادل خوبی بین کلاسها دارن مناسبه، اما ممکنه در مواقعی که توزیع کلاسها نامتوازن هست، گمراه کننده باشه.
from sklearn.metrics import accuracy_score
y_true = [1, 0, 1, 1, 0, 1]
y_pred = [1, 0, 0, 1, 0, 1]
accuracy = accuracy_score(y_true, y_pred)
print("Accuracy:", accuracy)
سنجه Precision نشوندهنده تعداد پیشبینیهای صحیح مثبت نسبت به کل تعداد پیشبینیهای مثبته و سنجه Recall نشوندهنده تعداد پیشبینیهای صحیح مثبت نسبت به کل تعداد موارد واقعی مثبته.
from sklearn.metrics import precision_score, recall_score
precision = precision_score(y_true, y_pred)
recall = recall_score(y_true, y_pred)
print("Precision:", precision)
print("Recall:", recall)
سنجه F1 Score میانگین هارمونیک دقت کلاس و Recall هست. این معیار برای مواقعی که توازن بین دقت کلاس و Recall مهمه، مناسبه.
from sklearn.metrics import f1_score
f1 = f1_score(y_true, y_pred)
print("F1 Score:", f1)
منحنی ROC رابطه بین نرخ مثبتهای واقعی (True Positive Rate) و نرخ منفیهای کاذب (False Positive Rate) رو برای مجموعهای از آستانههای (Threshold) مختلف نشون میده.
به مساحتی که زیر منحنی ROC قرار میگیره، AUC میگن و به عنوان یه سنجه جامع برای ارزیابی کیفیت عملکرد کلی مدلهای طبقهبندی به کار میره. هرچی مقدار AUC به ۱ نزدیکتر باشه، نشون میده که مدل توانایی بالایی توی تفکیک بین کلاسهای مثبت و منفی داره و در نتیجه، عملکرد مدل بهتری داره.
from sklearn.metrics import roc_auc_score
# مقادیر y_pred باید به صورت احتمالات باشن. در اینجا فرض میکنیم y_pred احتمالات هستن.
y_pred_probs = [0.9, 0.1, 0.8, 0.9, 0.2, 0.7]
auc = roc_auc_score(y_true, y_pred_probs)
print("AUC:", auc)
ماتریس درهمریختگی جدولیه که تعداد پیشبینیهای صحیح و غلط رو در هر کلاس نشون میده. این ماتریس به تحلیل دقیقتر عملکرد مدل توی هر کلاس کمک میکنه.
from sklearn.metrics import confusion_matrix
conf_matrix = confusion_matrix(y_true, y_pred)
print("Confusion Matrix:\n", conf_matrix)
#Machine_Learning
#Logistic_Regression
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2👨💻1
❓کوئیز شماره ۲۵: معیارهای ازریابی Logistic Regression
کدوم معیار بهترین شاخص برای ارزیابی عملکرد یه مدل رگرسیون لجستیک توی مجموعه دادههای نامتوازنه؟ کدوم معیار نشون دهنده کیفیت تفکیک دادهها توسط مدله؟
کدوم معیار بهترین شاخص برای ارزیابی عملکرد یه مدل رگرسیون لجستیک توی مجموعه دادههای نامتوازنه؟ کدوم معیار نشون دهنده کیفیت تفکیک دادهها توسط مدله؟
Anonymous Quiz
19%
Accuracy - R-squared
23%
Precision - Log-Likelihood
54%
F1 Score - AUC-ROC
4%
Sensitivity - MSE
😎7👍3❤2
#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