Home » python » Multiple Regression Python

Multiple Regression Python

by Catur Kurnia Sari
by Catur Kurnia Sari

Regresi berganda hampir sama seperti regresi linier, tetapi bedanya regresi berganda memiliki lebih dari satu nilai independen, artinya kita mencoba memprediksi suatu nilai berdasarkan dua variabel atau lebih.

Lihatlah kumpulan data di bawah ini, yang berisi beberapa informasi tentang mobil.

CarModelVolumeWeightCO2
ToyotaAygo100079099
MitsubishiSpace Star1200116095
SkodaCitigo100092995
Fiat50090086590
MiniCooper15001140105
VWUp!1000929105
SkodaFabia1400110990
MercedesA-Class1500136592
FordFiesta1500111298
AudiA11600115099
HyundaiI20110098099
SuzukiSwift1300990101
FordFiesta1000111299
HondaCivic1600125294
HundaiI301600132697
OpelAstra1600133097
BMW11600136599
Mazda322001280104
SkodaRapid16001119104
FordFocus20001328105
FordMondeo1600158494
OpelInsignia2000142899
MercedesC-Class2100136599
SkodaOctavia1600141599
VolvoS602000141599
MercedesCLA15001465102
AudiA420001490104
AudiA620001725114
VolvoV7016001523109
BMW520001705114
MercedesE-Class21001605115
VolvoXC7020001746117
FordB-Max16001235104
BMW216001390108
OpelZafira16001405109
MercedesSLK25001395120

Kita dapat memprediksi emisi CO2 mobil berdasarkan ukuran mesinnya, tetapi dengan regresi berganda kita dapat memasukkan lebih banyak variabel, seperti berat mobil, untuk membuat prediksi lebih akurat.

Bagaimana cara kerjanya?

Python memiliki modul yang akan melakukan perhitungan regrersi berganda. Caranya dengan mengimport modul Pandas.

import pandas

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

File ini dimaksudkan untuk tujuan pengujian saja, Anda dapat mendownloadnya 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 bernama y.

X = df[[‘Weight’, ‘Volume’]]
y = df[‘CO2’]

Tips: Merupakan hal umum untuk menamai daftar nilai independen dengan huruf besar X, dan daftar nilai dependen dengan huruf kecil y.

Kita akan menggunakan beberapa metode dari modul sklearn, jadi kita harus mengimport modul itu juga:

from sklearn import linear_model

Dari modul sklearn kita akan menggunakan metode LinearRegression() 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 tersebut:

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 berjalan

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)


#prediksi emisi CO2 mobil yang beratnya 2300g, dan volumenya 1300ccm:
predictedCO2 = regr.predict([[2300, 1300]])

print(predictedCO2)

Mobil bermesin 1,3 liter dengan bobot 2.300 kg telah diprediksi akan mengeluarkan sekitar 107 gram CO2 untuk setiap kilometer yang dikendarainya.

Koefisien

Koefisien merupakan 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 bobot 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_)

Penjelasan Hasil

Array hasil mewakili nilai koefisien berat dan volume.

Weight: 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 cm3, maka emisi CO2 meningkat sebesar 0,00780526 g.

Sepertinya itu adalah tebakan yang cukut akurat, tetapi mari kita uji!

Kita telah memperkirakan bahwa jika mobil bermesin 1300cm3 memiliki berat 2300kg, emisi CO2 akan menjadi sekitar 107g.

Bagaimana jika kita menambah berat dengan 1000kg?

Contoh:
Salin contoh dari sebelumnya, tetapi ubah berat 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)

Kita telah memprediksikan bahwa mobil bermesin 1,3 liter dan berat 3300 kg akan mengeluarkan sekitar 115 gram CO2 untuk setiap kilometer yang dikendarainya.

Yang menunjukkan bahwa koefisien 0,00755095 benar:

107.2087328 + (1000 * 0,00755095) = 114,75968

You may also like