CodeBlanks Logo Icon CodeBlanks

Etiket kodlama

Kategorik veriler LabelEncoder ile sayısal değerlere dönüştürülür.

LabelEncoder

Modeller sayılarla çalışır; metin etiketler tam sayıya kodlanmalıdır. LabelEncoder her farklı değere alfabetik sırayla 0, 1, 2... verir:

from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
y = le.fit_transform(["kedi", "köpek", "kedi", "kuş"])
print(y)                 # [0 1 0 2]
print(le.classes_)       # ['kedi' 'köpek' 'kuş']
print(le.inverse_transform([2]))  # ['kuş']

LabelEncoder etiket (y) içindir.

One-hot kodlama

Sırasız kategorik özellikler her değer için ayrı bir 0/1 sütununa açılır:

from sklearn.preprocessing import OneHotEncoder
enc = OneHotEncoder()
X = enc.fit_transform([["kırmızı"], ["mavi"], ["kırmızı"]]).toarray()
print(X)   # [[1. 0.] [0. 1.] [1. 0.]]
print(enc.categories_)

pandas'ta aynı işi pd.get_dummies(df, columns=["renk"]) yapar. Sıralı kategoriler (küçük < orta < büyük) için OrdinalEncoder uygundur.

Uygulama Etiketleri kodla

LabelEncoder ile renk listesini kodla ve sonucu yazdır. Ardından classes_ uzunluğunu yazdır.

Başlangıç kodu

model.py
from sklearn.preprocessing import LabelEncoder

renk = ["yeşil", "mavi", "yeşil", "sarı", "mavi"]

# buraya yaz

Örnek çözüm

model.py
from sklearn.preprocessing import LabelEncoder

renk = ["yeşil", "mavi", "yeşil", "sarı", "mavi"]

le = LabelEncoder()
print(le.fit_transform(renk))
print(len(le.classes_))

Beklenen çıktı

[2 0 2 1 0]
3

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Özellik sütununa (X) LabelEncoder uygulamak neden sorunlu olabilir?

  • Sorun değildir
  • Sayılar sahte bir sıra (0 &lt; 1 &lt; 2) ima eder Doğru cevap
  • Çok yavaştır
  • Metin kabul etmez

Açıklama: Doğrusal modeller "kuş" (2) değerini "kedi" (0) değerinden büyük sanır; sırasız kategoriler için one-hot kullanılır.

2 Kodlanmış sayıları metne geri çevir.

Soru
adlar = le.____([0, 2])
Cevap
adlar = le.inverse_transform([0, 2])

Açıklama: inverse_transform modelin tahminlerini okunur etiketlere çevirir.

3 Kodlayıcıları eşleştir.

Kavram Anlamı
LabelEncoder Etiketleri tam sayıya
OneHotEncoder Her değere 0/1 sütunu
OrdinalEncoder Sıralı kategoriler
get_dummies pandas ile one-hot

Başlangıç bölümündeki tüm dersler