Data numerik: Kualitas fitur numerik yang baik

Unit ini telah mempelajari cara memetakan data mentah menjadi vektor fitur yang sesuai. Fitur numerik yang baik memiliki kualitas yang dijelaskan di bagian ini.

Diberi nama yang jelas

Setiap fitur harus memiliki makna yang jelas, masuk akal, dan mudah dipahami oleh semua orang dalam project. Misalnya, makna nilai fitur berikut membingungkan:

Tidak direkomendasikan

house_age: 851472000

Sebaliknya, nama dan nilai fitur berikut jauh lebih jelas:

Direkomendasikan

house_age_years: 27

Dicek atau diuji sebelum pelatihan

Meskipun modul ini telah mencurahkan banyak waktu untuk penyimpangan, topik ini cukup penting untuk mendapatkan satu penyebutan terakhir. Dalam beberapa kasus, data yang buruk (bukan pilihan engineering yang buruk) menyebabkan nilai yang tidak jelas. Misalnya, user_age_in_years berikut berasal dari sumber yang tidak memeriksa nilai yang sesuai:

Tidak direkomendasikan

user_age_in_years: 224

Namun, orang dapat berusia 24 tahun:

Direkomendasikan

user_age_in_years: 24

Periksa data Anda.

Sensible

"Nilai ajaib" adalah diskontinuitas yang disengaja dalam fitur yang berkelanjutan. Misalnya, fitur kontinu bernama watch_time_in_seconds dapat menyimpan nilai floating point antara 0 dan 30, tetapi mewakili ketiadaan pengukuran dengan nilai ajaib -1:

Tidak direkomendasikan

watch_time_in_seconds: -1

watch_time_in_seconds sebesar -1 akan memaksa model untuk mencoba mencari tahu arti menonton film mundur ke belakang. Model yang dihasilkan mungkin tidak akan membuat prediksi yang baik.

Teknik yang lebih baik adalah membuat fitur Boolean terpisah yang menunjukkan apakah nilai watch_time_in_seconds disediakan atau tidak. Contoh:

Direkomendasikan

watch_time_in_seconds: 4.82
is_watch_time_in_seconds_defined=True

watch_time_in_seconds: 0
is_watch_time_in_seconds_defined=False

Ini adalah cara menangani set data kontinu dengan nilai yang hilang. Sekarang pertimbangkan fitur numerik diskret, seperti product_category, yang nilainya harus termasuk dalam kumpulan nilai yang terbatas. Dalam hal ini, jika nilai tidak ada, tunjukkan nilai yang tidak ada menggunakan nilai baru dalam set berhingga. Dengan fitur diskret, model akan mempelajari bobot yang berbeda untuk setiap nilai, termasuk bobot asli untuk fitur yang tidak ada.

Misalnya, kita dapat membayangkan kemungkinan nilai yang sesuai dalam set:

{0: 'electronics', 1: 'books', 2: 'clothing', 3: 'missing_category'}.