Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah One Hot Encoding menangani pembolehubah kategori dalam Python?

Bagaimanakah One Hot Encoding menangani pembolehubah kategori dalam Python?

DDD
DDDasal
2024-11-11 12:38:03343semak imbas

How does One Hot Encoding address categorical variables in Python?

Satu Pengekodan Panas dalam Python: Menangani Pembolehubah Kategori

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn