توی این آموزش به بررسی مدلهای رگرسیون خطی در کتابخانه
scikit-learn
(sklearn
)، که یکی از کتابخانههای محبوب در زمینه یادگیری ماشینه، میپردازیم. scikit-learn
ابزارهای قدرتمندی رو برای ایجاد، آموزش و ارزیابی مدلهای رگرسیون خطی در اختیار ما قرار میده.گرسیون خطی ساده، رابطهای بین یک متغیر مستقل و یک متغیر وابسته رو مدلسازی میکنه و رگرسیون خطی چندگانه زمانی استفاده میشه که بیشتر از یه متغیر مستقل وجود داره.
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
این مدل رگرسیون خطی با اعمال یه جریمه (
alpha
) روی مجموع مربعات ضرایب عمل میکنه، که این کار به منظور پیشگیری از پدیده بیشبرازش انجام میشه.from sklearn.linear_model import Ridge
model = Ridge(alpha=1.0)
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
رگرسیون Lasso با اضافه کردن یه جریمه به مجموع مطلق ضرایب از بیشبرازش جلوگیری میکنه.
from sklearn.linear_model import Lasso
model = Lasso(alpha=1.0)
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
این مدل ترکیبی از Ridge و Lasso هست و هر دو نوع جریمه رو اعمال میکنه.
from sklearn.linear_model import ElasticNet
model = ElasticNet(alpha=1.0, l1_ratio=0.5) # l1_ratio تعادل بین ریج و لاسو را تعیین میکند
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
۱. وارد کردن کلاس مربوطه: اول باید کلاس مربوط به مدل مورد نظر رو از
sklearn
وارد کنین.۲. ایجاد نمونه مدل: با استفاده از کلاس وارد شده، یه نمونه از مدل ایجاد کنین.
۳. آموزش مدل: مدل رو با استفاده از دادههای آموزشی آموزش بدین.
۴. ارزیابی مدل: با استفاده از دادههای تست، عملکرد مدل رو ارزیابی کنین.
در نهایت،
scikit-learn
به شما این امکان رو میده که با استفاده از این مدلها، برآورد دقیق و قابل اطمینانی از روابط بین متغیرهای مختلف ایجاد کنین، که یکی از مهمترین بخشهای یادگیری ماشینه.#Data_science
#Machine_Learning
#Regression
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍3🔥2👨💻2
❓کوئیز شماره ۲۰: رگرسیون Ridge و Lasso
کدوم گزینه در مورد هر دو رگرسیون Ridge و Lasso درسته؟
کدوم گزینه در مورد هر دو رگرسیون Ridge و Lasso درسته؟
Anonymous Quiz
75%
هر دو مدل از پدیده بیشبرازش جلوگیری میکنن
12%
هر دو مدل تعداد پارامترها رو افزایش میدن
5%
هر دو مدل نیاز به مقیاسبندی ویژگیها ندارن
8%
هر دو مدل به طور خودکار ویژگیهای مهم رو انتخاب میکنن
❤8😎5👍1
#Weekend
#Machine_Learning
#Regression
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤4🔥1
توی این وبینار تفاوتهای ماشین لرنینگ، دیپلرنینگ و هوش مصنوعی رو بررسی میکنیم؛ همینطور نکتههای لازم برای شروع یادگیری در حوزه ماشین لرنینگ و منابع مطالعاتی مفید رو معرفی میکنیم؛ درنهایت، توضیح میدیم که چطور میتونین توی این زمینه شغل پیدا کنین و ارتباط مؤثری بین دانشگاه و صنعت برقرار کنین.
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2👏1
#Machine_Learning
#Logistic_Regression
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍1🔥1👨💻1
رگرسیون لجستیک یکی از الگوریتمهای یادگیری ماشین با ناظره که برای طبقهبندی دادهها استفاده میشه و بر اساس احتمالات کار میکنه. یعنی احتمال اینکه یه نمونه متعلق به یک طبقه خاص باشه رو تخمین میزنه. Logistic Regression بهویژه برای طبقهبندی دادهها با دو طبقه مناسبه، مثل طبقهبندی ایمیلها بهعنوان اسپم یا واقعی.
#Machine_Learning
#Logistic_Regression
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👏2👨💻2
❓کوئیز شماره ۲۱: روش برازش داده در Logistic Regression
در Logistic Regression از کدوم روش برای پیدا کردن بهترین برازش روی دادهها استفاده میکنیم؟
در Logistic Regression از کدوم روش برای پیدا کردن بهترین برازش روی دادهها استفاده میکنیم؟
Anonymous Quiz
31%
Least Square Error
34%
Maximum Likelihood
7%
Jaccard distance
28%
گزینه ۱ و ۲
😎4❤2👍1👏1
💡مقایسه رگرسیون و لجستیک رگرسیون
🔵 رگرسیون خطی برای پیشبینی مقادیر پیوسته مثل قیمت خونه، وزن یه نفر یا نمره آزمون استفاده میشه. این الگوریتم با پیدا کردن خطی که بهترین ارتباط رو بین متغیرهای مستقل و وابسته داره، کار میکنه.
🔵 رگرسیون لجستیک برای پیشبینی مقادیر گسسته (Classification) مثل وضعیت بیمار (بیمار یا سالم)، وضعیت یه معامله (جعلی یا واقعی) یا گروه خونی فرد (A، B، AB یا O) استفاده میشه. این الگوریتم با پیدا کردن یه تابع سیگموئید که احتمال وقوع یه رویداد رو پیشبینی میکنه، کار میکنه.
🔵 تفاوت اصلی بین رگرسیون و لجستیک رگرسیون در نوع خروجی شونه. رگرسیون خطی یک مقدار پیوسته تولید میکنه و لجستیک رگرسیون یه احتمال تولید میکنه.
#Machine_Learning
#Logistic_Regression
@Data_ML | دیتاساینس و ماشین لرنینگ
#Machine_Learning
#Logistic_Regression
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2🔥1
رگرسیون لجستیک میتونه در تشخیص بیماریهای قلبی، دیابت، سرطان و غیره استفاده شه. با تحلیل دادههای بیماران مثل سن، جنسیت، سابقه خانوادگی، و نتایج آزمایشهای بالینی، مدلهای پیشبینی ساخته میشن که احتمال وقوع بیماری رو بر اساس این متغیرها تخمین میزنن.
مثلاً در تشخیص بیماری دیابت، مدل بر اساس سطح گلوکز، فشار خون، شاخص توده بدنی و سایر متغیرها احتمال ابتلا به دیابت رو پیشبینی میکنه.
در بخشهای مالی، این مدلها میتونن به بانکها و موسسات اعتباری کمک کنن تا احتمال پرداخت یا عدم پرداخت وامها توسط مشتریان رو برآورد کنن. این کار با بررسی پارامترهایی مثل تاریخچه اعتباری، درآمد، و میزان بدهیهای فعلی انجام میشه.
مدلهای پیشبینی تعیین میکنن که چه افرادی با احتمال بالاتری وامهاشون رو بازپرداخت میکنن، که در نتیجه به تصمیمگیری در اعطای وام کمک میکنه.
در بخش بیمه و بانکداری، مدلهای رگرسیون لجستیک میتوند برای شناسایی تراکنشهای مشکوک و احتمال تقلب استفاده شن. این مدلها با بررسی الگوهای غیرمعمول در تراکنشها، موارد مشکوک رو شناسایی میکنن.
برای مثال، در تشخیص تقلب کارت اعتباری، مدل میتونه بر اساس مکان، مبلغ، و زمان تراکنشها، تراکنشهایی که احتمال داره تقلبی باشن رو شناسایی کنه.
در بازاریابی، این مدلها میتونن برای تحلیل رفتار خرید مشتریان و پیشبینی احتمال خرید محصولات یا خدمات خاص استفاده شن. این کار با تجزیه و تحلیل دادههایی مثل سابقه خرید و ترجیحات مشتری انجام میشه.
مدلها میتونن به شرکتها کمک کنن تا تعیین کنن کدوم مشتریان با احتمال بیشتری به خرید محصول جدید علاقهمندن.
در حوزه منابع انسانی، مدلهای رگرسیون لجستیک میتونن برای پیشبینی عواملی مثل احتمال ترک شغل توسط کارکنان یا میزان درصد پذیرش کارجویان برای یه موقعیت شغلی خاص، استفاده شن.
این مدلها میتونن به مدیران منابع انسانی کمک کنن تا برنامههای حفظ نیروی کار رو بر اساس نیازهای خاص کارکنانشون طراحی کنن.
در آموزش، مدلهای رگرسیون لجستیک میتونن برای تجزیه و تحلیل عملکرد دانشآموزان و پیشبینی احتمال موفقیت یا شکست تحصیلیشون استفاده شن.
این مدلها میتونن توی تشخیص دانشآموزانی که ممکنه به حمایت بیشتری نیاز داشته باشن یا پیشبینی عملکردشون در امتحانات و تکالیف آینده کمک کنن.
#Machine_Learning
#Logistic_Regression
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍1👨💻1
❓کوئیز شماره ۲۲: استانداردسازی در Logistic Regression
آیا باید قبل از آموزش یه Logistic Regression، برای ویژگیها استانداردسازی (Standardization) انجام بدیم؟
آیا باید قبل از آموزش یه Logistic Regression، برای ویژگیها استانداردسازی (Standardization) انجام بدیم؟
Anonymous Quiz
79%
بله
21%
خیر
😎7❤2👍2🤔1
لجستیک رگرسیون توانایی بالایی توی تحلیل و فهم روابط پیچیده بین عوامل مختلف داره. این مدل به پیشبینی بله یا خیر (مثل بیمار بودن یا نبودن) محدود نمیشه و میتونه درک که که چطور عوامل مختلفی مثل سن، جنسیت، سبک زندگی، و حتی وضعیت محیطی، با هم تعامل دارن و نتایج رو تحت تاثیر قرار میدن.
پس، رگرسیون لجستیک نه تنها یه ابزار پیشبینی سادهست، بلکه میتونه به ما درک عمیقتری درباره چگونگی تأثیر متقابل عوامل متعدد در پدیدههای مختلف بده و این توانایی اونو به ابزاری ارزشمند در تحلیل دادهها در حوزههای مختلف تبدیل کرده.
#Machine_Learning
#Logistic_Regression
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3🔥1👨💻1
به تابع هزینه (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