data science, python, پایتون

رگرسیون خطی در پایتون (Linear Regression in python) + ویدئو آموزشی

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

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

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

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

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

نحوه محاسبات در رگرسیون خطی را به شما دوستان می سپاریم و در این آموزش به کاربرد و پیاده سازی آن پرداخته خواهد شد.

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

برای پیاده سازی رگرسیون خطی ما از کتابخانه‌های Pandas، Matplotlib، Numpy و sklearn استفاده می‌کنیم. ابتدا کتابخانه‌ها را import می‌کنیم:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

در این مرحله باید دیتایی که بر روی آن می‌خواهیم پردازش شود را انتخاب کنیم. دیتا که ما از آن استفاده خواهیم کرد به صورت زیر می‌باشد. در این دیتا بر اساس تجربه افراد میزان حقوق آنها محاسبه شده است.(دانلود دیتاست)

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

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

Salary = pd.read_csv('Salary_Data.csv')

اطلاعات کلی با کمک تابع Describe از دیتابیس خود بدست می‌آوریم:

Salary.info()

خروجی کد بالا به صورت زیر می‌باشد:

class 'pandas.core.frame.DataFrame'>
RangeIndex: 30 entries, 0 to 29
Data columns (total 2 columns):
 #   Column           Non-Null Count  Dtype  
---  ------           --------------  -----  
 0   YearsExperience  30 non-null     float64
 1   Salary           30 non-null     float64
dtypes: float64(2)
memory usage: 544.0 bytes

با کمک کتابخانه seaborn نمودارهای Distplot و heatmap دیتاها را می‌کشیم (دستور این توابع در قسمت دانلود سورس کد آورده شده):

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

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

X = Salary['YearsExperience']
y = Salary['Salary']

حال به کمک کتابخانه sklearn به پیاده سازی رگرسیون می‌پردازیم.

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4)
from sklearn.linear_model import LinearRegression
lm = LinearRegression()
lm.fit(X_train,y_train)
predictions = lm.predict(X_test)

برای دانستن ضرایب فرمول بدست آمده به کمک رگرسیون خطی کد زیر را می‌زنیم:

lm.coef_
#array([9540.1453911])
print(lm.intercept_)
# 25658.229427159044

فرمول بدست آمده توسط رگرسیون خطی به صورت زیر است:

Y=25658.229427159044 + 9540.1453911 * X

حال برای بدست آوردن Mean square Error و R Square از کد زیر استفاده می‌کنیم:

from sklearn.metrics import r2_score,mean_squared_error
mean_squared_error(y_test,predictions)
# 30857021.39780877
r2_score(y_test,predictions)
# 0.9574365522884438

خروجی نتیجه رگرسیون ما خوبه. شما دوستان می‌تونید روی این دیتا کار کنید و میزان MSE را کمتر و R Square رو به 1 نزدیکتر کنید.

اگر سوالی در خصوص رگرسیون خطی دارید در قسمت کامنت سوال خود را مطرح کنید تا پاسخگوی شما باشیم.

 پسورد: www.codegate.ir

نوشته های مشابه

6 دیدگاه در “رگرسیون خطی در پایتون (Linear Regression in python) + ویدئو آموزشی

  1. Kamyab گفت:

    سلام وقت بخیر.کد آماده NSGA2 در پایتون رو ندارین؟

    1. سعید غریبی گفت:

      سلام. خیر این کد را نداریم.

  2. رضا 231 گفت:

    اموزش بسیار مفید، کوتاه و دقیقی بود. ممنونم

  3. فهیمه گفت:

    سلام اموزش خیلی خوبی بود.
    اگر بخواهیم precision وrecall رو هم برای این دو ستون در رگرسیون بدست بیاریم باید چکار کنیم. ممنون

  4. فهیمه گفت:

    سلام چجوری میشه میزان rscoreو زیاد و mseو کاهش داد ؟

    1. سلام. برای بهتر شدن نتیجه در رگرسیون:
      تنظیمات و پارامترهای مسئله رو بررسی کنید.
      دیتا را نرمال کنید.
      دیتا وابسته و غیر وابسته را شناسایی و ابعاد را کاهش دهید.

دیدگاهتان را بنویسید

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