آموزش رایگان صفر تا صد یادگیری ماشین (Machine Learning) به زبان ساده
-
خوش آمدید به یادگیری ماشین!
-
میانگین، میانه و مد در یادگیری ماشین
-
انحراف معیار (Standard Deviation) در یادگیری ماشین
-
صدک (Percentile) در یادگیری ماشین
-
توزیع دادهها در یادگیری ماشین
-
توزیع نرمال دادهها در یادگیری ماشین
-
نمودار پراکندگی (Scatter Plot) در یادگیری ماشین
-
رگرسیون خطی در یادگیری ماشینی
-
رگرسیون چندجملهای در یادگیری ماشین
-
رگرسیون چندگانه در یادگیری ماشین
-
روش Train/Test در یادگیری ماشین
-
درخت تصمیمگیری در یادگیری ماشین
-
ماتریس سردرگمی (Confusion Matrix) در یادگیری ماشین
-
خوشهبندی سلسلهمراتبی (Hierarchical Clustering) در یادگیری ماشین
-
رگرسیون لجستیک در یادگیری ماشین
-
Grid Search در یادگیری ماشین
-
پردازش دادههای دستهای (Categorical Data) در یادگیری ماشین
-
خوشهبندی K-Means در یادگیری ماشین
-
یادگیری Bootstrap Aggregation (Bagging) در یادگیری ماشین
-
کراس والیدیشن (Cross Validation) در یادگیری ماشین
-
منحنی AUC - ROC در یادگیری ماشین
-
الگوریتم K-Nearest Neighbors (KNN) در یادگیری ماشین
رگرسیون لجستیک در یادگیری ماشین
رگرسیون لجستیک یکی از الگوریتمهای پرکاربرد در یادگیری ماشین برای حل مسائل طبقهبندی است. در این مقاله، با مفاهیم اساسی، نحوه پیادهسازی در پایتون، و تحلیل خروجی مدل آشنا میشوید.
📖 فهرست مطالب
1️⃣ رگرسیون لجستیک چیست؟ 🧐
رگرسیون لجستیک یک الگوریتم یادگیری ماشین است که برای حل مسائل طبقهبندی (Classification) استفاده میشود. برخلاف رگرسیون خطی (Linear Regression) که مقادیر عددی را پیشبینی میکند، رگرسیون لجستیک احتمال یک دسته خاص را مشخص میکند.
📌 مثال:
✅ آیا یک ایمیل اسپم است یا خیر؟
✅ آیا یک تومور سرطانی است یا خوشخیم؟
✅ پیشبینی جنسیت کاربر بر اساس سن و قد.
📌 انواع رگرسیون لجستیک:
نوع | توضیح | مثال |
---|---|---|
دودویی (Binary) | دو خروجی دارد: ۰ یا ۱ | تشخیص سرطانی بودن تومور (بله یا خیر) |
چندکلاسه (Multinomial) | بیش از دو خروجی دارد | دستهبندی گلهای زنبق به ۳ گونه مختلف |
در این مقاله، ما رگرسیون لجستیک دودویی را با یک مثال واقعی بررسی میکنیم.
2️⃣ نحوه کار رگرسیون لجستیک ⚙️
رگرسیون لجستیک به جای پیشبینی مقدار دقیق، احتمال یک نتیجه را محاسبه میکند. فرمول کلی آن به شکل زیر است:
P(Y=1) = \frac{e^{(b_0 + b_1 X)}}{e^{(b_0 + b_1 X)} + 1}
🔹 b₀ و b₁: ضرایب مدل که یاد گرفته میشوند.
🔹 X: مقدار متغیر ورودی (مثلاً اندازه تومور).
🔹 P(Y=1): احتمال اینکه خروجی ۱ (مثلاً سرطانی بودن تومور) باشد.
🛠 تبدیل مقدار به احتمال:
- ابتدا مقدار ورودی را در ضریب ضرب میکنیم.
- مقدار حاصل را نمایی میکنیم تا نسبت شانس (Odds) را بدست آوریم.
- نسبت شانس را به احتمال تبدیل میکنیم.
3️⃣ پیادهسازی رگرسیون لجستیک در پایتون 🐍
📌 وارد کردن کتابخانههای لازم
import numpy
from sklearn import linear_model
📌 ایجاد مجموعه داده (Dataset)
# X: اندازه تومور در سانتیمتر
X = numpy.array([3.78, 2.44, 2.09, 0.14, 1.72, 1.65, 4.92, 4.37, 4.96, 4.52, 3.69, 5.88]).reshape(-1,1)
# y: برچسبها (۰ = غیرسرطانی، ۱ = سرطانی)
y = numpy.array([0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1])
💡 نکته: آرایه X
باید به یک ستون (column) تبدیل شود تا در مدل ()LogisticRegression
قابل استفاده باشد.
📌 ساخت و آموزش مدل
logr = linear_model.LogisticRegression()
logr.fit(X, y)
مدل ما اکنون آماده پیشبینی است! 🎯
📌 پیشبینی سرطان بر اساس اندازه تومور
predicted = logr.predict(numpy.array([3.46]).reshape(-1,1))
print(predicted)
🔹 خروجی: [0]
→ یعنی تومور سرطانی نیست.
4️⃣ ضریب (Coefficient) در رگرسیون لجستیک 📊
در رگرسیون لجستیک، ضرایب نشان میدهند که چقدر تغییر در متغیر ورودی، احتمال وقوع یک رویداد را تغییر میدهد.
📌 محاسبه ضریب و نسبت شانس (Odds Ratio)
log_odds = logr.coef_
odds = numpy.exp(log_odds)
print(odds)
🔹 خروجی: [4.03541657]
💡 این مقدار نشان میدهد که به ازای هر ۱ میلیمتر افزایش اندازه تومور، احتمال سرطانی بودن آن ۴ برابر بیشتر میشود.
5️⃣ محاسبه احتمال سرطانی بودن تومور 🎯
📌 ایجاد تابع محاسبه احتمال
def logit2prob(logr, x):
log_odds = logr.coef_ * x + logr.intercept_
odds = numpy.exp(log_odds)
probability = odds / (1 + odds)
return probability
📌 محاسبه احتمال برای هر مقدار در X
print(logit2prob(logr, X))
📌 نتایج تحلیل احتمال
اندازه تومور (cm) | احتمال سرطانی بودن |
---|---|
3.78 | 61% |
2.44 | 19% |
2.09 | 13% |
0.14 | 1% |
1.72 | 8% |
1.65 | 7% |
4.92 | 88% |
4.37 | 78% |
4.96 | 89% |
4.52 | 81% |
3.69 | 57% |
5.88 | 96% |
🔍 جمعبندی
✅ رگرسیون لجستیک برای طبقهبندی دادهها استفاده میشود.
✅ در این روش، احتمال وقوع یک رویداد محاسبه شده و به دستههای ۰ یا ۱ تبدیل میشود.
✅ در مثال ما، بر اساس اندازه تومور احتمال سرطانی بودن آن محاسبه شد.
✅ ضرایب مدل نشان میدهند که چگونه تغییر در متغیر مستقل بر احتمال تأثیر میگذارد.
✅ میتوان با استفاده از فرمول احتمال، شانس سرطانی بودن را برای هر مقدار مشخص کرد.