python數(shù)據(jù)與處理

Y += [label] * lenx #批量添加lenx個標(biāo)簽label   list * int 意思是將數(shù)組重復(fù) int 次并依次連接形成一個新數(shù)組
one-hot編碼(實(shí)現(xiàn)將分類特征的每個元素轉(zhuǎn)化為一個可以用來計(jì)算的值)
from sklearn.preprocessing import  OneHotEncoder

enc = OneHotEncoder()
enc.fit([[0, 0, 3],
         [1, 1, 0],
         [0, 2, 1],
         [1, 0, 2]])

ans = enc.transform([[0, 1, 3]]).toarray()  # 如果不加 toarray() 的話,輸出的是稀疏的存儲格式,即索引加值的形式,也可以通過參數(shù)指定 sparse = False 來達(dá)到同樣的效果
print(ans) # 輸出 [[ 1.  0.  0.  1.  0.  0.  0.  0.  1.]]

下面解釋輸出結(jié)果的意思。對于輸入數(shù)組,這依舊是把每一行當(dāng)作一個樣本,每一列當(dāng)作一個特征,

第一列 [0,1,0,1],也就是說它有兩個取值 0 或者 1,那么 one-hot 就會使用兩位來表示這個特征,[1,0] 表示 0, [0,1] 表示 1,在上例輸出結(jié)果中的前兩位 [1,0...] 也就是表示該特征為 0

第二列 [0,1,2,0],它有三種值,那么 one-hot 就會使用三位來表示這個特征,[1,0,0] 表示 0, [0,1,0] 表示 1,[0,0,1] 表示 2,在上例輸出結(jié)果中的第三位到第六位 [...0,1,0,0...] 也就是表示該特征為 1

第三列 [3,0,1,2],它有四種值,那么 one-hot 就會使用四位來表示這個特征,[1,0,0,0] 表示 0, [0,1,0,0] 表示 1,[0,0,1,0] 表示 2,[0,0,0,1] 表示 3,在上例輸出結(jié)果中的最后四位 [...0,0,0,1] 也就是表示該特征為 3

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容