Cara melakukan pengkodean label di r (dengan contoh)
Seringkali dalam pembelajaran mesin kita ingin mengonversi variabel kategori ke dalam beberapa jenis format numerik yang dapat dengan mudah digunakan oleh algoritme.
Salah satu cara untuk melakukannya adalah dengan menggunakan pengkodean label , yang menetapkan setiap nilai kategorikal nilai bilangan bulat berdasarkan urutan abjad.
Misalnya, tangkapan layar berikut menunjukkan cara mengonversi setiap nilai unik dari variabel kategori yang disebut Tim menjadi nilai bilangan bulat berdasarkan urutan abjad:
Ada dua cara umum untuk melakukan pengkodean label di R:
Metode 1: Gunakan Basis R
df$my_var <- as. numeric (factor(df$my_var))
Metode 2: Gunakan paket CatEncoders
library (CatEncoders) #define original categorical labels labs = LabelEncoder. fit (df$my_var) #convert labels to numeric values df$team = transform(labs, df$my_var)
Contoh berikut menunjukkan cara menggunakan masing-masing metode dalam praktik.
Contoh 1: Pengkodean label menggunakan Basis R
Kode berikut menunjukkan cara menggunakan fungsi faktor dasar R() untuk mengubah variabel kategori yang disebut tim menjadi variabel numerik:
#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 #perform label encoding on team variable df$team <- as. numeric (factor(df$team)) #view updated data frame df team points 1 1 25 2 1 12 3 2 15 4 2 14 5 2 19 6 2 23 7 3 25 8 3 29
Perhatikan nilai baru pada kolom tim :
- “A” menjadi 1 .
- “B” menjadi 2 .
- “C” menjadi 3 .
Kami telah berhasil mengubah kolom tim dari variabel kategori menjadi variabel numerik.
Contoh 2: Mengkodekan label menggunakan paket CatEncoders
Kode berikut menunjukkan cara menggunakan fungsi dalam paket CatEncoders() untuk mengonversi variabel kategori yang disebut team menjadi variabel numerik:
library (CatEncoders) #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)) #define original categorical labels labs = LabelEncoder. fit (df$team) #convert labels to numeric values df$team = transform(labs, df$team) #view updated data frame df team points 1 1 25 2 1 12 3 2 15 4 2 14 5 2 19 6 2 23 7 3 25 8 3 29
Sekali lagi, kami membuat nilai baru berikut di kolom tim :
- “A” menjadi 1 .
- “B” menjadi 2 .
- “C” menjadi 3 .
Ini cocok dengan hasil contoh sebelumnya.
Perhatikan bahwa dengan menggunakan metode ini Anda juga dapat menggunakan inverse.transform() untuk mendapatkan nilai asli kolom tim :
#display original team labels reverse. transform (labs, df$team) [1] “A” “A” “B” “B” “B” “B” “C” “C”
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di R:
Cara membuat variabel kategori dari lanjutkan di R
Cara membuat variabel kategori di R
Bagaimana cara mengubah variabel kategori menjadi numerik di R