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