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

۶۷۸ بازدید
آخرین به‌روزرسانی: ۱۴ شهریور ۱۴۰۲
زمان مطالعه: ۲ دقیقه
مهمترین الگوریتم های یادگیری ماشین (به همراه کدهای پایتون و R) — بخش دوم: رگرسیون خطی

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

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

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

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

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

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

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

کد پایتون

کدهای پایتون به‌صورت زیر است.

1#Import Library
2#Import other necessary libraries like pandas, numpy...
3from sklearn import linear_model
4#Load Train and Test datasets
5#Identify feature and response variable(s) and values must be numeric and numpy arrays
6x_train=input_variables_values_training_datasets
7y_train=target_variables_values_training_datasets
8x_test=input_variables_values_test_datasets
9# Create linear regression object
10linear = linear_model.LinearRegression()
11# Train the model using the training sets and check score
12linear.fit(x_train, y_train)
13linear.score(x_train, y_train)
14#Equation coefficient and Intercept
15print('Coefficient: \n', linear.coef_)
16print('Intercept: \n', linear.intercept_)
17#Predict Output
18predicted= linear.predict(x_test)

کد R

کدهای R به‌صورت زیر است.

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

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

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

==

بر اساس رای ۸ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
۴ دیدگاه برای «مهمترین الگوریتم های یادگیری ماشین (به همراه کدهای پایتون و 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 رو ، کدومشون درسته ؟

نظر شما چیست؟

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