رگرسیون خطی ساده
آموزش رگرسیون خطی ساده: مفهوم کمینه مربعات، پیادهسازی با 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 بکشید. اگر نقاط روی خط راست مینشینند، رگرسیون خطی مناسب است.
جمعبندی
- رگرسیون خطی خط
y = ax + bرا از داده یاد میگیرد - روش کمینه مربعات، مجموع مربعات خطا را کمینه میکند
- ضرایب قابل تفسیرند: اثر هر ویژگی بر خروجی
این مبحث بخشی از دوره آموزش کامل ماشین لرنینگ است.