Etiket kodlaması veya tek-hot kodlaması: fark nedir?
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.
Kategorik değişkenleri sayısal değişkenlere dönüştürmenin iki yaygın yolu vardır:
1. Etiket kodlaması: Her kategorik değere alfabetik sıraya göre bir tamsayı değeri atayın.
2. Tek Sıcak Kodlama: Orijinal kategorik değerleri temsil etmek için 0 ve 1 değerlerini alan yeni değişkenler oluşturun.
Örneğin, iki değişkenli aşağıdaki veri kümesine sahip olduğumuzu ve Takım değişkenini kategorik bir değişkenden sayısal bir değişkene dönüştürmek istediğimizi varsayalım:
Aşağıdaki örnekler, bunu yapmak için hem etiket kodlamanın hem de tek geçişli kodlamanın nasıl kullanılacağını gösterir.
Örnek: Etiket Kodlamayı Kullanma
label encoding kullanarak, Ekip sütunundaki her benzersiz değeri alfabetik sıraya göre bir tamsayı değerine dönüştürürüz:
Bu örnekte ş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ü.
Ekip sütununu kategorik bir değişkenden sayısal bir değişkene başarıyla dönüştürdük.
Örnek: tek bir sıcak kodlamanın kullanılması
One-hot encoding kullanarak Ekip sütununu yalnızca 0 ve 1 değerleri içeren yeni değişkenlere dönüştürürüz :
Bu yaklaşımı kullandığımızda orijinal kategorik değişkendeki her benzersiz değer için yeni bir sütun oluşturuyoruz.
Örneğin, Team kategorik değişkeninin üç benzersiz değeri vardı, bu nedenle veri kümesinde tümü 0 veya 1 değerlerini içeren üç yeni sütun oluşturduk.
Yeni sütunlardaki değerleri şu şekilde yorumlayabilirsiniz:
- Ekip sütununun orijinal değeri A ise yeni Team_A sütununun değeri 1’dir. Aksi takdirde değer 0’dır.
- Takım sütununun orijinal değeri B ise yeni Team_B sütununun değeri 1’dir. Aksi takdirde değer 0’dır.
- Takım sütununun orijinal değeri C ise yeni Team_C sütununun değeri 1’dir. Aksi takdirde değer 0’dır.
Ekip sütununu bir kategorik değişkenden, bazen “kukla” değişkenler olarak da adlandırılan üç sayısal değişkene başarıyla dönüştürdük.
Not : Bu “kukla” değişkenleri bir regresyon modelinde veya başka bir makine öğrenimi algoritmasında kullanırken, kukla değişken tuzağından kaçınmaya dikkat edin.
Tek-hot kodlama yerine etiket kodlaması ne zaman kullanılmalı?
Çoğu senaryoda, kategorik bir değişkeni sayısal bir değişkene dönüştürmenin tercih edilen yolu tek sıcak kodlamadır çünkü etiket kodlaması, değerler arasında bir sıralama varmış gibi görünmesini sağlar.
Örneğin, takımı sayısal bir değişkene dönüştürmek için etiket kodlamasını kullandığımız durumu düşünün:
Etiketin kodladığı veriler, sayısal değeri daha yüksek olduğundan C Takımının B ve A Takımlarından bir şekilde daha büyük veya daha uzun olduğu izlenimini veriyor.
Orijinal kategorik değişken aslında doğal bir sıralamaya veya sıralamaya sahip sıralı bir değişkense bu bir sorun değildir, ancak birçok senaryoda durum böyle değildir.
Ancak one-hot kodlamanın dezavantajlarından biri, orijinal kategorik değişkendeki benzersiz değerler kadar yeni değişken oluşturmanızı gerektirmesidir.
Bu, kategorik değişkeninizin 100 benzersiz değeri varsa, tek sıcak kodlamayı kullanırken 100 yeni değişken oluşturmanız gerekeceği anlamına gelir.
Veri kümenizin boyutuna ve üzerinde çalıştığınız değişkenlerin türüne bağlı olarak tek-etkin kodlamayı veya etiket kodlamayı tercih edebilirsiniz.
Ek kaynaklar
Aşağıdaki eğitimlerde etiket kodlamanın pratikte nasıl gerçekleştirileceği açıklanmaktadır:
Aşağıdaki eğitimlerde tek-hot kodlamanın pratikte nasıl gerçekleştirileceği açıklanmaktadır: