關於獨熱編碼與啞變數編碼的概念,可以參考:
離散特徵的編碼分為兩種情況:
1、離散特徵的取值之間沒有大小的意義,比如color:[red,blue],此時可以使用one-hot編碼;
2、離散特徵的取值有大小的意義,比如size:[x,xl,xxl],此時可以使用數值的對映。
import pandas as pd
df = pd.dataframe()
df
df結構如下所示:
利用pd.get_dummies()函式對類別性特徵df中的key進行獨熱編碼處理:
dummies = pd.get_dummies(df['key'],prefix='key')
dummies
dummies的結構如下:
將經過獨熱編碼處理後的類別特徵與其他數值型特徵組合起來:
new_df = df[['data']].join(dummies)
new_df
new_df的結構如下所示:
比較df和new_df我們可以看到,經過獨熱編碼處理後,特徵集由原來的兩維變成了四維。一般情況下獨熱編碼可以結合pca一起使用,以降低經獨熱編碼處理後的特徵集的複雜性。
其他參考:
《python for data analysis》2nd
One Hot encoder獨熱編碼
ref 1 什麼是獨熱碼 獨熱碼,在英文文獻中稱做 one hot code,直觀來說就是有多少個狀態就有多少位元,而且只有乙個位元為1,其他全為0的一種碼制。在機器學習中對於離散型的分型別的資料,需要對其進行數位化比如說性別這一屬性,只能有男性或者女性或者其他這三種值,如何對這三個值進行數位化表達...
獨熱編碼函式
想用自己的資料進行獨熱編碼,一開始沒用官方的程式。from sklearn import preprocessing enc preprocessing.onehotencoder 想用這個函式的可以參考博主 我找的是github裡的乙個程式 可以參考下。貼上 def one hot y n cla...
獨熱編碼 One Hot Eocode
假設現在我們要對5張手寫數字進行分類,這些數字的標籤labels的範圍是0 9,形成 5,的行向量,為 5,4,3,8,7 labels 5,4,3,8,7 num classes 10 batch size tf.size labels labels表示的標籤,5張有5個標籤。batch size...