مهمترین الگوریتم های یادگیری ماشین (به همراه کدهای پایتون و R) — بخش دوم: رگرسیون خطی

آخرین به‌روزرسانی: ۹ اسفند ۱۳۹۷
زمان مطالعه: ۲ دقیقه

این الگوریتم برای برآورد مقادیر واقعی (هزینه ساعتی، تعداد تماس، فروش کل و …) بر اساس متغیر یا متغیرهای پیوسته استفاده می‌شود. در این الگوریتم بین متغیرهای مستقل وابسته، رابطه‌ای با استفاده از خطی که بیشترین برازش را دارد برقرار می‌شود. این خط با بهترین برازش، به نام خط رگرسیون شناخته شده است و با معادله خطی Y=a*X+b به دست می‌آید.

فهرست مطالب این نوشته

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

در این معادله:

  • Y – متغیر وابسته
  • a – شیب
  • X – متغیر مستقل
  • b – عرض از مبدأ

ضرایب a و b بر اساس اصل کمینه‌سازی مجموع تفاضل مربعات فاصله بین نقاط داده‌ای و خط رگرسیون به دست آمده‌اند. به مثال زیر نگاه کنید. در این مثال بهترین خط متناسب، معادله خطی y=0.2811x+13.9 دارد. اینک با استفاده از این معادله می‌توانیم با دانستن قد هر کس وزن او را بیابیم.

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

کد پایتون

#Import Library
#Import other necessary libraries like pandas, numpy...
from sklearn import linear_model
#Load Train and Test datasets
#Identify feature and response variable(s) and values must be numeric and numpy arrays
x_train=input_variables_values_training_datasets
y_train=target_variables_values_training_datasets
x_test=input_variables_values_test_datasets
# Create linear regression object
linear = linear_model.LinearRegression()
# Train the model using the training sets and check score
linear.fit(x_train, y_train)
linear.score(x_train, y_train)
#Equation coefficient and Intercept
print('Coefficient: \n', linear.coef_)
print('Intercept: \n', linear.intercept_)
#Predict Output
predicted= linear.predict(x_test)

کد R

#Load Train and Test datasets
#Identify feature and response variable(s) and values must be numeric and numpy arrays
x_train <- input_variables_values_training_datasets
y_train <- target_variables_values_training_datasets
x_test <- input_variables_values_test_datasets
x <- cbind(x_train,y_train)
# Train the model using the training sets and check score
linear <- lm(y_train ~ ., data = x)
summary(linear)
#Predict Output
predicted= predict(linear,x_test)

در بخش بعدی این سلسله آموزش‌ها شما را با الگوریتم رگرسیون لجستیک آشنا خواهیم کرد.

اگر این نوشته برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

==

بر اساس رای ۶ نفر
آیا این مطلب برای شما مفید بود؟
شما قبلا رای داده‌اید!
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
۴ thoughts on “مهمترین الگوریتم های یادگیری ماشین (به همراه کدهای پایتون و R) — بخش دوم: رگرسیون خطی

x_train=input_variables_values_training_datasets
y_train=target_variables_values_training_datasets
x_test=input_variables_values_test_datasets
این بخش از کد پایتون داره ارور میزنه چرا؟

به اين خاطر كه بايد ديتاست هاتون رو وارد كنيد همونجور كه نوشته نه اينا رو

سلام امید عزیز
البته اسامی متغیرها بر اساس قرارداد تعیین می‌شوند؛ اما ما نیز در این آموزش y را به عنوان متغیر وابسته تغییر دادیم.
ممنون از توجه شما.

تشکر بابت مطالب بسیار مفیدتون ، یه سوال ؟ بسیاری از سایتها y رو به عنوان متغیر وابسته مطرح کردن ولی شما x رو ، کدومشون درسته ؟

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *