sklearn中的one hot編碼
07-17
sklearn中的one hot編碼
4 人贊了文章
sklearn.preprocessing中的OneHotEncoder將shape=(None,1)的列向量中每個分量表示的下標(index)編碼成one hot行向量。
import numpy as npfrom sklearn.preprocessing import OneHotEncoder
行向量轉列向量:
# 非負整數表示的標籤列表labels = [0,1,0,2]# 行向量轉列向量labels = np.array(labels).reshape(len(labels), -1)
one hot編碼:
enc = OneHotEncoder()enc.fit(labels)targets = enc.transform(labels).toarray()
編碼結果:
array([[ 1., 0., 0.], [ 0., 1., 0.], [ 1., 0., 0.], [ 0., 0., 1.]])
編碼結果是one hot行向量,行向量的第index個分量為1,其餘為0。
推薦閱讀:
※python編程基礎(一)
※Python初學者好玩案例(二):聽兩個聊天機器人互相聊天(15行代碼)
※最常用的十種機器學習演算法(附代碼)
※【Python】Socket-Part4-TCP值得注意的地方