Mengenal Encoding di Machine Learning/Data Science


 Dalam ilmu data dan pembelajaran mesin, "Encoding" adalah teknik untuk mengubah data Kategorik menjadi format Numerik sehingga data dengan nilai kategorik yang dikonversi dapat diberikan kepada model untuk membuat dan meningkatkan prediksi. Encoding yang lebih baik menghasilkan model yang lebih baik, dan sebagian besar algoritma hanya dapat menangani variabel kategorik jika telah diubah menjadi nilai numerik.

Image Credit: Danny B.


Metode Encoding data kategori mengubah variabel kategori menjadi satu set variabel biner, alias variabel dummy. Dalam one-hot encoding, variabel dengan kategori N diwakili oleh N variabel biner. Pengkodean dummy adalah peningkatan kecil dibandingkan one-hot-encoding.

Beberapa Teknik Encoding:

one-hot-encoding dengan beberapa kategori hanya mempertimbangkan yang memiliki pengulangan terbanyak, dan kami akan mempertimbangkan 10 kategori berulang teratas dan menerapkan one-hot-encoding hanya untuk kategori tersebut.

Link: https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.OneHotEncoder.html 

Frequency encoding (categorical features) menggunakan frekuensi kategori sebagai label. Dalam kasus di mana frekuensi terkait dengan variabel target, ini membantu model untuk memahami dan menetapkan bobot dalam proporsi langsung dan terbalik, tergantung pada sifat datanya.

Link: https://www.geeksforgeeks.org/feature-encoding-techniques-machine-learning/



Hash encoding seperti OneHot tetapi dengan dimensi lebih sedikit, dan beberapa informasi hilang karena beririsan. Nominal, ordinal. Implementasi hashing multivariat dengan dimensi/presisi yang dapat dikonfigurasi. Keuntungan dari encoder ini adalah tidak mempertahankan kamus kategori yang diamati (dictionary of observed categories). Akibatnya, pembuat encoding tidak bertambah besar dan menerima nilai baru selama penilaian data berdasarkan desain.

Link: https://contrib.scikit-learn.org/category_encoders/hashing.html


Encoding Helmert (terbalik) (untuk fitur kategorikal) membandingkan rata-rata dependen dengan rata-rata variabel dependen di semua level sebelumnya.

Link: https://contrib.scikit-learn.org/category_encoders/helmert.html


Backward Difference encoding (untuk fitur kategorik) membandingkan rata-rata variabel dependen dengan rata-rata variabel dependen untuk tingkat sebelumnya.

Link: 

Encoder Bayesian


Target encoding (untuk kategorikal, mendukung binomial dan kontinu) menghitung rata-rata variabel target untuk setiap kategori dan mengganti variabel kategori dengan nilai rata-rata. Dalam kasus variabel target kategorikal, probabilitas posterior dari target menggantikan setiap kategori. Kami melakukan pengkodean Target hanya untuk data pelatihan dan mengkodekan data pengujian menggunakan hasil yang diperoleh dari kumpulan data pelatihan.

 Link: https://contrib.scikit-learn.org/category_encoders/targetencoder.html


LeaveOneOut encoding  (untuk fitur kategorik) (diawasi) untuk tugas klasifikasi mengecualikan target baris saat ini saat menghitung target rata-rata untuk suatu level guna mengurangi efek outlier.


Image Credit: Danny B.


Tidak ada komentar:

Posting Komentar

Relevant & Respectful Comments Only.