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?