Kategorik Verilerin Sayısallaştırılması (Label Encoder ve One Hot Encoder)

Gökhan Gerdan
2 min readAug 20, 2019
Image source: https://www.dacast.com/wp-content/uploads/2017/12/encoding-software-1.jpg

Makine öğrenimi algoritmaları doğrudan kategorik veriler ile çalışmadığından kategorik verilerin sayısallaştırılması gerekmektedir. Kategorik verilerin sayısallaştırılmasında yaygın olarak kullanılan iki yöntem vardır. Bunlar:

  • Label Encoder (Knime’daki karşılığı Category to Number)
  • One Hot Encoder (Knime’daki karşılığı One to Many)

Label Encoder

Elimizdeki kategoriler küçük orta büyük gibi büyüklük belirtiyorsa ve 1, 2, 3 şeklinde sayısallaştırdığında anlamsal olarak değer kazanıyorsa Label Encoder ile sayısallaştırabiliriz. Anlamsal olarak değer kaybetme durumuna örnek verecek olursak mavi, yeşil, kırmızı olan kategorileri 1, 2, 3 olarak sayısallaştırırsak 2 < 3 durumunun yeşil < kırmızı anlamına gelmemesidir. Bu durumda Label Encoder kullanamayız. Tabi renklerin dalgaboyları sonuca etki ediyorsa bu durumda da label encoder kullanabiliriz. Çünkü elektromanyetik spektrumda mavi < yeşil < kırmızı dalgaboyu olarak düşündüğümüzde mantıklıdır.

Image source: https://rasyonalist.org/wp-content/uploads/2017/11/spektrum_insangozu.png

Label Encoder’ı kullanabileceğimiz bir durum daha vardır bu da bir sütundaki kategori sayısı 2 olduğu durumdur. Örneğin Female, Male olan kategorileri 0, 1 olarak sayısallaştırmak için Label Encoder kullanabiliriz.

One Hot Encoder

Bu durum tüm kategorik veriler için uygulanabilir. Kategorik olan sütunların Sparse Matrix şekline dönüştürülmesi yani 1, 0 olarak sayısallaştırılmasıdır.

Mesela Elimizde Mavi, Yeşil, Kırmızı şeklinde üç kategori olsun bu kategoriler de Renk sütununun altında olsun. Renk_Mavi, Renk_Yeşil, Renk_Kırmızı şeklinde üç sütun oluşturup bu sütunların altına her satır için orjinal sütunda hangi renk varsa ona 1 diğerlerine 0 değerini veririz.

Image source: https://www.machinelearningplus.com/wp-content/uploads/2018/03/one-hot-encoding.png

--

--