Resim: https://innovation.alteryx.com/encode-smarter/

Data Transformation: One-Hot & Label Encoding

Merve Tatlıdil

--

Merhaba, bu yazıda data preprocessing’in en önemli aşamalarından biri olan encoding yöntemlerini inceleyeceğiz.

Veri ön işleme aşaması veri bilimi projelerinin en önemli aşamalarından biridir. Veri ön işleme tamamlandıktan sonra sırada model kurma vardır. Modeli doğru seçmek, uygun parametreleri kullanmak, sonuçları en iyi değerlendirecek yönteme karar vermek bunlar da proje için önemlidir tabiki. Bir pasta yaptığınızı düşünün. Pastanın şekli, süslemeleri pastayı önemli kılar ama hamuru güzel değilse yani malzemeler güzel değilse pastayı yemek sizi mutlu etmez Bu yüzden ön işleme tarafında ne kadar iyi bir veriyle gelirsek o kadar başarılı olabiliriz Bu aşamada elimizdeki veriye göre yaptığımız pekçok aşama var. Veri setini tanıma, eksik değer kontrolü, aykırı verileri değerlendirme gibi…

Verileri, numerik ve kategorik veriler olarak ikiye ayırabiliriz. Veri setleri sektöre göre farklı değişkenler içerirler. Kategorik veriler bazı makine öğrenmesi modelleri için uygun olmaz. Örneğin derin öğrenmenin temeli olan sinir ağları, girdi değerlerinin sayısal olmasını bekler.Bu nedenle veri ön işleme adımında kategorik verileri numerik hâle dönüştürürüz.

Yani neden dönüşüm işlemini yapıyoruz? sorusu için iki sebep söyleyebiliriz :

  • Kullandığımız fonksiyon ya da algoritmaya beklenen formatta veri göndermemiz gerekir.
  • Ortaya çıkabilecek ölçüm problemlerini gidermek ya da daha kaliteli veri ortaya çıkarmak için.

Farklı kategorik veriler için farklı yöntemler kullanırız. Gelin bu farklı koşulları değerlendirelim.

1-Label Encoding

Label Encoding’de, her bir veri için alfabetik sıralamaya göre benzersiz bir tam sayı atanır. Örneğin cinsiyet değişkeninde eşsiz iki değer vardır : Female ve Male. F alfabetik olarak daha önde olduğu için Female 0, Male 1 değerini alır.

Eğitim değişkenine ait veriler Ordinal Kategoriktir. Yani aralarında hiyerarşik bir sıra vardır. PhD > Master > Graduate > High School > Secondary School > Pre-School diyebiliriz.

Yaptığımız çalışmaya göre değişkenlik göstermekle beraber bu eğitim durumları arasında fark olduğunu belirtmek isteyebiliriz. Bu durumda 0'dan 5'e sayılarla temsil etmek mantıklı olabilir. Unvan,eğitim durumu, rütbe ordinal kategorik değişkenlere örnek olabilir.

Kısacası aşağıdaki durumlarda Label Encoding uygularız:

  • Kategorik özellik sıralıdır
  • Tek etkin kodlama yüksek bellek tüketimine yol açabileceğinden kategori sayısı oldukça fazladır.

2-One - Hot Encoding

Üstteki eğitim örneğinde kategorik veriler ordinaldi, yani sıralıydı. Takım değişkeni ise Nominal Kategoriktir. Nominal değişkenlerin eşsiz değerleri arasında hiyerarşi bulunmaz. Takım değişkeninde GS ne ise FB’ de aynıdır, RM’de. Sadece farklı grupları temsil etmektedirler.

One-Hot Encoding, kategorik değişkenlerin ikili vektörler olarak temsil edilmesini sağlar.Bu kategorik değerler ilk olarak tamsayı değerlere eşlenir. Her bir tamsayı değeri daha sonra tamamı 0 olan bir ikili vektör olarak temsil edilir (1 olarak işaretlenen tamsayının dizini hariç).

Dummy Variable Trap (Kukla Değişken Tuzağı): Kukla değişken tuzağı bir m kategorili değişkenin m tane 0–1 değeri alan açıklayıcı kukla değişken ile ifade edilmesi dolayısıyla ortaya çıkar. Bu tuzağa düşmemek için m-1 sayıda 0–1 değeri alan açıklayıcı kukla değişken kullanmak yeterli ve gereklidir.Her değişkende bulunan eşşiz değerlerden her satır için bir tanesi geçerlidir. Örneğin veri setinin 3. satırındaki kişinin takımı GS, FB,BJK,TS,BC,RM’den biridir. Bu yüzden bu yeni oluşan değişkenlerden bir tanesini eksilttiğimizde dışarda kalan ona denk gelmiş olacaktır.

  • Eğer bir veri setinde değişkenlere m-1 sayıda olacak şekilde one- hot encoder yöntemi uyguluyorsak iki değişkene sahip (yani label encoding uygulamak istediğimiz) değişkenlere de bu yöntemi uygulayabiliriz. Mesela Cinsiyet değişkeni için ; bir kişi ya erkek ya da kadındır. Bu nedenle, bu iki değişkenden yalnızca birini kullanmamız yeterli olur.

Kısacası aşağıdaki durumlarda One-Hot Encoding uygularız:

  • Kategorik özellik sıralı değildir
  • Kategorik özelliklerin sayısı daha azdır, bu nedenle One-Hot Encoding etkili bir şekilde uygulanabilir.

Kaynak :

--

--

No responses yet