در این بخش با مفهوم رگرسیون آشنا خواهید شد و نحوه پیاده سازی آن را با زبان پایتون و فریمورک scikit learn را خواهید دید. رگرسیون یکی از ساده ترین و پایه ای ترین الگوریتم هایی است که در یادگیری ماشین استفاده میشود و برای پیدا کردن رابطه بین چند متغیر استفاده میشود.
# رگرسیون(Regression) چیست؟
رگرسیون یکی از مفاهیم پرکاربرد آمار است که وارد یادگیری ماشین شده و برای درک رابطه بین متغیرها استفاده میشود. با رگرسیون میتوان فهمید که تغییر یک متغیر چطور بر دیگر متغیرها تاثیر میگذارد. در زمان کار با رگرسیون دو متغیر وجود دارند. متغیر اول که متغیر وابسته (dependent variable) نامیده میشود مقداری است که میخواهیم رفتارش را پیش بینی کنیم. متغیر بعدی، متغیر مستقل (independent variable) است که تاثیر مستقیم به روی متغیر وابسته دارد. در رگرسیون میخواهیم بررسی کنیم که تغییرات به روی متغیرهای مستقل، چطور متغیر وابسته را تغییر میدهد.
نحوه کار رگرسیون به این شکل است که سعی میکند یک خط فرضی را از بین داده ها عبور دهد به شکلی که این خط بهترین توصیف از رفتار داده ها را داشته باشد. رگرسیون انواع مختلفی دارد و هر نوع مشخص میکند که خط کشیده شده به چه شکلی باشد. مثلا رگرسیون خطی ساده فقط یک خط صاف را از وسط داده ها عبور میدهد و رگرسیون لجستیک میتواند یک خط منحنی را برای مشخص کردن رفتار داده ها عبور دهد.
رگرسیون یک نوع الگوریتم یادگیری نظارت شده است، به این معنی که برای آموزش آن باید از ویژگی های ورودی و برچسب های خروجی استفاده کرد. در یادگیری ماشین ویژگی های ورودی را با علامت X
و برچسب خروجی را با علامت y
نمایش میدهند. فرمول ریاضی که رگرسیون از آن استفاده میکند به شکل زیر است:
در فرمول بالا متغیر Y مقداری است که میخواهیم رفتارش را پیش بینی کنیم. متغیر a ضریبی است که مشخص میکند متغیر Y در چه نقطه ای با محور y برخورد کند. متغیر b شیب خط را تنظیم میکند. متغیر X مقادیری است که براساس آنها رفتار Y تعیین میشوند. متغیر E هم خطای خط را مشخص میکند.
# مثال رگرسیون با پایتون
رگرسیون خطی یکی از ساده ترین و رایجترین الگوریتم های regression است که یک رابطه خطی بین متغیرهای خطی و وابسته را فرض میکند. این الگوریتم بهترین خط مستقیم را از بین داده ها پیدا میکند و اختلاف بین نقاط مشاهده شده و پیش بینی شده را به حداقل میرساند.
به عنوان مثال میتوان قیمت یک خانه را براساس متراژ، تعداد اتاق خواب و منطقه پیش بینی کرد:
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)
در فریمورک scikit learn میتوان از کلاس LinearRegression برای آموزش یک مدل رگرسیون خطی استفاده کرد. همانطور که مشخص است میتوانید متغیرهای X و Y را برای آموزش به متد fit ارسال کنید. سپس میتوانید با متد predict اقدام به پیش بینی موارد جدید کنید.
ارسال نظر