Regresi Multivariabel Belajar Mesin
- Hal Sebelumnya Regresi Polinomial
- Hal Berikutnya Pengukuran
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 X
dengan 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]
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]
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]
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
- Hal Sebelumnya Regresi Polinomial
- Hal Berikutnya Pengukuran