机器学习中的数据泄漏
Source: Dev.to
Sering kali mentee melakukan kesalahan dasar dalam alur kerja Machine Learning: Exploratory Data Analysis (EDA) → preprocessing → split dataset → buat model → evaluasi. Masalah yang muncul biasanya terletak pada data testing yang secara tidak sengaja sudah diketahui oleh model saat proses training. Dalam Machine Learning, hal ini disebut Data Leakage.
Apa itu Data Leakage?
Data Leakage terjadi ketika informasi dari data testing masuk ke dalam proses training, sehingga model “melihat” data yang seharusnya tidak diketahui. Masalah ini termasuk dalam kategori Train‑Test Contamination, misalnya ketika nilai rata‑rata atau standar deviasi data testing sudah dipakai saat proses standarisasi.
Contoh: Standarisasi yang Salah
Formula standarisasi:
# Standarisasi yang benar
x_scaled = (x - mean) / std
Jika standarisasi dilakukan sebelum memisahkan data menjadi train dan test set, maka mean dan std dihitung dari seluruh data. Akibatnya model secara tidak langsung mengintip informasi dari data testing selama training.
Cara Menghindari Data Leakage
- Pisahkan data menjadi train set dan test set terlebih dahulu。
- Fit scaler (misalnya
StandardScaler) hanya pada data training。 - Gunakan scaler yang sudah di‑fit untuk transform data training dan data testing secara terpisah。
Dengan langkah ini, model tetap “buta” terhadap data testing selama proses pelatihan, sehingga evaluasi yang diperoleh mencerminkan performa yang sebenarnya。