Home » python » Scale Python

Scale Python

by Catur Kurnia Sari
by Catur Kurnia Sari

Fitur Skala

Jika data Anda memiliki nilai yang berbeda, dan bahkan unit pengukuran yang berbeda, akan sulit untuk membandingkannya. Berapa kilogram dibandingkan dengan meter? Atau ketinggian dibandingkan dengan waktu?

Jawaban untuk masalah ini adalah menggunakan penskalaan. Kita dapat menskalakan data menjadi nilai baru yang lebih mudah untuk dibandingkan.

Perhatikan tabel di bawah ini, ini adalah kumpulan data yang sama yang kami gunakan di bab regresi berganda, tetapi kali ini kolom volume berisi nilai dalam liter, bukan cm3 (1.0, bukan 1000).

CarModelVolumeWeightCO2
ToyotaAygo1.079099
MitsubishiSpace Star1.2116095
SkodaCitigo1.092995
Fiat5000.986590
MiniCooper1.51140105
VWUp!1.0929105
SkodaFabia1.4110990
MercedesA-Class1.5136592
FordFiesta1.5111298
AudiA11.6115099
HyundaiI201.198099
SuzukiSwift1.3990101
FordFiesta1.0111299
HondaCivic1.6125294
HundaiI301.6132697
OpelAstra1.6133097
BMW11.6136599
Mazda32.21280104
SkodaRapid1.61119104
FordFocus2.01328105
FordMondeo1.6158494
OpelInsignia2.0142899
MercedesC-Class2.1136599
SkodaOctavia1.6141599
VolvoS602.0141599
MercedesCLA1.51465102
AudiA42.01490104
AudiA62.01725114
VolvoV701.61523109
BMW52.01705114
MercedesE-Class2.11605115
VolvoXC702.01746117
FordB-Max1.61235104
BMW21.61390108
OpelZafira1.61405109
MercedesSLK2.51395120

Sulit untuk membandingkan volume 1.0 dengan berat 790, tetapi jika kita menskalakan keduanya menjadi nilai yang dapat dibandingkan, kita dapat dengan mudah melihat seberapa besar satu nilai dibandingkan dengan yang lain.

Ada beberapa metode penskalaan data, dalam tutorial ini kita akan menggunakan metode yang disebut standardisasi.

Metode standardisasi menggunakan rumus ini:

z = (x – u) / s

Di mana z adalah nilai baru, x adalah nilai asli, u adalah mean dan s adalah standar deviasi.

Jika kita mengambil kolom berat dari kumpulan data di atas, nilai pertama adalah 790, dan nilai skala adalah:

(790 – 1292,23) / 238,74 = -2,1

Jika kita mengambil kolom volume dari kumpulan data di atas, nilai pertama adalah 1.0, dan nilai skala adalah:

(1,0 – 1,61) / 0,38 = -1,59

Sekarang kita dapat membandingkan -2,1 dengan -1,59 daripada membandingkan 790 dengan 1,0.

Kita tidak perlu melakukannya secara manual, karena modul sklearn Python memiliki metode yang disebut StandardScaler() yang mengembalikan objek Scaler dengan metode untuk mengubah kumpulan data.

Contoh:
Skala semua nilai di kolom Bobot dan Volume

import pandas
from sklearn import linear_model
from sklearn.preprocessing import StandardScaler
scale = StandardScaler()

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

X = df[['Weight', 'Volume']]

scaledX = scale.fit_transform(X)

print(scaledX)

Memprediksi Nilai CO2

Tugas pada bab Regresi Ganda adalah memprediksi emisi CO2 dari sebuah mobil ketika kita hanya mengetahui berat dan volumenya.

Saat kumpulan data diskalakan, kita harus menggunakan skala saat memprediksi nilai:

Contoh:
Prediksi emisi CO2 dari mobil 1,3 liter yang memiliki berat 2.300 kilogram

import pandas
from sklearn import linear_model
from sklearn.preprocessing import StandardScaler
scale = StandardScaler()

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

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

scaledX = scale.fit_transform(X)

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

scaled = scale.transform([[2300, 1.3]])

predictedCO2 = regr.predict([scaled[0]])
print(predictedCO2)

You may also like