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

Tambahkan komentar

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