Bilişim dünyasına kaliteli, özgün ve Türkçe içerikler kazandırmayı hedefleyen bir platform..

friends friends friends

Veri Dönüştürme

Makine öğrenme algoritmaları doğrudan kategorik veriler üzerinde çalışmamaktadır bu yüzden verilerimizin sayısal verilere dönüştürülmesi gerekmektedir. Makine öğrenmesi algoritmalarında kullanılan veri setlerindeki kategorik sınıflara sahip özniteliklerin, sayısal veri tipi ile ifade edilmesi için label encoding ve one-hot encoding işlemleri gerçekleştirilebilir.

Karar ağaçları ve Rastgele orman gibi bazı algoritmalarda, disk alanından tasarruf etmek amacıyla label encoding ile sayısal forma dönüşüm yapılabilmektedir.

Kategorik değişkenler birçok Makine Öğrenimi modeli için bir sorundur. Ancak onları anlayabilmeleri için kodlayabilirsiniz.

Label Encoding

Bu teknikte, her bir veriye alfabetik sıralamaya göre benzersiz bir tam sayı atanır.

Label Encoding
Veri Kümesi: araclar.xlsx (indirmek için tıklayınız)

Python ile Label Encoding

import pandas as pd
import os
from sklearn.preprocessing import LabelEncoder

le=LabelEncoder()
 
os.chdir('C:/Users/MAHMUT/Desktop/calismadizini')
dataset =  pd.read_excel("araclar.xlsx")

color = dataset.iloc[:,[1]].values

color_LE=le.fit_transform(color)

print(color_LE)

One-Hot Encoding

Bu teknikte var olan veriye 1, diğerlerine 0 değeri atanır.

One-Hot Encoding
Veri Kümesi: araclar.xlsx (indirmek için tıklayınız)

Python ile One-Hot Encoding

import pandas as pd
import os
from sklearn.preprocessing import OneHotEncoder
ohe = OneHotEncoder()
 
os.chdir('C:/Users/MAHMUT/Desktop/calismadizini')
dataset =  pd.read_excel("araclar.xlsx")
color = dataset.iloc[:,[1]].values
color_OHE =ohe.fit_transform(color).toarray()
print(color_OHE)

Label Encoding ve One Hot Encoding ne zaman kullanılmalı?

Kategorik özellik sıralı ise(Örn: İlkokul, Lise, Üniversite gibi) Label Encoding uygularız.

Kategorik özellik sıralı değilse (Örn: Ülkeler gibi) One-Hot Encoding uygularız.

Çoklu Label Encoding ve One Hot Encoding

Yukarıda sadece 1 tane kolon için Label Encoding veya One-Hot Encoding işlemi yaptık ancak verimizde genelde birden çok kategorik değişkenimiz olacak, tek seferde hepsine Label-Encoding ve One-Hot Encoding işlemi uygulamak için aşağıdaki kodu kullanabilirsiniz:

Label Encoding
Veri Kümesi: excel-veri.xlsx (indirmek için tıklayınız)

'VAR-YOK', 'ALFABE', 'EVET-HAYIR' kolonlarına Label-Encoding, 'SEVİYE', 'ARALIK' kolonlarına ise One-Hot Encoding uygulayacağız.

import pandas as pd
import os
from sklearn.preprocessing import OneHotEncoder
from sklearn.preprocessing import LabelEncoder

os.chdir('C:/Users/MAHMUT/Desktop/calismadizini')
df =  pd.read_excel("excel-veri.xlsx")

#########1-LABEL ENCODING##################
# label encoding yapılacak kolonlar
columns_to_label_encode = ['VAR-YOK', 'ALFABE', 'EVET-HAYIR']

# LabelEncoder sınıfını tanımlayın
le = LabelEncoder()

# belirtilen kolonlara label encoding işlemi uygulayın
df[columns_to_label_encode] = df[columns_to_label_encode].apply(lambda x: le.fit_transform(x))

#########2-ONE HOT ENCODING##################
# one hot encoding yapılacak kolonlar
columns_to_one_hot_encode = ['SEVİYE', 'ARALIK']

# get_dummies() fonksiyonu ile One-Hot Encoding uygulayın
df_encoded = pd.get_dummies(df, columns=columns_to_one_hot_encode)

print(df_encoded)


#DataFrame'i bir excel dosyasına yazdırabiliriz.
df_encoded.to_excel(r'C:/Users/MAHMUT/Desktop/calismadizini/df-excel.xlsx', index=False)

Yaygın Kodlama Teknikleri

En yaygın kodlama tekniklerinden bazıları şunlardır:

  • Etiket Kodlama
  • Bir Sıcak Kodlama
  • Sıralı Kodlama
  • Frekans Kodlaması
  • Hedef Kodlama

Kaynaklar

  1. https://twitter.com/daansan_ml/status/1702230737494364323?t=ciMUXEzDruCDH5nBf-J5Mw&s=08
Veri Dönüştürme label encoding one-hot encoding one hot encoder encoder veri bilimi veri madenciliği multi column label encoding multi column one hot encoding multi label encoding multi one hot encoding multi encoding
0 Beğeni
Veri Makine Öğrenmesi
Önceki Yazı

Eksik Veri(Missing Value) Tamamlama

12 Nis. 2020 tarihinde yayınlandı.
Sonraki Yazı

Veri Birleştirme(DataFrame ve Concat) ☁️

12 Nis. 2020 tarihinde yayınlandı.
arrow