Bagaimana melakukan one-hot encoding di r


Enkode one-hot digunakan untuk mengonversi variabel kategori ke dalam format yang dapat digunakan oleh algoritme pembelajaran mesin .

Ide dasar dari one-hot coding adalah membuat variabel baru yang mengambil nilai 0 dan 1 untuk mewakili nilai kategorikal aslinya.

Misalnya, gambar berikut menunjukkan bagaimana kita melakukan enkode one-hot untuk mengonversi variabel kategorikal yang berisi nama tim menjadi variabel baru yang hanya berisi nilai 0 dan 1:

Contoh langkah demi langkah berikut menunjukkan cara melakukan pengkodean satu kali untuk kumpulan data persis ini di R.

Langkah 1: Buat datanya

Pertama, mari buat bingkai data berikut di R:

 #create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'),
                 points=c(25, 12, 15, 14, 19, 23, 25, 29))

#view data frame
df

  team points
1 to 25
2 to 12
3 B 15
4 B 14
5 B 19
6 B 23
7 C 25
8 C 29

Langkah 2: Lakukan pengkodean one-hot

Selanjutnya, mari kita gunakan fungsi dummyVars() dari paket caret untuk mengkodekan variabel ‘tim’ dalam bingkai data:

 library ( caret)

#define one-hot encoding function
dummy <- dummyVars(" ~ . ", data=df)

#perform one-hot encoding on data frame
final_df <- data. frame (predict(dummy, newdata=df))

#view final data frame
final_df

  teamA teamB teamC points
1 1 0 0 25
2 1 0 0 12
3 0 1 0 15
4 0 1 0 14
5 0 1 0 19
6 0 1 0 23
7 0 0 1 25
8 0 0 1 29

Perhatikan bahwa tiga kolom baru telah ditambahkan ke bingkai data karena kolom “tim” asli berisi tiga nilai unik.

Perhatikan juga bahwa kolom “tim” asli telah dihapus dari bingkai data karena tidak diperlukan lagi.

Enkode one-hot telah selesai dan sekarang kami dapat memasukkan kumpulan data ini ke dalam algoritma pembelajaran mesin pilihan kami.

Catatan : Anda dapat menemukan dokumentasi online lengkap untuk fungsi dummyVars() di sini .

Sumber daya tambahan

Tutorial berikut memberikan informasi tambahan tentang penggunaan variabel kategori:

Cara membuat variabel kategori di R
Cara memplot data kategorikal di R
Variabel kategoris atau kuantitatif: apa bedanya?

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *