Python'da etiket kodlama nasıl yapılır (örnekle)


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:

Python’da etiket kodlamayı gerçekleştirmek için aşağıdaki sözdizimini kullanabilirsiniz:

 from sklearn. preprocessing import LabelEncoder

#create instance of label encoder
lab = LabelEncoder()

#perform label encoding on 'team' column
df[' my_column '] = lab. fit_transform (df[' my_column '])

Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.

Örnek: Python’da etiketleri kodlamak

Aşağıdaki pandalara sahip olduğumuzu varsayalım DataFrame:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'],
                   ' points ': [25, 12, 15, 14, 19, 23, 25, 29]})

#view DataFrame
print (df)

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

Takım sütunundaki her kategorik değeri bir tam sayı değerine dönüştürmek amacıyla etiket kodlaması gerçekleştirmek için aşağıdaki kodu kullanabiliriz:

 from sklearn. preprocessing import LabelEncoder

#create instance of label encoder
lab = LabelEncoder()

#perform label encoding on 'team' column
df[' team '] = lab. fit_transform (df[' team '])

#view updated DataFrame
print (df)

   team points
0 0 25
1 0 12
2 1 15
3 1 14
4 1 19
5 1 23
6 2 25
7 2 29

Sonuçtan şunları görebiliriz:

  • Her “A” değeri 0’a dönüştürülmüştür.
  • Her “B” değeri 1’e dönüştürülmüştür.
  • Her “C” değeri 2’ye dönüştürüldü.

Takım sütununun orijinal değerlerini elde etmek için inverse_transform() işlevini de kullanabileceğinizi unutmayın:

 #display original team labels
lab. inverse_transform (df[' team '])

array(['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'], dtype=object)

Ek kaynaklar

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

Pandas’ta kategorik bir değişken sayısala nasıl dönüştürülür?
Pandalar’da boole değerleri tam sayı değerlerine nasıl dönüştürülür?
Pandalarda dizeleri sayı olarak kodlamak için faktörize() nasıl kullanılır?

Yorum ekle

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