Pembelajaran Mesin - Regresi Berganda
Regresi Berganda
Regresi berganda seperti regresi linier , tetapi dengan lebih dari satu nilai independen, artinya kami mencoba memprediksi nilai berdasarkan dua variabel atau lebih.
Lihatlah kumpulan data di bawah ini, ini berisi beberapa informasi tentang mobil.
Mobil | Model | Volume | Berat | CO2 |
Toyota | aygo | 1000 | 790 | 99 |
Mitsubishi | Bintang Luar Angkasa | 1200 | 1160 | 95 |
Skoda | Citigo | 1000 | 929 | 95 |
Perintah | 500 | 900 | 865 | 90 |
Mini | cooper | 1500 | 1140 | 105 |
VW | Ke atas! | 1000 | 929 | 105 |
Skoda | fabia | 1400 | 1109 | 90 |
Mercedes | Kelas | 1500 | 1365 | 92 |
Mengarungi | Pesta | 1500 | 1112 | 98 |
audi | A1 | 1600 | 1150 | 99 |
Hyundai | 20 | 1100 | 980 | 99 |
Suzuki | Cepat | 1300 | 990 | 101 |
Mengarungi | Pesta | 1000 | 1112 | 99 |
honda | Kewarganegaraan | 1600 | 1252 | 94 |
Hyundai | I30 | 1600 | 1326 | 97 |
opel | Astra | 1600 | 1330 | 97 |
BMW | 1 | 1600 | 1365 | 99 |
Mazda | 3 | 2200 | 1280 | 104 |
Skoda | Cepat | 1600 | 1119 | 104 |
Mengarungi | Fokus | 2000 | 1328 | 105 |
Mengarungi | mondeo | 1600 | 1584 | 94 |
opel | Lencana | 2000 | 1428 | 99 |
Mercedes | Kelas-C | 2100 | 1365 | 99 |
Skoda | Oktavia | 1600 | 1415 | 99 |
Volvo | S60 | 2000 | 1415 | 99 |
Mercedes | PKB | 1500 | 1465 | 102 |
audi | A4 | 2000 | 1490 | 104 |
audi | A6 | 2000 | 1725 | 114 |
Volvo | V70 | 1600 | 1523 | 109 |
BMW | 5 | 2000 | 1705 | 114 |
Mercedes | Kelas-E | 2100 | 1605 | 115 |
Volvo | XC70 | 2000 | 1746 | 117 |
Mengarungi | B-Maks | 1600 | 1235 | 104 |
BMW | 2 | 1600 | 1390 | 108 |
opel | Zafira | 1600 | 1405 | 109 |
Mercedes | SLK | 2500 | 1395 | 120 |
Kita dapat memprediksi emisi CO2 mobil berdasarkan ukuran mesin, tetapi dengan regresi berganda kita dapat memasukkan lebih banyak variabel, seperti berat mobil, untuk membuat prediksi lebih akurat.
Bagaimana cara kerjanya?
Dalam Python kami memiliki modul yang akan melakukan pekerjaan untuk kami. Mulailah dengan mengimpor modul Pandas.
import pandas
Pelajari tentang modul Pandas di Tutorial Pandas kami .
Modul Pandas memungkinkan kita untuk membaca file csv dan mengembalikan objek DataFrame.
File ini dimaksudkan untuk tujuan pengujian saja, Anda dapat mengunduhnya di sini: cars.csv
df = pandas.read_csv("cars.csv")
Kemudian buat daftar nilai independen dan panggil variabel ini X
.
Masukkan nilai dependen ke dalam variabel yang disebut y
.
X = df[['Weight', 'Volume']]
y = df['CO2']
Tip: Adalah umum untuk menamai daftar nilai independen dengan huruf besar X, dan daftar nilai dependen dengan huruf kecil y.
Kami akan menggunakan beberapa metode dari modul sklearn, jadi kami juga harus mengimpor modul itu:
from sklearn import linear_model
Dari modul sklearn kita akan menggunakan LinearRegression()
metode untuk membuat objek regresi linier.
Objek ini memiliki metode yang disebut fit()
yang mengambil nilai independen dan dependen sebagai parameter dan mengisi objek regresi dengan data yang menggambarkan hubungan:
regr = linear_model.LinearRegression()
regr.fit(X, y)
Sekarang kita memiliki objek regresi yang siap untuk memprediksi nilai CO2 berdasarkan berat dan volume mobil:
#predict the CO2 emission of a car where the weight
is 2300kg, and the volume is 1300cm3:
predictedCO2 = regr.predict([[2300, 1300]])
Contoh
Lihat seluruh contoh dalam tindakan:
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)
#predict the CO2
emission of a car where the weight is 2300kg, and the volume is 1300cm3:
predictedCO2 = regr.predict([[2300, 1300]])
print(predictedCO2)
Hasil:
[107.2087328]
Kami telah memperkirakan bahwa mobil dengan mesin 1,3 liter, dan berat 2.300 kg, akan melepaskan sekitar 107 gram CO2 untuk setiap kilometer yang dikendarainya.
Koefisien
Koefisien adalah faktor yang menggambarkan hubungan dengan variabel yang tidak diketahui.
Contoh: jika x
adalah variabel, maka
2x
adalah x
dua kali. x
adalah variabel yang tidak diketahui, dan angka 2
adalah koefisien.
Dalam hal ini, kita dapat menanyakan nilai koefisien berat terhadap CO2, dan volume terhadap CO2. Jawaban yang kita dapatkan memberi tahu kita apa yang akan terjadi jika kita menambah, atau mengurangi, salah satu nilai independen.
Contoh
Cetak nilai koefisien dari objek regresi:
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_)
Hasil:
[0.00755095 0.00780526]
Hasil Dijelaskan
Array hasil mewakili nilai koefisien berat dan volume.
Berat: 0,00755095
Volume: 0,00780526
Nilai-nilai ini memberi tahu kita bahwa jika berat bertambah 1kg, emisi CO2 meningkat 0,00755095g.
Dan jika ukuran mesin (Volume) bertambah 1 cm 3 , emisi CO2 meningkat 0,00780526 g.
Saya pikir itu tebakan yang adil, tetapi biarkan mengujinya!
Kami telah memperkirakan bahwa jika mobil dengan mesin 1300cm 3 memiliki berat 2300kg, emisi CO2 akan menjadi sekitar 107g.
Bagaimana jika kita menambah berat dengan 1000kg?
Contoh
Salin contoh dari sebelumnya, tetapi ubah bobot dari 2300 menjadi 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)
Hasil:
[114.75968007]
Kami telah memperkirakan bahwa mobil dengan mesin 1,3 liter, dan berat 3300 kg, akan melepaskan sekitar 115 gram CO2 untuk setiap kilometer yang dikendarainya.
Yang menunjukkan bahwa koefisien 0,00755095 benar:
107.2087328 + (1000 * 0,00755095) = 114.75968