Data sama pentingnya bagi developer ML seperti kode untuk programmer tradisional. Pelajaran ini berfokus pada jenis pertanyaan yang harus Anda tanyakan tentang data Anda.
Ringkasan Kuliah Video
Perilaku sistem ML bergantung pada perilaku dan kualitas fitur inputnya. Karena data input untuk fitur tersebut juga berubah, model Anda juga akan berubah. Terkadang perubahan itu diinginkan, tetapi terkadang tidak diinginkan.
Dalam pengembangan software tradisional, Anda lebih berfokus pada kode daripada data. Dalam pengembangan machine learning, meskipun coding masih merupakan bagian dari tugas tersebut, fokus Anda harus diperluas untuk menyertakan data. Misalnya, pada project pengembangan software tradisional, praktik terbaiknya adalah menulis pengujian unit untuk memvalidasi kode Anda. Pada project ML, Anda juga harus terus menguji, memverifikasi, dan memantau data input Anda.
Misalnya, Anda harus terus memantau model untuk menghapus fitur yang tidak digunakan (atau sedikit digunakan). Bayangkan fitur tertentu yang belum banyak berkontribusi atau tidak melakukan apa pun terhadap model. Jika data input untuk fitur tersebut tiba-tiba berubah, perilaku model Anda mungkin juga tiba-tiba berubah dengan cara yang tidak diinginkan.
Keandalan
Beberapa pertanyaan yang harus diajukan tentang keandalan data input Anda:
- Apakah sinyal akan selalu tersedia atau berasal dari sumber yang tidak dapat diandalkan? Misalnya:
- Apakah sinyal berasal dari server yang error saat beban berat?
- Apakah sinyal berasal dari manusia yang pergi berlibur setiap bulan Agustus?
Pembuatan versi
Beberapa pertanyaan yang harus diajukan terkait pembuatan versi:
- Apakah sistem yang menghitung data ini pernah berubah? Jika demikian:
- Seberapa sering?
- Bagaimana cara mengetahui saat sistem tersebut berubah?
Terkadang, data berasal dari proses upstream. Jika proses tersebut berubah secara tiba-tiba, model Anda dapat menderita.
Pertimbangkan untuk membuat salinan data Anda sendiri yang Anda terima dari proses upstream. Kemudian, hanya lanjutkan ke versi data upstream berikutnya jika Anda yakin bahwa tindakan tersebut aman untuk dilakukan.
Kebutuhan
Pertanyaan berikut mungkin mengingatkan Anda tentang regularisasi:
- Apakah kegunaan fitur sesuai dengan biaya untuk menyertakannya?
Anda mungkin tergoda untuk menambahkan lebih banyak fitur ke model. Misalnya, Anda menemukan fitur baru yang penambahannya membuat model Anda sedikit lebih akurat. Akurasi yang lebih tinggi terdengar lebih baik daripada akurasi yang lebih rendah. Namun, kini Anda baru saja menambahkan beban pemeliharaan. Fitur tambahan tersebut dapat menurun secara tidak terduga, jadi Anda harus memantaunya. Pikirkan dengan baik sebelum menambahkan fitur yang menghasilkan kemenangan jangka pendek yang kecil.
Korelasi
Beberapa fitur berkorelasi (positif atau negatif) dengan fitur lainnya. Tanyakan pada diri Anda pertanyaan berikut:
- Apakah ada fitur yang begitu terikat sehingga Anda perlu strategi tambahan untuk memisahkannya?
Feedback Loop
Terkadang sebuah model dapat memengaruhi data pelatihannya sendiri. Misalnya, hasil dari beberapa model secara langsung atau tidak langsung merupakan fitur input ke model yang sama tersebut.
Terkadang sebuah model dapat memengaruhi model lain. Misalnya, pertimbangkan dua model untuk memprediksi harga saham:
- Model A, yang merupakan model prediktif yang buruk.
- Model B.
Karena Model A memiliki bug, model ini salah memutuskan untuk membeli saham di Stok X. Pembelian tersebut menaikkan harga Saham X. Model B menggunakan harga Saham X sebagai fitur input, sehingga Model B dapat dengan mudah sampai pada kesimpulan yang salah tentang nilai saham Stock X. Oleh karena itu, Model B dapat membeli atau menjual saham dari Saham X berdasarkan perilaku bug dari Model A. Perilaku Model B selanjutnya dapat memengaruhi Model A, mungkin memicu mania tulip atau pergeseran dalam stok Perusahaan X