رگرسیون لجستیک

آموزش رگرسیون لجستیک: تابع سیگموید، خروجی احتمال، آستانه تصمیم و پیاده‌سازی

رگرسیون لجستیک چیست؟

با وجود اسم «رگرسیون»، این الگوریتم برای دسته‌بندی است! خروجی آن یک احتمال بین ۰ و ۱ است که با آستانه (معمولاً ۰.۵) به کلاس تبدیل می‌شود.

تابع سیگموید

قلب الگوریتم، تابع S شکل سیگموید است که هر عدد را به بازه (۰، ۱) می‌برد:

σ(z) = 1 / (1 + e^(-z))

چگونه تصمیم می‌گیرد؟

  1. مقدار خطی z = a₁x₁ + a₂x₂ + ... + b محاسبه می‌شود
  2. با سیگموید به احتمال تبدیل می‌شود: p = σ(z)
  3. اگر 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 بالاتر). آستانه را بر اساس هزینه خطا تنظیم کنید.

مزایا و معایب

مزایامعایب
خروجی احتمال (قابل تفسیر)فقط مرز تصمیم خطی
سریع و پایدارنیاز به رابطه خطی لجستیک
ضرایب معناداربرای داده پیچیده ضعیف
رگرسیون لجستیک «خط پایه» دسته‌بندی است؛ همیشه اول آن را امتحان کنید و بعد مدل‌های پیچیده. اگر پیچیده‌ها خیلی بهتر نبودند، ساده را نگه دارید!

جمع‌بندی

این مبحث بخشی از دوره آموزش کامل ماشین لرنینگ است.

ابزارهای مرتبط