Pengkodean label atau pengkodean one-hot: apa bedanya?
Seringkali dalam pembelajaran mesin kita ingin mengonversi variabel kategori ke dalam beberapa jenis format numerik yang dapat dengan mudah digunakan oleh algoritme.
Ada dua cara umum untuk mengubah variabel kategori menjadi variabel numerik:
1. Pengkodean label: Tetapkan setiap nilai kategorikal nilai integer berdasarkan urutan abjad.
2. One Hot Encoding: Membuat variabel baru yang mengambil nilai 0 dan 1 untuk mewakili nilai kategorikal asli.
Misalnya, kita memiliki kumpulan data berikut dengan dua variabel dan kita ingin mengonversi variabel Tim dari variabel kategori ke variabel numerik:
Contoh berikut menunjukkan cara menggunakan pengkodean tag dan pengkodean one-hot untuk melakukan hal ini.
Contoh: Menggunakan Label Encoding
Dengan menggunakan pengkodean label , kami akan mengonversi setiap nilai unik di kolom Team menjadi nilai integer berdasarkan urutan abjad:
Dalam contoh ini kita dapat melihat:
- Setiap nilai “A” telah dikonversi menjadi 0 .
- Setiap nilai “B” telah dikonversi menjadi 1 .
- Setiap nilai “C” dikonversi menjadi 2 .
Kami telah berhasil mengubah kolom Tim dari variabel kategori menjadi variabel numerik.
Contoh: menggunakan enkode one-hot tunggal
Dengan menggunakan enkode one-hot , kami akan mengonversi kolom Team menjadi variabel baru yang hanya berisi nilai 0 dan 1:
Saat kami menggunakan pendekatan ini, kami membuat kolom baru untuk setiap nilai unik dalam variabel kategori asli.
Misalnya, variabel kategori Team memiliki tiga nilai unik , jadi kami membuat tiga kolom baru di kumpulan data yang semuanya berisi nilai 0 atau 1.
Berikut cara menafsirkan nilai di kolom baru:
- Nilai kolom Team_A yang baru adalah 1 jika nilai asli kolom Team adalah A. Jika tidak, maka nilainya adalah 0.
- Nilai kolom Team_B baru adalah 1 jika nilai asli kolom Team adalah B. Jika tidak, nilainya adalah 0.
- Nilai kolom Team_C yang baru adalah 1 jika nilai asli kolom Tim adalah C. Jika tidak, nilainya adalah 0.
Kami telah berhasil mengonversi kolom Tim dari satu variabel kategori menjadi tiga variabel numerik – terkadang disebut variabel “dummy”.
Catatan : Saat menggunakan variabel “dummy” ini dalam model regresi atau algoritme pembelajaran mesin lainnya, berhati-hatilah untuk menghindari jebakan variabel dummy .
Kapan menggunakan pengkodean tag versus pengkodean one-hot
Dalam sebagian besar skenario, pengkodean one-hot adalah cara yang lebih disukai untuk mengonversi variabel kategori ke variabel numerik karena pengkodean label membuatnya tampak bahwa ada peringkat di antara nilai-nilai tersebut.
Misalnya, pertimbangkan kasus di mana kita menggunakan pengkodean label untuk mengonversi tim menjadi variabel numerik:
Data yang dikodekan oleh label membuatnya tampak bahwa Tim C lebih besar atau lebih tinggi daripada Tim B dan A karena memiliki nilai numerik yang lebih tinggi.
Hal ini tidak menjadi masalah jika variabel kategori asli sebenarnya merupakan variabel ordinal dengan urutan atau peringkat alami, namun dalam banyak skenario hal ini tidak terjadi.
Namun, salah satu kelemahan dari one-hot coding adalah mengharuskan Anda membuat variabel baru sebanyak nilai unik dalam variabel kategori asli.
Artinya, jika variabel kategori Anda memiliki 100 nilai unik, Anda perlu membuat 100 variabel baru saat menggunakan enkode one-hot.
Bergantung pada ukuran kumpulan data dan jenis variabel yang Anda gunakan, Anda mungkin lebih memilih pengkodean one-hot atau pengkodean label.
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan pengkodean label dalam praktiknya:
Tutorial berikut menjelaskan cara melakukan pengkodean one-hot dalam praktiknya: