رگرسیون خطی ساده

آموزش رگرسیون خطی ساده: مفهوم کمینه مربعات، پیاده‌سازی با sklearn و تفسیر ضرایب

رگرسیون خطی ساده

ساده‌ترین و مهم‌ترین الگوریتم ML: پیدا کردن خطی که بهترین توصیف رابطه یک ویژگی با برچسب است:

y = a·x + b

چگونه بهترین خط را پیدا کنیم؟

معیار، مجموع مربعات خطا (RSS) است: مجموع مربعات فاصله عمودی هر نقطه تا خط. رگرسیون خطی با روش کمینه مربعات (Least Squares) خطی می‌یابد که این مجموع را کمینه می‌کند.

پیاده‌سازی با scikit-learn

from sklearn.linear_model import LinearRegression

model = LinearRegression()
model.fit(X_train, y_train)

print(model.coef_)       # a: ضریب (شیب)
print(model.intercept_)  # b: عرض از مبدأ

y_pred = model.predict(X_test)

تفسیر ضرایب

اگر coef_ = 0.5 باشد یعنی: با هر واحد افزایش متراژ، قیمت به‌طور میانگین ۰.۵ واحد افزایش می‌یابد. این تفسیرپذیری، مزیت بزرگ رگرسیون خطی است.

مثال کامل

import numpy as np
from sklearn.linear_model import LinearRegression

# داده: متراژ و قیمت
X = np.array([[50], [80], [100], [120], [150]])
y = np.array([25, 40, 50, 60, 75])

model = LinearRegression()
model.fit(X, y)

print(f"قیمت = {model.coef_[0]:.2f} × متراژ + {model.intercept_:.2f}")

# پیش‌بینی خانه ۹۰ متری
print(model.predict([[90]]))  # [45.]

فرض‌های رگرسیون خطی

اگر رابطه خطی نباشد (مثلاً نمایی)، باید تبدیل (مثل لگاریتم) انجام دهید یا از مدل دیگر استفاده کنید.

همیشه قبل از رگرسیون خطی، نمودار scatter بکشید. اگر نقاط روی خط راست می‌نشینند، رگرسیون خطی مناسب است.

جمع‌بندی

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

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