Skala
- Hal Sebelumnya Regresi Multinomial
- Hal Berikutnya Pelatihan/Pengujian
Skala Fitur (Scale Features)
Ketika data anda memiliki nilai yang berbeda, bahkan menggunakan satuan ukur yang berbeda, mungkin sulit untuk dibandingkan. Berapa kilogram dibandingkan meter? atau ketinggian dibandingkan waktu?
Jawaban untuk masalah ini adalah skala. Kita dapat meng skalakan data menjadi nilai baru yang mudah dibandingkan.
Lihat tabel di bawah ini, yang disamakan dengan yang kamiRegresi MultinomialData yang digunakan di bab ini sama, tetapi kali ini, kolum Kepasaran mengandung satuan liter, bukannya ccm (1.0 bukannya 1000).
Kereta | Model | Kepasaran | Berat | CO2 |
---|---|---|---|---|
Toyota | Aygo | 1.0 | 790 | 99 |
Mitsubishi | Space Star | 1.2 | 1160 | 95 |
Skoda | Citigo | 1.0 | 929 | 95 |
Fiat | 500 | 0.9 | 865 | 90 |
Mini | Cooper | 1.5 | 1140 | 105 |
VW | Up! | 1.0 | 929 | 105 |
Skoda | Fabia | 1.4 | 1109 | 90 |
Mercedes | A-Klas | 1.5 | 1365 | 92 |
Ford | Fiesta | 1.5 | 1112 | 98 |
Audi | A1 | 1.6 | 1150 | 99 |
Hyundai | I20 | 1.1 | 980 | 99 |
Suzuki | Swift | 1.3 | 990 | 101 |
Ford | Fiesta | 1.0 | 1112 | 99 |
Honda | Civic | 1.6 | 1252 | 94 |
Hundai | I30 | 1.6 | 1326 | 97 |
Opel | Astra | 1.6 | 1330 | 97 |
BMW | 1 | 1.6 | 1365 | 99 |
Mazda | 3 | 2.2 | 1280 | 104 |
Skoda | Rapid | 1.6 | 1119 | 104 |
Ford | Focus | 2.0 | 1328 | 105 |
Ford | Mondeo | 1.6 | 1584 | 94 |
Opel | Insignia | 2.0 | 1428 | 99 |
Mercedes | C-Class | 2.1 | 1365 | 99 |
Skoda | Octavia | 1.6 | 1415 | 99 |
Volvo | S60 | 2.0 | 1415 | 99 |
Mercedes | CLA | 1.5 | 1465 | 102 |
Audi | A4 | 2.0 | 1490 | 104 |
Audi | A6 | 2.0 | 1725 | 114 |
Volvo | V70 | 1.7 | 1523 | 109 |
BMW | 5 | 2.0 | 1705 | 114 |
Mercedes | E-Class | 2.1 | 1605 | 115 |
Volvo | XC70 | 2.0 | 1746 | 117 |
Ford | B-Max | 1.6 | 1235 | 104 |
BMW | 2 | 1.6 | 1390 | 108 |
Opel | Zafira | 1.6 | 1405 | 109 |
Mercedes | SLK | 2.5 | 1395 | 120 |
Sulit untuk membandingkan kapasitas 1.0 dengan berat 790, tetapi jika keduanya diukur ke nilai yang dapat dibandingkan, kita dapat mudah melihat berapa banyak nilai satu dibandingkan dengan nilai lain.
Ada berbagai metode pengukuran data, dalam tutorial ini, kita akan menggunakan metode yang disebut standarisasi (standardization).
Metode standarisasi menggunakan formula berikut:
z = (x - u) / s
di mana z adalah nilai baru, x adalah nilai asli, u adalah rata-rata, dan s adalah standar deviasi.
Jika mengambil data dari dataset di atas weight kolom, nilai pertama adalah 790, nilai setelah diukur adalah:
(790 - 1292.23) / 238.74 = -2.1
Jika mengambil data dari dataset di atas volume kolom, nilai pertama adalah 1.0, nilai setelah diukur adalah:
(1.0 - 1.61) / 0.38 = -1.59
Sekarang, Anda dapat membandingkan -2.1 dengan -1.59, bukannya membandingkan 790 dengan 1.0.
Anda tidak perlu melaksanakan operasi ini secara manual, modul Python sklearn memiliki nama StandardScaler()
metoden, metoden ini mengembalikan objek Scaler yang memiliki metode transformasi dataset.
Contoh
Pengukuran seluruh nilai di dalam kolom Weight dan Volume:
import pandas from sklearn import linear_model from sklearn.preprocessing import StandardScaler scale = StandardScaler() df = pandas.read_csv("cars2.csv") X = df[['Berat', 'Kapasiti']] scaledX = scale.fit_transform(X) print(scaledX)
Hasil:
Sila perhatikan, nilai pertama dan kedua adalah -2.1 dan -1.59, yang sejalan dengan perhitungan kami:
[[-2.10389253 -1.59336644]] [-0.55407235 -1.07190106] [-1.52166278 -1.59336644] [-1.78973979 -1.85409913] [-0.63784641 -0.28970299] [-1.52166278 -1.59336644] [-0.76769621 -0.55043568] [ 0.3046118 -0.28970299] [-0.7551301 -0.28970299] [-0.59595938 -0.0289703 ] [-1.30803892 -1.33263375] [-1.26615189 -0.81116837] [-0.7551301 -1.59336644] [-0.16871166 -0.0289703 ] [ 0.14125238 -0.0289703 ] [ 0.15800719 -0.0289703 ] [ 0.3046118 -0.0289703 ] [-0.05142797 1.53542584] [-0.72580918 -0.0289703 ] [ 0.14962979 1.01396046] [ 1.2219378 -0.0289703 ] [ 0.5685001 1.01396046] [ 0.3046118 1.27469315] [ 0.51404696 -0.0289703 ] [ 0.51404696 1.01396046] [ 0.72348212 -0.28970299] [ 0.8281997 1.01396046] [ 1.81254495 1.01396046] [ 0.96642691 -0.0289703 ] [ 1.72877089 1.01396046] [ 1.30990057 1.27469315] [ 1.90050772 1.01396046] [-0.23991961 -0.0289703 ] [ 0.40932938 -0.0289703 ] [ 0.47215993 -0.0289703 ] [ 0.4302729 2.31762392]
Ramalkan nilai CO2
Regresi MultinomialTugas bab ini adalah untuk memprediksi emisi karbon dioksida kereta hanya dengan mengetahui berat dan kapasiti kereta.
Setelah mengukur data set, harus digunakan skala penyesuaian untuk menentukan nilai prediksi:
Contoh
Ramalkan emisi karbon dioksida untuk kereta 2300 kilogram 1.3 liter:
import pandas from sklearn import linear_model from sklearn.preprocessing import StandardScaler scale = StandardScaler() df = pandas.read_csv("cars2.csv") X = df[['Berat', 'Kapasiti']] 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)
Hasil:
[107.2087328]
- Hal Sebelumnya Regresi Multinomial
- Hal Berikutnya Pelatihan/Pengujian