Python'da tek sıcak kodlama nasıl gerçekleştirilir


One-hot kodlama, kategorik değişkenleri makine öğrenimi algoritmaları tarafından kolaylıkla kullanılabilecek bir formata dönüştürmek için kullanılır.

One-hot kodlamanın temel fikri, orijinal kategorik değerleri temsil etmek için 0 ve 1 değerlerini alan yeni değişkenler oluşturmaktır.

Örneğin, aşağıdaki görüntü, takım adlarını içeren kategorik bir değişkeni yalnızca 0 ve 1 değerleri içeren yeni değişkenlere dönüştürmek için nasıl sıcak kodlama yapacağımızı gösterir:

Aşağıdaki adım adım örnek, Python’da bu tam veri kümesi için tek geçişli kodlamanın nasıl gerçekleştirileceğini gösterir.

1. Adım: Verileri oluşturun

İlk önce aşağıdaki pandalar DataFrame’i oluşturalım:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'],
                   ' points ': [25, 12, 15, 14, 19, 23, 25, 29]})

#view DataFrame
print (df)

  team points
0 to 25
1 to 12
2 B 15
3 B 14
4 B 19
5 B 23
6 C 25
7 C 29

2. Adım: Tek seferde kodlama gerçekleştirin

Daha sonra, OneHotEncoder() işlevini sklearn kütüphanesinden içe aktaralım ve bunu pandalar DataFrame’deki ‘team’ değişkeninde sıcak kodlama gerçekleştirmek için kullanalım:

 from sklearn. preprocessing import OneHotEncoder

#creating instance of one-hot-encoder
encoder = OneHotEncoder(handle_unknown=' ignore ')

#perform one-hot encoding on 'team' column 
encoder_df = pd. DataFrame ( encoder.fit_transform (df[[' team ']]). toarray ())

#merge one-hot encoded columns back with original DataFrame
final_df = df. join (encoder_df)

#view final df
print (final_df)

  team points 0 1 2
0 to 25 1.0 0.0 0.0
1 to 12 1.0 0.0 0.0
2 B 15 0.0 1.0 0.0
3 B 14 0.0 1.0 0.0
4 B 19 0.0 1.0 0.0
5 B 23 0.0 1.0 0.0
6 C 25 0.0 0.0 1.0
7 C 29 0.0 0.0 1.0

Orijinal “ekip” sütunu üç benzersiz değer içerdiğinden DataFrame’e üç yeni sütun eklendiğini unutmayın.

Not : OneHotEncoder() işlevine ilişkin tüm belgeleri burada bulabilirsiniz.

3. Adım: Orijinal kategorik değişkeni kaldırın

Son olarak, artık ihtiyacımız olmadığı için orijinal ‘team’ değişkenini DataFrame’den kaldırabiliriz:

 #drop 'team' column
final_df. drop (' team ', axis= 1 , inplace= True )

#view final df
print (final_df)

   points 0 1 2
0 25 1.0 0.0 0.0
1 12 1.0 0.0 0.0
2 15 0.0 1.0 0.0
3 14 0.0 1.0 0.0
4 19 0.0 1.0 0.0
5 23 0.0 1.0 0.0
6 25 0.0 0.0 1.0
7 29 0.0 0.0 1.0

İlgili: Pandalarda Sütunlar Nasıl Silinir (4 Yöntem)

Okunmayı kolaylaştırmak için son DataFrame’in sütunlarını da yeniden adlandırabiliriz:

 #rename columns
final_df. columns = ['points', 'teamA', 'teamB', 'teamC']

#view final df
print (final_df)

   points teamA teamB teamC
0 25 1.0 0.0 0.0
1 12 1.0 0.0 0.0
2 15 0.0 1.0 0.0
3 14 0.0 1.0 0.0
4 19 0.0 1.0 0.0
5 23 0.0 1.0 0.0
6 25 0.0 0.0 1.0
7 29 0.0 0.0 1.0

One-hot kodlama tamamlandı ve artık bu pandanın DataFrame’ini istediğimiz herhangi bir makine öğrenme algoritmasına ekleyebiliriz.

Ek kaynaklar

Python’da kırpılmış ortalama nasıl hesaplanır
Python’da doğrusal regresyon nasıl gerçekleştirilir
Python’da Lojistik Regresyon Nasıl Gerçekleştirilir

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir