رگرسیون خطی: مقدمه، کاربردها و نحوه پیاده‌سازی

رگرسیون خطی: مقدمه، کاربردها و نحوه پیاده‌سازی

رگرسیون خطی (Linear Regression) یکی از ساده‌ترین و پرکاربردترین الگوریتم‌های یادگیری ماشین و آمار است که برای مدل‌سازی رابطه بین یک متغیر وابسته (هدف) و یک یا چند متغیر مستقل (پیش‌بین‌کننده) استفاده می‌شود. این روش به‌خصوص در پیش‌بینی‌های عددی، تحلیل داده و کشف روابط بین متغیرها کاربرد دارد.

انواع رگرسیون خطی

  1. رگرسیون خطی ساده (Simple Linear Regression):

    • فقط یک متغیر مستقل دارد.

    • رابطه به صورت معادله خطی نمایش داده می‌شود:

      y=β0+β1x+ϵy=β0​+β1​x+ϵ
    • در این معادله:

      • yy: متغیر وابسته

      • xx: متغیر مستقل

      • β0β0​: عرض از مبدأ (Intercept)

      • β1β1​: شیب خط (Slope)

      • ϵϵ: خطای تصادفی

  2. رگرسیون خطی چندگانه (Multiple Linear Regression):

    • چندین متغیر مستقل دارد.

    • معادله آن به صورت زیر است:

      y=β0+β1x1+β2x2+⋯+βnxn+ϵy=β0​+β1​x1​+β2​x2​+⋯+βn​xn​+ϵ

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

  • پیش‌بینی قیمت مسکن بر اساس متراژ، تعداد اتاق‌ها و محل جغرافیایی

  • تحلیل فروش محصولات بر اساس هزینه‌های تبلیغات

  • پیش‌بینی نمرات دانشجویان بر اساس ساعت مطالعه

  • مدل‌سازی رابطه بین سن و فشار خون در تحقیقات پزشکی

معیارهای ارزیابی مدل رگرسیون

برای سنجش دقت مدل رگرسیون، از معیارهای زیر استفاده می‌شود:

  • مجموع مربعات خطا (SSE - Sum of Squared Errors)

  • میانگین مربعات خطا (MSE - Mean Squared Error)

  • ضریب تعیین (R² - R-Squared) که نشان‌دهنده میزان تناسب مدل با داده‌هاست (بین ۰ تا ۱).

پیاده‌سازی رگرسیون خطی در پایتون

در ادامه یک مثال ساده از پیاده‌سازی رگرسیون خطی با کتابخانه scikit-learn آورده شده است:


import numpy as np
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt

# داده‌های نمونه
X = np.array([1, 2, 3, 4, 5]).reshape(-1, 1)  # متغیر مستقل
y = np.array([2, 4, 5, 4, 5])                 # متغیر وابسته

# آموزش مدل
model = LinearRegression()
model.fit(X, y)

# پیش‌بینی
y_pred = model.predict(X)

# نمایش نتایج
plt.scatter(X, y, color='blue', label='داده‌های واقعی')
plt.plot(X, y_pred, color='red', label='خط رگرسیون')
plt.xlabel('X')
plt.ylabel('y')
plt.legend()
plt.show()

print(f"عرض از مبدأ (Intercept): {model.intercept_}")
print(f"شیب خط (Slope): {model.coef_[0]}")

نتیجه‌گیری

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

Avatar

نویسنده

سیدهادی موسوی

تعداد لایک‌ها: 4

Tags: #علمی

ارسال نظر

نظرات