رگرسیون لجستیک
آموزش رگرسیون لجستیک: تابع سیگموید، خروجی احتمال، آستانه تصمیم و پیادهسازی
رگرسیون لجستیک چیست؟
با وجود اسم «رگرسیون»، این الگوریتم برای دستهبندی است! خروجی آن یک احتمال بین ۰ و ۱ است که با آستانه (معمولاً ۰.۵) به کلاس تبدیل میشود.
تابع سیگموید
قلب الگوریتم، تابع S شکل سیگموید است که هر عدد را به بازه (۰، ۱) میبرد:
σ(z) = 1 / (1 + e^(-z))
- z بزرگ و مثبت → خروجی نزدیک ۱
- z بزرگ و منفی → خروجی نزدیک ۰
- z = 0 → خروجی ۰.۵
چگونه تصمیم میگیرد؟
- مقدار خطی
z = a₁x₁ + a₂x₂ + ... + bمحاسبه میشود - با سیگموید به احتمال تبدیل میشود:
p = σ(z) - اگر
p ≥ 0.5→ کلاس ۱، وگرنه کلاس ۰
پیادهسازی
from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
model.fit(X_train, y_train)
# احتمال کلاسها
probs = model.predict_proba(X_test)
# کلاس نهایی
preds = model.predict(X_test)
آستانه تصمیم
آستانه ۰.۵ همیشه بهترین نیست! در تشخیص بیماری، شاید آستانه ۰.۳ بهتر باشد تا موارد مشکوک کمتر از قلم بیفتند (Recall بالاتر). آستانه را بر اساس هزینه خطا تنظیم کنید.
مزایا و معایب
| مزایا | معایب |
|---|---|
| خروجی احتمال (قابل تفسیر) | فقط مرز تصمیم خطی |
| سریع و پایدار | نیاز به رابطه خطی لجستیک |
| ضرایب معنادار | برای داده پیچیده ضعیف |
رگرسیون لجستیک «خط پایه» دستهبندی است؛ همیشه اول آن را امتحان کنید و بعد مدلهای پیچیده. اگر پیچیدهها خیلی بهتر نبودند، ساده را نگه دارید!
جمعبندی
- رگرسیون لجستیک دستهبند احتمالی است
- سیگموید خروجی را به (۰،۱) میبرد
- آستانه تصمیم بر اساس هزینه خطا تنظیم میشود
این مبحث بخشی از دوره آموزش کامل ماشین لرنینگ است.