DEV Community

Cover image for Data Leakage pada Machine Learning
Hafid Nur
Hafid Nur

Posted on

Data Leakage pada Machine Learning

Ada suatu utas di Threads yang bilang kalau sering banget mentee-mentee melakukan kesalahan basic.

Threads post dari math_adventurer

Urutannya sepertinya sudah sesuai: Exploratory Data Analysis (EDA), preprocessing, split dataset, buat model, dan evaluasi. Penasaran dong salahnya ada di mana?

Setelah menyimak beberapa jawaban, ternyata masalahnya ada di data testing yang seharusnya tidak diketahui oleh model saat training, tetapi justru sudah bocor ke dalam data training. Dalam Machine Learning, ini disebut Data Leakage.

Di artikel Medium ini dijelaskan lebih lengkap tentang Data Leakage. Masalah ini tergolong dalam Train-Test Contamination di mana informasi pada data testing, seperti nilai rata-rata, itu sudah terhitung saat proses standarisasi. Jadi, model sudah tahu sebaran data testing selama melakukan pelatihan.

Test set nyontek train set

Lebih lengkapnya, ini adalah formula untuk melakukan standarisasi. Diperlukan data mean (rata-rata) dan deviasi standar.

Standard deviation formula

Jika proses standarisasi dilakukan sebelum memisahkan data menjadi train dan test set, maka nilai rata-rata dan deviasi standar dihitung dari keseluruhan data. Hal ini menyebabkan model secara ga langsung mengintip informasi dari data testing saat proses training.

Agar tidak terjadi kebocoran, langkah yang benar yaitu: pisahkan dulu data menjadi train dan test set. Kemudian, fit scaler hanya pada data training, dan gunakan scaler itu untuk mentransformasi saat proses testing. Dengan begitu, model tetap "buta" terhadap data testing selama proses pelatihan.

Top comments (0)