Etiket kodlama
- Makine Öğrenmesi kursu
- Başlangıç
- Ders 22/112
- 5 dk
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
from sklearn.preprocessing import LabelEncoder
renk = ["yeşil", "mavi", "yeşil", "sarı", "mavi"]
# buraya yazÖrnek çözüm
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 < 1 < 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.
adlar = le.____([0, 2])
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 |