您好,登錄后才能下訂單哦!
one-hot編碼的作用
使用one-hot編碼,將離散特征的取值擴(kuò)展到了歐式空間,離散特征的某個(gè)取值就對(duì)應(yīng)歐式空間的某個(gè)點(diǎn)
將離散特征通過one-hot編碼映射到歐式空間,是因?yàn)?,在回歸,分類,聚類等機(jī)器學(xué)習(xí)算法中,特征之間距離的計(jì)算或相似度的計(jì)算是非常重要的,而我們常用的距離或相似度的計(jì)算都是在歐式空間的相似度計(jì)算,計(jì)算余弦相似性,基于的就是歐式空間。
sklearn的一個(gè)例子
from sklearn import preprocessing enc = preprocessing.OneHotEncoder() enc.fit([[0, 0, 3], [1, 1, 0], [0, 2, 1], [1, 0, 2]]) print(enc.n_values_)//每個(gè)特征對(duì)應(yīng)的最大位數(shù) print(enc.transform([[0,1,3]]).toarray()) print(enc.transform([[0,1,1]]).toarray())
上面代碼enc.fit()里有一個(gè)4行3列的矩陣
1、每一列對(duì)應(yīng)于一個(gè)樣本的特征序列,即一個(gè)樣本有三個(gè)特征
2、4行表明傳入了4個(gè)樣本
3、觀察每一列的值可以知道:第一個(gè)特征有兩個(gè)取值0,1;第二個(gè)特征有三個(gè)取值0,1,2;第三個(gè)特征有4個(gè)取值0,1,2,3
4、所以第一個(gè)特征的one-hot編碼是一個(gè)兩位的01串,第二個(gè)特征是一個(gè)三位的01串,第三個(gè)特征是一個(gè)4位的01串
以上這篇對(duì)python sklearn one-hot編碼詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。