問題概述
在機器學習分類問題中,很概述
在機器學習分類問題中,很大一部分分類變數的分析提出了挑戰,需要特定的編碼技術。其中一種技術是熱編碼,通常在將資料傳遞給分類器之前使用。
方法 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 Encoding 如何處理 Python 中的分類變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!