Pemeliharaan Mesin - Regresi Multivariabel

Regresi Multifaktor (Multiple Regression)

Regresi multifaktor seperti regresi linear, tetapi memiliki nilai independen beberapa, yang berarti kami mencoba untuk memprediksi nilai satu berdasarkan dua atau lebih variabel.

Lihat data set di bawah ini, yang mengandung beberapa informasi tentang mobil.

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

Kami boleh ramal pengeluaran gas karbon dioksida kereta berdasarkan saiz kapasiti pengeluaran enjin, tetapi melalui regresi multifaktor, kami boleh memasukkan lebih banyak variabel, seperti berat kereta, untuk membuat ramalan lebih tepat.

Prinsip kerja

Dalam Python, kami mempunyai modul yang boleh melakukan pekerjaan ini. Pertama, import modul Pandas:

import pandas

Modul Pandas membolehkan kami membaca fail csv dan mengembalikan objek DataFrame.

Fail ini hanya untuk tujuan ujian, anda boleh muat turun di sini:cars.csv

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

Lalu daftar nilai independen, dan namakan variabel ini X.

Masukkan nilai relevan ke dalam variabel yang dinamakan y.

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

Petikan:Biasanya, nama senarai nilai independen adalah huruf besar XNama senarai nilai yang relevan adalah huruf kecil y

Kami akan menggunakan beberapa method dalam modul sklearn, jadi kami juga mesti mengimport modul ini:

from sklearn import linear_model

Dalam modul sklearn, kami akan menggunakan LinearRegression() method untuk mencipta objek regresi linear.

Objek ini mempunyai method yang dinamakan fit() dengan cara, yang akan nilai independen dan nilai paten sebagai parameter, dan memenuhi objek regresi dengan data yang mendeskripsikan hubungan ini:

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

Sekarang, kami mempunyai objek regresi yang boleh ramal nilai CO2 kereta berdasarkan berat dan kapasiti pengeluaran:

# Ramal pengeluaran gas karbon dioksida untuk kereta dengan berat 2300kg, kapasiti 1300ccm:
predictedCO2 = regr.predict([[2300, 1300]])

Contoh

Lihat contoh penuh di sini:

import pandas
from sklearn import linear_model
df = pandas.read_csv("cars.csv")
X = df[['Berat', 'Volume']]
y = df['CO2']
regr = linear_model.LinearRegression()
regr.fit(X, y)
# Ramal pengeluaran gas karbon dioksida untuk kereta dengan berat 2300kg, kapasiti 1300ccm:
predictedCO2 = regr.predict([[2300, 1300]])
print(predictedCO2)

Hasil:

[107.2087328]

Jalankan Contoh

Kami ramal, kereta dengan enjin 1.3 liter, berat 2300 kilogram, akan mengeluarkan kira-kira 107 gram gas karbon dioksida setiap kilometer yang dijalankan.

Coefficient

Coefficient adalah faktor yang mendeskripsikan hubungan dengan variabel yang tak dikenali.

Contohnya: jika x Adalah variabel, maka 2x Adalah x dwi kali.x Adalah variabel yang tak dikenali, nombor 2 Adalah coefficient.

Dalam keadaan ini, kami boleh meminta coefficient nilai berat untuk CO2, serta coefficient nilai volume untuk CO2. Jawapan yang kami dapatkan memberitahu kami, jika kita tambah atau kurang salah satu nilai independen, apa yang akan terjadi.

Contoh

Cetak coefficient nilai objek regresi:

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

Hasil:

[0.00755095 0.00780526]

Jalankan Contoh

Pengertian hasil

Jumlah hasil menunjukkan coefficient nilai berat dan kapasiti pengeluaran.

Berat: 0.00755095
Volume: 0.00780526

Nilai ini memberitahu kami, jika berat bertambah 1g, pengeluaran CO2 akan bertambah 0.00755095g.

Jika saiz (volume) enjin bertambah 1 ccm, pengeluaran CO2 akan bertambah 0.00780526g.

Saya mendapati bahwa ini adalah perkiraan yang masuk akal, tetapi tetap lakukan pengujian!

Kami telah memperkirakan, jika sebuah kereta dengan mesin 1300ccm berat 2300 kilogram, emisi karbon dioksida akan sekitar 107 gram.

Apa yang akan terjadi jika kita tambahkan 1000g berat?

Contoh

Salin contoh sebelumnya, tetapi tingkatkan berat kereta dari 2300 ke 3300:

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

Hasil:

[114.75968007]

Jalankan Contoh

Kami telah memperkirakan, sebuah kereta dengan mesin 1.3 liter, berat 3.3 ton, akan melepaskan sekitar 115 gram karbon dioksida setiap kali berjalan 1 kilometer.

Ini menunjukkan bahwa koefisien 0.00755095 adalah benar:

107.2087328 + (1000 * 0.00755095) = 114.75968