Gambaran Keseluruhan Masalah
Dalam masalah klasifikasi pembelajaran mesin, sebahagian besar pembolehubah kategori menimbulkan cabaran, memerlukan teknik pengekodan khusus. Satu teknik sedemikian ialah satu pengekodan panas, yang biasa digunakan sebelum menghantar data kepada pengelas.
Pendekatan 1: Menggunakan pd.get_dummies Pandas
Satu pendekatan biasa ialah menggunakan pd. get_dummies daripada Panda. Ia menukar lajur kategori kepada berbilang lajur tiruan, setiap satu mewakili kategori yang berbeza.
Contoh:
import pandas as pd s = pd.Series(list('abca')) pd.get_dummies(s) Out[]: a b c 0 1.0 0.0 0.0 1 0.0 1.0 0.0 2 0.0 0.0 1.0 3 1.0 0.0 0.0
Sebagai alternatif, menetapkan awalan mencipta berbilang lajur untuk setiap tiruan:
df = pd.DataFrame({ 'A':['a','b','a'], 'B':['b','a','c'] }) df Out[]: A B 0 a b 1 b a 2 a c one_hot = pd.get_dummies(df['B'], prefix='B') df = df.drop('B',axis = 1) df = df.join(one_hot) df Out[]: A Ba Bb Bc 0 a 0 1 0 1 b 1 0 0 2 a 0 0 1
Pendekatan 2: Menggaji Scikit-learn
Scikit-learn's OneHotEncoder menyediakan pendekatan yang mantap dan fleksibel untuk satu pengekodan panas.
Contoh:
from sklearn.preprocessing import OneHotEncoder enc = OneHotEncoder() enc.fit([[0, 0, 3], [1, 1, 0], [0, 2, 1], [1, 0, 2]]) enc.transform([[0, 1, 1]]).toarray() array([[ 1., 0., 0., 1., 0., 0., 1., 0., 0.]])
Coretan kod yang disediakan menggambarkan pemadanan dan transformasi data sampel, menunjukkan pengekodan satu panas binari.
Pastikan anda mempertimbangkan dengan teliti sumber pengiraan yang diperlukan untuk satu pengekodan panas, terutamanya untuk set data yang besar. Pengendalian data yang cekap dan teknik pemilihan ciri adalah penting untuk mengoptimumkan prestasi dan mencapai keputusan pengelasan yang berjaya.
Atas ialah kandungan terperinci Bagaimanakah One Hot Encoding menangani pembolehubah kategori dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!