Regresi Multivariabel Belajar Mesin

Regresi Multivariabel (Multiple Regression)

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

Lihat dataset di bawah ini, yang berisi 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 dapat memprediksi emisi CO2 kendaraan berdasarkan volume mesin, tetapi melalui regresi multifaktor, kita dapat memasukkan variabel lebih banyak, seperti berat kendaraan, untuk membuat prediksi lebih akurat.

Prinsip kerja

Dalam Python, kita memiliki modul yang dapat melaksanakan pekerjaan ini. Pertama, import modul Pandas:

import pandas

Modul Pandas memungkinkan kita membaca berkas csv dan mengembalikan objek DataFrame.

Berkas ini hanya digunakan untuk tujuan tes, Anda dapat mengunduh di sini:cars.csv

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

Lalu daftar nilai bebas, dan namakan variabel ini X.

Letakkan nilai relevan ke dalam variabel yang dinamakan y.

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

Petunjuk:Biasanya, menamakan daftar nilai bebas dalam huruf besar Xdengan menamakan daftar nilai yang relevan dalam huruf kecil y

Kami akan menggunakan beberapa metode dalam modul sklearn, sehingga kita harus mengimpor modul ini:

from sklearn import linear_model

Dalam modul sklearn, kita akan menggunakan LinearRegression() metode untuk membuat objek regresi linear.

Objek ini memiliki metode yang bernama fit() metode, metode ini mengambil nilai bebas dan nilai pengikut sebagai parameter, dan memenuhi objek regresi dengan data yang mendeskripsikan hubungan ini:

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

Sekarang, kita memiliki objek regresi yang dapat memprediksi nilai CO2 berdasarkan berat dan volume kendaraan:

# Prediksi emisi CO2 kendaraan dengan berat 2300kg dan volume 1300ccm:
predictedCO2 = regr.predict([[2300, 1300]])

Contoh

Lihat contoh yang lengkap:

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)
# Prediksi emisi CO2 kendaraan dengan berat 2300kg dan volume 1300ccm:
predictedCO2 = regr.predict([[2300, 1300]])
print(predictedCO2)

Hasil:

[107.2087328]

Jalankan Contoh

Kami memperkirakan, kendaraan dengan mesin 1.3 liter, berat 2300 kilogram, setiap mengendarai 1 kilometer, akan melepaskan sekitar 107 gram gas carbon dioksida.

Koefisien

Koefisien adalah faktor yang mendeskripsikan hubungan dengan variabel tak tentu.

Contoh: jika x Adalah variabel, maka 2x Adalah x diperoleh 2 kali.x Adalah variabel tak tentu, angka 2 Adalah koefisien.

Dalam kasus ini, kita dapat meminta nilai koefisien berat terhadap CO2, serta nilai koefisien volume terhadap CO2. Jawaban yang kita dapatkan mengatakan apa yang akan terjadi jika kita tambahkan atau mengurangi salah satu nilai variabel bebas.

Contoh

Mencetak nilai koefisien 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

Penjelasan hasil

Daftar hasil menunjukkan koefisien nilai berat dan volume.

Berat: 0.00755095
Volume: 0.00780526

Nilai ini mengatakan bahwa jika berat bertambah 1g, emisi CO2 akan bertambah 0.00755095g.

Jika ukuran mesin (volume) bertambah 1 ccm, emisi CO2 akan bertambah 0.00780526g.

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

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

Bagaimana jika berat tambahan 1000g?

Contoh

Salin contoh sebelumnya, tetapi tingkatkan berat mobil 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 mobil 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