Dependensi Data

Data sama pentingnya bagi developer ML seperti kode untuk programmer tradisional. Pelajaran ini berfokus pada jenis pertanyaan yang harus Anda tanyakan tentang data Anda.

Dependensi Data

  • Data input (fitur) menentukan perilaku sistem ML.
    • Kita menulis pengujian unit untuk library software, tetapi bagaimana dengan data?
  • Anda harus berhati-hati saat memilih sinyal input.
    • Mungkin lebih berhati-hati dibandingkan saat memutuskan dependensi library software yang mana?
  • Keandalan
    • Apa yang terjadi saat sinyal tidak tersedia? Tahukah Anda?
  • Keandalan
    • Apa yang terjadi saat sinyal tidak tersedia? Tahukah Anda?
  • Pembuatan versi
    • Apakah sistem yang menghitung sinyal ini pernah berubah? Seberapa sering? Apa yang akan terjadi?
  • Keandalan
    • Apa yang terjadi saat sinyal tidak tersedia? Tahukah Anda?
  • Pembuatan versi
    • Apakah sistem yang menghitung sinyal ini pernah berubah? Seberapa sering? Apa yang akan terjadi?
  • Kebutuhan
    • Apakah kegunaan sinyal setara dengan biaya untuk menyertakannya?
  • Korelasi
    • Adakah sinyal input saya yang begitu terikat sehingga kami perlu strategi tambahan untuk membedakannya?
  • Korelasi
    • Adakah sinyal input saya yang begitu terikat sehingga kami perlu strategi tambahan untuk membedakannya?
  • Feedback Loop
    • Manakah dari sinyal input saya yang mungkin terpengaruh oleh output model saya?

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