Bagaimanakah One Hot Encoding menangani pembolehubah kategori dalam Python?

DDD
Lepaskan: 2024-11-11 12:38:03
asal
317 orang telah melayarinya

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
Salin selepas log masuk

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
Salin selepas log masuk

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.]])
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan