Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Pemisahan dan kebocoran data
Kebocoran data terjadi ketika model Anda mendapatkan data selama inferensi—saat model dalam produksi dan menerima permintaan prediksi—yang seharusnya tidak memiliki akses ke, seperti sampel data yang digunakan untuk pelatihan, atau informasi yang tidak akan tersedia saat model digunakan dalam produksi.
Jika model Anda diuji secara tidak sengaja pada data pelatihan, kebocoran data dapat menyebabkan overfitting. Overfitting berarti model Anda tidak menggeneralisasi dengan baik ke data yang tidak terlihat. Bagian ini memberikan praktik terbaik untuk menghindari kebocoran data dan overfitting.
Membagi data Anda menjadi setidaknya tiga set
Salah satu sumber kebocoran data yang umum adalah membagi (memisahkan) data Anda secara tidak benar selama pelatihan. Misalnya, ilmuwan data mungkin secara sadar atau tidak sadar melatih model pada data yang digunakan untuk pengujian. Dalam situasi seperti itu, Anda mungkin mengamati metrik keberhasilan yang sangat tinggi yang disebabkan oleh overfitting. Untuk mengatasi masalah ini, Anda harus membagi data menjadi setidaknya tiga set:training
,validation
, dantesting
.
Dengan memisahkan data Anda dengan cara ini, Anda dapat menggunakan validation
set untuk memilih dan menyetel parameter yang Anda gunakan untuk mengontrol proses pembelajaran (hyperparameters). Ketika Anda telah mencapai hasil yang diinginkan atau mencapai dataran tinggi peningkatan, lakukan evaluasi di lokasi syuting. testing
Metrik kinerja untuk testing
set harus serupa dengan metrik untuk set lainnya. Ini menunjukkan tidak ada ketidakcocokan distribusi antara set, dan model Anda diharapkan dapat digeneralisasi dengan baik dalam produksi.
Gunakan algoritma split bertingkat
Saat Anda membagi data menjaditraining
,validation
, dan testing
untuk kumpulan data kecil, atau saat Anda bekerja dengan data yang sangat tidak seimbang, pastikan untuk menggunakan algoritma split bertingkat. Stratifikasi menjamin bahwa setiap split berisi kira-kira jumlah atau distribusi kelas yang sama untuk setiap split. Pustaka scikit-learn SM
Untuk ukuran sampel, pastikan bahwa set validasi dan pengujian memiliki data yang cukup untuk evaluasi, sehingga Anda dapat mencapai kesimpulan yang signifikan secara statistik. Misalnya, ukuran split umum untuk kumpulan data yang relatif kecil (kurang dari 1 juta sampel) adalah 70%, 15%, dan 15%, untuktraining
,, dan. validation
testing
Untuk kumpulan data yang sangat besar (lebih dari 1 juta sampel), Anda dapat menggunakan 90%, 5%, dan 5%, untuk memaksimalkan data pelatihan yang tersedia.
Dalam beberapa kasus penggunaan, akan berguna untuk membagi data menjadi set tambahan, karena data produksi mungkin mengalami perubahan radikal dan tiba-tiba dalam distribusi selama periode pengumpulannya. Misalnya, pertimbangkan proses pengumpulan data untuk membangun model peramalan permintaan untuk item toko kelontong. Jika tim ilmu data mengumpulkan training
data selama 2019 dan testing
data dari Januari 2020 hingga Maret 2020, sebuah model mungkin akan mendapat skor bagus di testing
lokasi syuting. Namun, ketika model tersebut digunakan dalam produksi, pola konsumen untuk barang-barang tertentu akan berubah secara signifikan karena pandemi COVID -19, dan model tersebut akan menghasilkan hasil yang buruk. Dalam skenario ini, masuk akal untuk menambahkan set lain (misalnya,recent_testing
) sebagai perlindungan tambahan untuk persetujuan model. Penambahan ini dapat mencegah Anda menyetujui model untuk produksi yang akan langsung berkinerja buruk karena ketidakcocokan distribusi.
Dalam beberapa kasus, Anda mungkin ingin membuat tambahan validation
atau testing
set yang menyertakan jenis sampel tertentu, seperti data yang terkait dengan populasi minoritas. Sampel data ini penting untuk dilakukan dengan benar tetapi mungkin tidak terwakili dengan baik dalam kumpulan data keseluruhan. Subset data ini disebut irisan.
Pertimbangkan kasus model ML untuk analisis kredit yang dilatih pada data untuk seluruh negara, dan seimbang untuk memperhitungkan secara merata seluruh domain variabel target. Selain itu, pertimbangkan bahwa model ini mungkin memiliki City
fitur. Jika bank yang menggunakan model ini memperluas bisnisnya ke kota tertentu, mungkin tertarik dengan kinerja model untuk wilayah itu. Jadi, jalur persetujuan seharusnya tidak hanya menilai kualitas model berdasarkan data pengujian untuk seluruh negara, tetapi juga harus mengevaluasi data pengujian untuk potongan kota tertentu.
Ketika ilmuwan data bekerja pada model baru, mereka dapat dengan mudah menilai kemampuan model dan memperhitungkan kasus tepi dengan mengintegrasikan irisan yang kurang terwakili dalam tahap validasi model.
Pertimbangkan sampel duplikat saat melakukan pemisahan acak
Sumber kebocoran lain yang kurang umum adalah dalam kumpulan data yang mungkin mengandung terlalu banyak sampel duplikat. Dalam kasus ini, bahkan jika Anda membagi data menjadi subset, subset yang berbeda mungkin memiliki sampel yang sama. Bergantung pada jumlah duplikat, overfitting mungkin disalahartikan sebagai generalisasi.
Pertimbangkan fitur yang mungkin tidak tersedia saat menerima kesimpulan dalam produksi
Kebocoran data juga terjadi ketika model dilatih dengan fitur yang tidak tersedia dalam produksi, pada saat kesimpulan dipanggil. Karena model sering dibangun berdasarkan data historis, data ini mungkin diperkaya dengan kolom atau nilai tambahan yang tidak ada di beberapa titik waktu. Pertimbangkan kasus model persetujuan kredit yang memiliki fitur yang melacak berapa banyak pinjaman yang telah dibuat pelanggan dengan bank dalam enam bulan terakhir. Ada risiko kebocoran data jika model ini digunakan dan digunakan untuk persetujuan kredit bagi pelanggan baru yang tidak memiliki riwayat enam bulan dengan bank.
Amazon SageMaker Feature Store