Pengantar Mengubah Data

Rekayasa fitur adalah proses menentukan fitur mana yang mungkin berguna dalam melatih model, lalu membuat fitur tersebut dengan mentransformasi data mentah yang ditemukan dalam file log dan sumber lainnya. Di bagian ini, kami berfokus pada waktu dan cara mengubah data numerik dan kategoris, serta keseimbangan berbagai pendekatan.

Alasan Transformasi Data

Kami melakukan transformasi fitur terutama karena alasan berikut:

  1. Transformasi wajib untuk kompatibilitas data. Contohnya antara lain:

    • Mengonversi fitur non-numerik ke dalam angka. Anda tidak dapat melakukan perkalian matriks pada string, sehingga kita harus mengonversi string menjadi beberapa representasi numerik.
    • Mengubah ukuran input ke ukuran tetap. Model linear dan jaringan neural feed-forward memiliki jumlah node input yang tetap, sehingga data input Anda harus selalu memiliki ukuran yang sama. Misalnya, model gambar perlu mengubah bentuk gambar dalam set data menjadi ukuran tetap.
  2. Transformasi kualitas opsional yang dapat membantu model berperforma lebih baik. Contohnya antara lain:

    • Tokenisasi atau penggunaan huruf kecil untuk fitur teks.
    • Fitur numerik yang dinormalkan (sebagian besar model berperforma lebih baik setelahnya).
    • Memungkinkan model linear memperkenalkan non-linearitas ke dalam ruang fitur.

Sebenarnya, transformasi kualitas tidak diperlukan--model Anda masih bisa berjalan tanpa transformasi tersebut. Namun, penggunaan teknik ini dapat memungkinkan model untuk memberikan hasil yang lebih baik.

Di Mana Akan Bertransformasi?

Anda dapat menerapkan transformasi saat menghasilkan data di disk, atau dalam model.

Bertransformasi sebelum pelatihan

Dalam pendekatan ini, kita melakukan transformasi sebelum pelatihan. Kode ini terpisah dari model machine learning Anda.

Kelebihan

  • Komputasi dilakukan hanya sekali.
  • Komputasi dapat melihat seluruh set data untuk menentukan transformasi.

Kekurangan

  • Transformasi perlu direproduksi pada waktu prediksi. Waspadai kemiringan!
  • Setiap perubahan transformasi memerlukan eksekusi ulang data, yang mengakibatkan iterasi lebih lambat.

Skew lebih berbahaya untuk kasus yang melibatkan penayangan online. Dalam penayangan offline, Anda mungkin dapat menggunakan kembali kode yang menghasilkan data pelatihan. Dalam penayangan online, kode yang membuat set data dan kode yang digunakan untuk menangani traffic live hampir selalu berbeda, sehingga memudahkan ketidaksesuaian.

Bertransformasi dalam model

Dalam pendekatan ini, transformasi adalah bagian dari kode model. Model ini mengambil data yang tidak ditransformasi sebagai input dan akan mengubahnya dalam model.

Kelebihan

  • Iterasi yang mudah. Jika Anda mengubah transformasi, Anda masih dapat menggunakan file data yang sama.
  • Anda dijamin mendapatkan transformasi yang sama pada waktu pelatihan dan prediksi.

Kekurangan

  • Transformasi yang mahal dapat meningkatkan latensi model.
  • Transformasi diterapkan per batch.

Ada banyak pertimbangan untuk mentransformasi per batch. Misalkan Anda ingin menormalisasi fitur berdasarkan nilai rata-ratanya--yaitu, Anda ingin mengubah nilai fitur agar memiliki rata-rata 0 dan simpangan baku 1. Saat bertransformasi di dalam model, normalisasi ini hanya akan memiliki akses ke satu batch data, bukan set data lengkap. Anda dapat menormalisasi berdasarkan nilai rata-rata dalam batch (berbahaya jika batch sangat varian), atau melakukan komputasi rata-rata dan memperbaikinya sebagai konstanta dalam model. Kita akan mempelajari normalisasi di bagian berikutnya.

Jelajahi, Bersihkan, dan Visualisasikan Data Anda

Pelajari dan bersihkan data Anda sebelum melakukan transformasi apa pun. Anda mungkin telah melakukan beberapa tugas berikut saat mengumpulkan dan membuat set data:

  • Periksa beberapa baris data.
  • Memeriksa statistik dasar.
  • Memperbaiki entri numerik yang hilang.

Visualisasikan data Anda secara rutin. Grafik dapat membantu menemukan anomali atau pola yang tidak jelas dari statistik numerik. Oleh karena itu, sebelum membahas analisis terlalu jauh, lihat data Anda secara grafis, baik melalui plot sebar maupun histogram. Lihat grafik tidak hanya di awal pipeline, tetapi juga di seluruh transformasi. Visualisasi akan membantu Anda terus memeriksa asumsi dan melihat dampak dari perubahan besar apa pun.