Sementara AN6U5 telah memberikan jawaban yang sangat bagus, saya ingin menambahkan beberapa poin untuk referensi di masa mendatang. Saat mempertimbangkan One Hot Encoding (OHE) dan Label Encoding , kita harus mencoba dan memahami model apa yang Anda coba buat. Yaitu dua kategori model yang akan kami pertimbangkan adalah:
- Model Berbasis Pohon : Gradien Meningkatkan Pohon Keputusan dan Hutan Acak.
- Model Berbasis Non-Pohon: Berbasis Linear, kNN atau Neural Network.
Mari kita pertimbangkan kapan menerapkan OHE dan kapan menerapkan Label Encoding sambil membangun model berbasis pohon.
Kami menerapkan OHE ketika:
- Ketika nilai yang dekat satu sama lain dalam pengkodean label sesuai dengan nilai target yang tidak dekat (data non-linear).
- Ketika fitur kategorikal tidak ordinal (anjing, kucing, tikus).
Kami menerapkan penyandian Label ketika:
- Fitur kategorikal adalah ordinal (Jr. kg, Sr. kg, sekolah dasar, sekolah tinggi, dll).
- Ketika kita dapat menemukan pembuat enkode label yang memberikan label dekat ke kategori yang serupa : Hal ini menyebabkan lebih sedikit spill di tress sehingga mengurangi waktu eksekusi.
- Ketika jumlah fitur kategorikal dalam dataset sangat besar: Pengkodean satu-panas fitur kategorikal dengan sejumlah besar nilai dapat menyebabkan (1) konsumsi memori tinggi dan (2) kasus ketika fitur non-kategorikal jarang digunakan oleh model. Anda dapat menangani kasing pertama jika Anda menggunakan matriks jarang. Kasing ke-2 dapat terjadi jika Anda membangun pohon menggunakan hanya sebagian fitur. Misalnya, jika Anda memiliki 9 fitur numerik dan 1 kategori dengan 100 nilai unik dan Anda satu-hot-encoded fitur kategori itu, Anda akan mendapatkan 109 fitur. Jika pohon dibangun dengan hanya sebagian dari fitur, fitur awal 9 numerik jarang akan digunakan. Dalam hal ini, Anda dapat meningkatkan ukuran pengontrolan parameter dari subset ini. Dalam xgboost disebut colsample_bytree, dalam max_features Hutan Acak sklearn.
Jika Anda ingin melanjutkan dengan OHE, seperti yang disarankan @ AN6U5, Anda mungkin ingin menggabungkan PCA dengan OHE.
Mari kita pertimbangkan kapan menerapkan OHE dan Label Encoding sambil membangun model yang tidak berbasis pohon.
Untuk menerapkan pengkodean Label, ketergantungan antara fitur dan target harus linier agar Pengkodean Label dapat digunakan secara efektif.
Demikian pula, jika ketergantungannya non-linear, Anda mungkin ingin menggunakan OHE untuk hal yang sama.
Catatan: Beberapa penjelasan telah dirujuk dari Cara Memenangkan Kompetisi Sains Data dari Coursera.