Ko‘p omilli regressiya


ULASHISH

Ko‘p regressiya

Ko‘p regressiya chiziqli regressiyaga o‘xshaydi, lekin bir nechta mustaqil qiymatga ega, ya’ni biz ikki yoki undan ortiq o‘zgaruvchilarga asoslangan qiymatni taxmin qilishga harakat qilamiz.

Quyidagi ma’lumotlar to‘plamini ko‘rib chiqing, unda avtomobillar haqida ba’zi ma’lumotlar mavjud.

Avtomobil Model Ovoz balandligi Og‘irligi CO2
Toyota Aygo 1000 790 99
Mitsubishi Kosmik yulduz 1200 1160 95
Skoda Citigo 1000 929 95
Fiat 500 900 865 90
Mini Kuper 1500 1140 105
VW Up! 1000 929 105
Skoda Fabia 1400 1109 90
Mersedes A-sinfi 1500 1365 92
Ford Fiesta 1500 1112 98
Audi A1 1600 1150 99
Hyundai I20 1100 980 99
Suzuki Tezkor 1300 990 101
Ford Fiesta 1000 1112 99
Honda Fuqarolik 1600 1252 94
Hunday I30 1600 1326 97
Opel Astra 1600 1330 97
BMW 1 1600 1365 99
Mazda 3 2200 1280 104
Skoda Tez 1600 1119 104
Ford Diqqat 2000 1328 105
Ford Mondeo 1600 1584 94
Opel Belgilar 2000 1428 99
Mersedes C-sinfi 2100 1365 99
Skoda Octavia 1600 1415 99
Volvo S60 2000 1415 99
Mersedes CLA 1500 1465 102
Audi A4 2000 1490 104
Audi A6 2000 1725 114
Volvo V70 1600 1523 109
BMW 5 2000 1705 114
Mersedes E-Class 2100 1605 115
Volvo XC70 2000 1746 117
Ford B-Maks 1600 1235 104
BMW 2 1600 1390 108
Opel Zafira 1600 1405 109
Mersedes SLK 2500 1395 120

Dvigatel hajmiga qarab avtomobilning CO2 emissiyasini taxmin qilishimiz mumkin, ammo ko‘p regressiya bilan biz bashoratni aniqroq qilish uchun avtomobilning og‘irligi kabi ko‘proq o‘zgaruvchilarni kiritishimiz mumkin.


U qanday ishlaydi?

Pythonda biz uchun ishni bajaradigan modullar mavjud. Pandas modulini import qilish bilan boshlang.

import pandas

Pandas moduli haqida bizning Pandas qo‘llanmamizda bilib oling.

Pandas moduli bizga csv fayllarni o‘qish va DataFrame obyektini qaytarish imkonini beradi.

Fayl faqat sinov uchun mo‘ljallangan, uni bu yerdan yuklab olishingiz mumkin: data.csv

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

Keyin mustaqil qiymatlar ro‘yxatini tuzing va ushbu o‘zgaruvchini X deb nomlang.

Bog‘liq qiymatlarni y deb nomlangan o‘zgaruvchiga qo‘ying.

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

Maslahat: Mustaqil qiymatlar ro‘yxatini katta X harfi bilan, bog‘liq qiymatlar ro‘yxatini esa kichik y harfi bilan nomlash odatiy holdir.

Biz sklearn modulidan ba’zi usullardan foydalanamiz, shuning uchun biz ushbu modulni ham import qilishimiz kerak bo‘ladi:

from sklearn import linear_model

Sklearn modulidan chiziqli regressiya obyektini yaratish uchun LinearRegression() usulidan foydalanamiz.

Ushbu obyektda fit() deb nomlangan usul mavjud bo‘lib, u mustaqil va bog‘liq qiymatlarni parametr sifatida qabul qiladi va regressiya obyektini munosabatlarni tavsiflovchi ma’lumotlar bilan to‘ldiradi:

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

Endi bizda avtomobilning og‘irligi va hajmiga qarab CO2 qiymatlarini bashorat qilishga tayyor bo‘lgan regressiya obyekti mavjud:

#predict the CO2 emission of a car where the weight is 2300kg, and the volume is 1300cm3:
predictedCO2 = regr.predict([[2300, 1300]])

Misol

To‘liq misolni amalda ko‘ring:

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) #predict the CO2 emission of a car where the weight is 2300kg, and the volume is 1300cm3: predictedCO2 = regr.predict([[2300, 1300]]) print(predictedCO2)

Natija:

[107.2087328]

Misolni ishga tushirish »

Biz 1,3 litrli dvigatelli va og‘irligi 2300 kg bo‘lgan avtomobil har bir kilometr masofada taxminan 107 gramm CO2 chiqarishini taxmin qilgan edik.



Koeffitsient

Koeffitsient - noma’lum o‘zgaruvchi bilan bog‘liqlikni tavsiflovchi omil.

Misol: agar x o‘zgaruvchi bo‘lsa,2x ikki marta x bo‘ladi. x - noma’lum o‘zgaruvchi, 2 raqami esa koeffitsientdir.

Bunday holda, biz CO2 ga nisbatan og‘irlikning koeffitsient qiymatini va CO2 ga nisbatan hajmni so‘rashimiz mumkin. Biz olgan javob(lar) mustaqil qiymatlardan birini oshirsak yoki kamaytirsak nima bo‘lishini aytadi.

Misol

Regressiya obyektining koeffitsient qiymatlarini chop eting:

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_)

Natija:

[0.00755095 0.00780526]

Misolni ishga tushirish »

Natija tushuntirildi

Natijalar massivi og‘irlik va hajmning koeffitsient qiymatlarini ifodalaydi.

Weight: 0.00755095
Volume: 0.00780526

Bu qiymatlar, agar vazn 1 kg ga oshsa, CO2 emissiyasi 0,00755095 g ga oshadi.

Va agar dvigatel hajmi (Hajmi) 1 sm3 ga oshsa, CO2 emissiyasi 0,00780526 g ga oshadi.

Menimcha, bu adolatli taxmin, lekin buni sinab ko‘ring!

Biz allaqachon bashorat qilgan edik, agar dvigateli 1300 sm3 bo‘lgan avtomobilning og‘irligi 2300 kg bo‘lsa, CO2 emissiyasi taxminan 107 g bo‘ladi.

Agar vaznni 1000 kg ga oshirsak nima bo‘ladi?

Misol

Oldingi misoldan nusxa ko‘chiring, lekin vaznni 2300 dan 3300 gacha o‘zgartiring:

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)

Natija:

[114.75968007]

Misolni ishga tushirish »

Biz 1,3 litrli dvigatelli va og‘irligi 3300 kg bo‘lgan avtomobil har bir kilometr masofada taxminan 115 gramm CO2 chiqarishini taxmin qilgan edik.

Bu 0,00755095 koeffitsienti to‘g‘ri ekanligini ko‘rsatadi:

107.2087328 + (1000 * 0.00755095) = 114.75968


W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!