Apa itu feature scaling dalam machine learning?
Feature scaling mengubah feature input numerik supaya rentangnya mirip. Dua metode yang paling umum adalah normalisasi min-max, yang memetakan tiap feature ke [0, 1], dan standardisasi, yang menggeser tiap feature ke rata-rata 0 dan simpangan baku 1. Scaling mengubah satuan feature, tetapi urutan nilai di dalam tiap feature tetap sama.
Scaling berpengaruh pada model yang membandingkan feature berdasarkan jarak atau mempelajarinya dengan gradient descent. Tanpa scaling, feature seperti pendapatan dalam dolar menenggelamkan feature seperti usia dalam tahun. K-nearest neighbors, k-means, support vector machine, PCA, dan neural network semuanya bergantung pada scaling. Model berbasis tree seperti random forest dan gradient boosting tidak.
Ide utama
- Feature scaling menempatkan feature numerik pada rentang yang sebanding.
- Normalisasi min-max memetakan feature ke [0, 1] memakai nilai minimum dan maksimumnya.
- Standardisasi memberi feature rata-rata 0 dan simpangan baku 1.
- Feature tanpa scaling meregangkan permukaan loss dan memperlambat gradient descent.
- Model berbasis jarak dan berbasis gradient butuh scaling; model berbasis tree tidak.
- Statistik scaling harus dihitung hanya pada training set.
Pertanyaan umum
Mana yang lebih baik, normalisasi atau standardisasi?
Standardisasi adalah pilihan bawaan yang umum, terutama untuk model linear, SVM, dan neural network, dan lebih tahan terhadap outlier. Normalisasi min-max cocok untuk feature dengan batas tetap yang diketahui, seperti intensitas pixel, atau model yang mengharapkan input dalam [0, 1]. Mencoba keduanya dan membandingkan skor validasi bisa menjawab pertanyaan ini untuk dataset tertentu.
Sebaiknya scaling dilakukan sebelum atau sesudah membagi data?
Sesudah. Fit scaler hanya pada training set, lalu terapkan transformasi yang sama ke validation set dan test set. Menghitung rata-rata, simpangan baku, minimum, atau maksimum pada seluruh dataset membocorkan informasi test set ke training dan menggelembungkan skor tes.
Apakah variabel target perlu diskalakan?
Untuk klasifikasi, tidak. Untuk regresi dengan neural network, standardisasi atau log transform pada target bernilai besar sering membuat training lebih stabil. Prediksinya lalu harus dikembalikan ke satuan asli dengan transformasi kebalikannya.
Apakah batch normalization menggantikan scaling pada input?
Tidak sepenuhnya. Batch normalization mengatur ulang skala aktivasi di dalam network selama training, yang mengurangi kepekaan terhadap skala di layer berikutnya. Scaling pada input mentah tetap menjadi praktik standar, karena murah dan menjaga layer pertama tetap well conditioned.
Penjelasan terkait
- Data Preprocessing · Membersihkan, melakukan scaling, dan encoding data mentah
- Gradient Descent · Optimasi dengan mengikuti kemiringan ke bawah
- K-Nearest Neighbors · Klasifikasi berdasarkan kedekatan dan metrik jarak
- Batch Normalization · Kenapa normalisasi aktivasi mempercepat training deep network
- Norm dan Metrik Jarak · L1, L2, cosine similarity: cara mengukur kedekatan di ruang vector
- Dimensionality Reduction · PCA dan t-SNE untuk melihat data berdimensi tinggi
Referensi
- LeCun, Bottou, Orr & Müller (1998), "Efficient BackProp"
- Goodfellow, Bengio & Courville (2016), "Deep Learning", chapter 8: Optimization for Training Deep Models
- Stanford CS231n, "Neural Networks Part 2: Setting up the Data and the Loss"
- scikit-learn User Guide, "Preprocessing data"
Terakhir diperbarui