Python – رگرسیون چندگانه (Multiple Regression)

رگرسیون چندگانه

رگرسیون چندگانه

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

در مثال زیر، اطلاعاتی درباره خودروها داریم که شامل مدل، حجم، وزن و میزان انتشار CO2 است. ما می‌توانیم میزان انتشار CO2 را بر اساس حجم موتور و وزن خودرو پیش‌بینی کنیم.

چگونه کار می‌کند؟

در پایتون ماژول‌هایی وجود دارد که این کار را برای ما انجام می‌دهند. ابتدا ماژول Pandas را وارد کنید:

import pandas

ماژول Pandas به ما اجازه می‌دهد تا فایل‌های CSV را بخوانیم و یک شیء DataFrame را بازگردانیم.

فایل برای تست است و می‌توانید آن را از اینجا دانلود کنید.

df = pandas.read_csv("data.csv")

سپس لیستی از مقادیر مستقل بسازید و این متغیر را X نامگذاری کنید.

مقادیر وابسته را در متغیری به نام y قرار دهید:

X = df[['Weight', 'Volume']]
y = df['CO2']

نکته: معمولاً لیست مقادیر مستقل با X بزرگ و لیست مقادیر وابسته با y کوچک نام‌گذاری می‌شود.

ما از روش‌های ماژول sklearn استفاده خواهیم کرد، بنابراین باید این ماژول را نیز وارد کنید:

from sklearn import linear_model

از ماژول sklearn از متد LinearRegression() برای ایجاد یک شیء رگرسیون خطی استفاده خواهیم کرد.

این شیء متدی به نام fit() دارد که مقادیر مستقل و وابسته را به عنوان پارامترها می‌پذیرد و شیء رگرسیون را با داده‌هایی که رابطه را توصیف می‌کنند، پر می‌کند:

regr = linear_model.LinearRegression()
regr.fit(X, y)

حالا ما یک شیء رگرسیون داریم که آماده است تا مقادیر CO2 را بر اساس وزن و حجم خودرو پیش‌بینی کند:

پیش‌بینی میزان انتشار CO2 برای خودرویی که وزن آن 2300 کیلوگرم و حجم آن 1300 سی‌سی است:

predictedCO2 = regr.predict([[2300, 1300]])
print(predictedCO2)

نتیجه:

[107.2087328]

پیش‌بینی کرده‌ایم که خودرویی با موتور 1.3 لیتری و وزن 2300 کیلوگرم، به طور تقریبی 107 گرم CO2 به ازای هر کیلومتر تولید خواهد کرد.

ضریب (Coefficient)

ضریب عاملی است که رابطه با یک متغیر ناشناخته را توصیف می‌کند.

مثال: اگر xx یک متغیر باشد، آنگاه 2x2x یعنی xx دو برابر. xx متغیر ناشناخته است و عدد 2 ضریب است.

در اینجا، می‌توانیم مقدار ضریب وزن در برابر CO2 و برای حجم در برابر CO2 را درخواست کنیم. مقادیری که دریافت می‌کنیم به ما می‌گویند چه اتفاقی می‌افتد اگر یکی از مقادیر مستقل افزایش یا کاهش یابد.

مثال چاپ مقادیر ضریب شیء رگرسیون:

import pandas
from sklearn import linear_model

df = pandas.read_csv("data.csv")

X = df[['Weight', 'Volume']]
y = df['CO2']

regr = linear_model.LinearRegression()
regr.fit(X, y)

print(regr.coef_)

نتیجه:

[0.00755095 0.00780526]

توضیح نتیجه آرایه نتیجه نمایانگر مقادیر ضریب وزن و حجم است.

  • وزن: 0.00755095
  • حجم: 0.00780526

این مقادیر به ما می‌گویند که اگر وزن به اندازه 1 کیلوگرم افزایش یابد، میزان انتشار CO2 به اندازه 0.00755095 گرم افزایش می‌یابد.

و اگر اندازه موتور (حجم) به اندازه 1 سی‌سی افزایش یابد، میزان انتشار CO2 به اندازه 0.00780526 گرم افزایش می‌یابد.

آزمایش ضریب ما قبلاً پیش‌بینی کرده‌ایم که اگر خودرویی با موتور 1300 سی‌سی و وزن 2300 کیلوگرم، میزان انتشار CO2 به طور تقریبی 107 گرم است.

چه اتفاقی می‌افتد اگر وزن را 1000 کیلوگرم افزایش دهیم؟

مثال کپی مثال قبلی، اما وزن را از 2300 به 3300 تغییر دهید:

import pandas
from sklearn import linear_model

df = pandas.read_csv("data.csv")

X = df[['Weight', 'Volume']]
y = df['CO2']

regr = linear_model.LinearRegression()
regr.fit(X, y)

predictedCO2 = regr.predict([[3300, 1300]])

print(predictedCO2)

نتیجه:

[114.75968007]

ما پیش‌بینی کرده‌ایم که خودرویی با موتور 1300 سی‌سی و وزن 3300 کیلوگرم، به طور تقریبی 115 گرم CO2 به ازای هر کیلومتر تولید خواهد کرد.

که نشان می‌دهد ضریب 0.00755095 صحیح است:

107.2087328 + (1000 * 0.00755095) = 114.75968

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
JavaScript - آرایه‌ها (Arrays)

JavaScript – آرایه‌ها (Arrays)

آرایه در جاوااسکریپت متغیری خاص است که می‌تواند بیش از یک مقدار را ذخیره کند. const cars = ["Saab",...

بیشتر بخوانید
JavaScript - ویژگی‌های عدد (Number Properties)

JavaScript – ویژگی‌های عدد (Number Properties)

در جاوااسکریپت، شیء Number شامل ویژگی‌هایی از پیش تعریف‌شده است که برای کار با اعداد مفید هستند. این ویژگی‌ها...

بیشتر بخوانید
JavaScript - متدهای عدد (Number Methods)

JavaScript – متدهای عدد (Number Methods)

در جاوا اسکریپت، متدهایی برای کار با اعداد ارائه شده‌اند که می‌توانند روی تمامی اعداد استفاده شوند. متدهای مربوط...

بیشتر بخوانید

نظرات

سوالات و نظراتتون رو با ما به اشتراک بذارید

برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید.