什麼是one-hot編碼?one-hot編碼,又稱獨熱編碼、一位有效編碼。其方法是使用N位狀態寄存器來對N個狀態進行編碼,每個狀態都有它獨立的寄存器位,並且在任意時候,其中只有一位有效。
對於如下矩陣,手工編碼:
[0,0,3],[1,1,0],[0,2,1],[1,0,2]
0,1
0->1,0
1->0,1
0,1,2
0->1,0,0
1->0,1,0
2->0,0,1
0,1,2,3
0->1,0,0,0
1->0,1,0,0
2->0,0,1,0
3->0,0,0,1
那麼[0,1,3]=》 1,0,0,1,0,0,0,0,1
下面編程驗證一下。
from sklearn import preprocessing
enc = preprocessing.OneHotEncoder() # 創建對象
enc.fit([[0,0,3],[1,1,0],[0,2,1],[1,0,2]]) # 擬合
array = enc.transform([[0,1,3]]).toarray() # 轉化
print(array)
[[1. 0. 0. 1. 0. 0. 0. 0. 1.]]