首頁  >  文章  >  後端開發  >  One Hot Encoding 如何處理 Python 中的分類變數?

One Hot Encoding 如何處理 Python 中的分類變數?

DDD
DDD原創
2024-11-11 12:38:03344瀏覽

How does One Hot Encoding address categorical variables in Python?

Python 中的一個熱門編碼:解決分類變數

問題概述

在機器學習分類問題中,很概述

在機器學習分類問題中,很大一部分分類變數的分析提出了挑戰,需要特定的編碼技術。其中一種技術是熱編碼,通常在將資料傳遞給分類器之前使用。

方法 1:利用 Pandas 的 pd.get_dummies

常見的方法是使用 pd。從 Pandas 取得_dummies。它將分類列轉換為多個虛擬列,每個虛擬列代表不同的類別。

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
範例:

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

或者,指定前綴會為每個虛擬建立多個欄位:

方法2:僱用Scikit-learn

Scikit-learn 的OneHotEncoder 為單一熱編碼提供了一種強大而靈活的方法。

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.]])
範例:

提供的程式碼片段說明了範例資料的擬合和轉換,並示範了二元 one-hot編碼。 確保仔細考慮一種熱編碼所需的計算資源,尤其是對於大型資料集。高效的資料處理和特徵選擇技術對於優化效能和實現成功的分類結果至關重要。

以上是One Hot Encoding 如何處理 Python 中的分類變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn