R'de etiket kodlama nasıl yapılır (örneklerle)


Makine öğreniminde genellikle kategorik değişkenleri algoritmalar tarafından kolaylıkla kullanılabilecek bir tür sayısal formata dönüştürmek isteriz.

Bunu yapmanın bir yolu, her kategorik değere alfabetik sıraya göre bir tamsayı değeri atayan etiket kodlamasını kullanmaktır .

Örneğin, aşağıdaki ekran görüntüsü Team adı verilen kategorik bir değişkenin her benzersiz değerinin, alfabetik sıraya göre bir tamsayı değerine nasıl dönüştürüleceğini gösterir:

R’de etiket kodlamayı gerçekleştirmenin iki yaygın yolu vardır:

Yöntem 1: Temel R’yi Kullan

 df$my_var <- as. numeric (factor(df$my_var))

Yöntem 2: CatEncoders paketini kullanma

 library (CatEncoders)

#define original categorical labels
labs = LabelEncoder. fit (df$my_var)

#convert labels to numeric values
df$team = transform(labs, df$my_var)

Aşağıdaki örnekler her yöntemin pratikte nasıl kullanılacağını göstermektedir.

Örnek 1: Base R kullanarak etiketleri kodlama

Aşağıdaki kod, takım adı verilen kategorik bir değişkeni sayısal bir değişkene dönüştürmek için R base Factor() işlevinin nasıl kullanılacağını gösterir:

 #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

Ekip sütunundaki yeni değerleri not edin:

  • “A” 1 oldu.
  • “B” 2 oldu.
  • “C” 3 oldu.

Ekip sütununu kategorik bir değişkenden sayısal bir değişkene başarıyla dönüştürdük.

Örnek 2: CatEncoders paketini kullanarak etiketleri kodlama

Aşağıdaki kod, Team adı verilen kategorik bir değişkeni sayısal bir değişkene dönüştürmek için CatEncoders() paketindeki işlevlerin nasıl kullanılacağını gösterir:

 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

Yine ekip sütununda aşağıdaki yeni değerleri oluşturduk:

  • “A” 1 oldu.
  • “B” 2 oldu.
  • “C” 3 oldu.

Bu, önceki örneğin sonuçlarıyla eşleşir.

Bu yöntemi kullanarak takım sütununun orijinal değerlerini elde etmek için inverse.transform() yöntemini de kullanabileceğinizi unutmayın:

 #display original team labels
reverse. transform (labs, df$team)

[1] “A” “A” “B” “B” “B” “B” “C” “C”

Ek kaynaklar

Aşağıdaki eğitimlerde R’de diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:

R’de devam etmekten kategorik bir değişken nasıl oluşturulur?
R’de kategorik değişkenler nasıl oluşturulur?
R’de kategorik değişkenler sayısala nasıl dönüştürülür?

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir