Multiple Regression ng Machine Learning
- Previous Page Polynomial Regression
- Next Page Zoom
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 X
At 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]
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]
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]
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
- Previous Page Polynomial Regression
- Next Page Zoom