Scale
Scale Features
Ketika data Anda memiliki nilai yang berbeda, dan bahkan unit pengukuran yang berbeda, akan sulit untuk membandingkannya. Apa kilogram dibandingkan dengan meter? Atau ketinggian dibandingkan dengan waktu?
Jawaban untuk masalah ini adalah penskalaan. Kami dapat menskalakan data menjadi nilai baru yang lebih mudah dibandingkan.
Perhatikan tabel di bawah ini, ini adalah kumpulan data yang sama dengan yang kita gunakan di bab regresi berganda , tetapi kali ini kolom volume berisi nilai dalam liter , bukan cm3 (1,0 bukan 1000).
| Car | Model | Volume | Weight | 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-Class | 1.5 | 1365 | 92 |
| Ford | Fiesta | 1.5 | 1112 | 98 |
| Audi | A1 | 1.6 | 1150 | 99 |
Sulit untuk membandingkan volume 1.0 dengan bobot 790, tetapi jika kita menskalakan keduanya menjadi nilai yang dapat dibandingkan, kita dapat dengan mudah melihat seberapa besar satu nilai dibandingkan dengan nilai lainnya.
Ada berbagai metode untuk menskalakan data, dalam tutorial ini kita akan menggunakan metode yang disebut standardisasi.
Metode standarisasi menggunakan rumus ini:
z = (x - u) / s
Dimana zadalah nilai baru, xadalah nilai asli, uadalah rata-rata dan sadalah standar deviasi.
Jika Anda mengambil kolom bobot dari kumpulan data di atas, nilai pertama adalah 790, dan nilai yang diskalakan adalah:
(790 - 1292.23) / 238.74 = -2.1
Jika Anda mengambil kolom volume dari kumpulan data di atas, nilai pertama adalah 1,0, dan nilai yang diskalakan adalah:
(1.0 - 1.61) / 0.38 = -1.59
Sekarang Anda dapat membandingkan -2.1 dengan -1.59 alih-alih membandingkan 790 dengan 1.0.
Anda tidak harus melakukan ini secara manual, modul Python sklearn memiliki metode bernama StandardScaler() yang mengembalikan objek Scaler dengan metode untuk mengubah kumpulan data.
Contoh
Skalakan semua nilai di kolom Berat dan Volume:
import pandas
from sklearn import linear_model
from sklearn.preprocessing import StandardScaler
scale = StandardScaler()
df = pandas.read_csv("data.csv")
X = df[['Weight', 'Volume']]
scaledX = scale.fit_transform(X)
print(scaledX)Hasil:
Perhatikan bahwa dua nilai pertama adalah -2.1 dan -1.59, yang sesuai 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]]

Komentar
Posting Komentar