Multiple Regression ng Machine Learning

Multivariate Regression (Multiple Regression)

Ang multivariate regression ay katulad ng linear regression ngunit may ilang indepedenteng halaga, ibig sabihin sinisikap naming makita ang isang halaga sa pamamagitan ng dalawang o higit pang variable.

Panghahalata ang datos na ito sa ibaba, na naglalaman ng ilang impormasyon tungkol sa sasakyan.

Car Model Volume Weight CO2
Toyota Aygo 1000 790 99
Mitsubishi Space Star 1200 1160 95
Skoda Citigo 1000 929 95
Fiat 500 900 865 90
Mini Cooper 1500 1140 105
VW Up! 1000 929 105
Skoda Fabia 1400 1109 90
Mercedes A-Class 1500 1365 92
Ford Fiesta 1500 1112 98
Audi A1 1600 1150 99
Hyundai I20 1100 980 99
Suzuki Swift 1300 990 101
Ford Fiesta 1000 1112 99
Honda Civic 1600 1252 94
Hundai I30 1600 1326 97
Opel Astra 1600 1330 97
BMW 1 1600 1365 99
Mazda 3 2200 1280 104
Skoda Rapid 1600 1119 104
Ford Focus 2000 1328 105
Ford Mondeo 1600 1584 94
Opel Insignia 2000 1428 99
Mercedes C-Class 2100 1365 99
Skoda Octavia 1600 1415 99
Volvo S60 2000 1415 99
Mercedes CLA 1500 1465 102
Audi A4 2000 1490 104
Audi A6 2000 1725 114
Volvo V70 1600 1523 109
BMW 5 2000 1705 114
Mercedes E-Class 2100 1605 115
Volvo XC70 2000 1746 117
Ford B-Max 1600 1235 104
BMW 2 1600 1390 108
Opel Zafira 1600 1405 109
Mercedes SLK 2500 1395 120

Maaari naming magpahintulot ng pagpahintulot ng paglabas ng di-oksido ng karbon ng sasakyan patungo sa puwang ng makina, ngunit sa pamamagitan ng pagbabalikbasa ng dalawang variable, maaari naming idagdag ng higit pang variable, tulad ng bigat ng sasakyan, upang gawing mas tumpak ang paghuhula.

Pamamaraan ng paggawa

Sa Python, mayroon kaming mga modulong puwedeng gawin ito. Una, ipasok ang modulong Pandas:

import pandas

Ang modulong Pandas ay nagbibigay-daan sa amin na basahin ang file na csv at ibalik ng isang DataFrame object.

Ang file na ito ay gamit lamang para sa layunin ng pagsusuri, maaari mong i-download dito:cars.csv

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

Pagkatapos, ilista ang malayang halaga, at ipangalan ang variable na ito na X.

Ilagay ang kaugnay na halaga sa variable na pangalan na y.

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

Mga payo:Kadalasan, ipangalan ang listahan ng malayang halaga bilang malaki na titik XAt ipangalan ang listahan ng kaugnay na halaga bilang maliliit na titik y.

Gagamitin namin ang ilang mga pamamaraan ng modulong sklearn, kaya dapat din namin ipasok ang modulong ito:

from sklearn import linear_model

Sa modulong sklearn, gagamitin namin ang LinearRegression() Mga pamamaraan na naglikha ng objekto ng pagbabalikbasa.

Ang objekto ay may isang pangalan na fit() Ang pamamaraan, na naglalarawan ng malayang at may kaugnayan na halaga bilang parameter, at naglalaman ng datos na naglalarawan ng relasyon na ginamit sa paglalaman ng objekto ng pagbabalikbasa:

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

Ngayon, mayroon kaming objekto ng pagbabalikbasa, na maaaring magpahintulot ng pagpahintulot ng halaga ng CO2 ng sasakyan patungo sa bigat at puwang:

# Pagpahintulot ng paglabas ng di-oksido ng karbon ng sasakyan na may bigat na 2300kg at puwang na 1300ccm:
predictedCO2 = regr.predict([[2300, 1300]])

Halimbawa

Pangkalahatang halimbawa:

import pandas
from sklearn import linear_model
df = pandas.read_csv("cars.csv")
X = df[['Weight', 'Volume']]
y = df['CO2']
regr = linear_model.LinearRegression()
regr.fit(X, y)
# Pagpahintulot ng paglabas ng di-oksido ng karbon ng sasakyan na may bigat na 2300kg at puwang na 1300ccm:
predictedCO2 = regr.predict([[2300, 1300]])
print(predictedCO2)

Resulta:

[107.2087328]

Paggamit ng Halimbawa

Inaasahan namin, na may makina na 1.3 litro, ang bigat ng 2300 kilo, ang sasakyan ay magpalabas ng humigit-kumulang 107 gramo ng di-oksido ng karbon sa bawat 1 kilometro na paglalakbay.

Katumbas

Ang katumbas ay ang kadahilanan na naglalarawan ng relasyon sa di alam na variable.

Halimbawa: Kung x Ito ay variable, kaya 2x Ito ay x ng dalawang beses.x Ito ay di alam na variable, ang numero 2 Ito ay katumbas.

Sa kasong ito, maaari naming hingi ng katumbas ng bigat patungo sa CO2, at ang puwang patungo sa CO2. Ang sagot na aming nakakita ay nagsasabi, kung aminin o bawasan ang isa sa mga malayang halaga, anong mangyayari.

Halimbawa

Magprint ng katumbas ng objekto ng pagbabalikbasa:

import pandas
from sklearn import linear_model
df = pandas.read_csv("cars.csv")
X = df[['Weight', 'Volume']]
y = df['CO2']
regr = linear_model.LinearRegression()
regr.fit(X, y)
print(regr.coef_)

Resulta:

[0.00755095 0.00780526]

Paggamit ng Halimbawa

Paliwanag ng resulta

Ang resulta ng array ay naglalarawan ng katumbas ng bigat at puwang na halaga.

Weight: 0.00755095
Volume: 0.00780526

Ang mga ito ay nagsasabi, kung ang bigat ay tumaas ng 1g, ang paglabas ng CO2 ay tataas ng 0.00755095g.

Kung ang sukat ng makina (kubikong metro) ay tumaas ng 1 ccm, ang paglabas ng CO2 ay tataas ng 0.00780526g.

Naniniwala ako na ito ay isang makatwirang pagtantiya, ngunit mangyaring gawin ang pagsusuri!

Nagpahiwatig namin na kung ang isang sasakyan na may 1300ccm na makina at 2300 kilogram na timbang, ang halaga ng paglabas ng carbon dioxide ay tungkol sa 107 gramo.

Ano kung magdagdag kami ng 1000g ng timbang?

Halimbawa

Kopyahin ang nakaraang halimbawa, ngunit palitan ang timbang ng sasakyan mula 2300 hanggang 3300:

import pandas
from sklearn import linear_model
df = pandas.read_csv("cars.csv")
X = df[['Weight', 'Volume']]
y = df['CO2']
regr = linear_model.LinearRegression()
regr.fit(X, y)
predictedCO2 = regr.predict([[3300, 1300]])
print(predictedCO2)

Resulta:

[114.75968007]

Paggamit ng Halimbawa

Nagpahiwatig namin na ang isang sasakyan na may 1.3 litrong makina, 3.3 tonelada ang timbang, ay magpalabas ng tungkol sa 115 gramo ng carbon dioxide kada 1 kilometro na sasakyan.

Ito ay nagpapakita na ang katumbas ng 0.00755095 ay tama:

107.2087328 + (1000 * 0.00755095) = 114.75968