Python實現獨熱編碼

2021-09-09 08:46:21 字數 926 閱讀 4459

關於獨熱編碼與啞變數編碼的概念,可以參考:

離散特徵的編碼分為兩種情況:

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...