one-hot編碼的作用
使用one-hot編碼,將離散特征的取值擴展到了歐式空間,離散特征的某個取值就對應歐式空間的某個點
將離散特征通過one-hot編碼映射到歐式空間,是因為,在回歸,分類,聚類等機器學習算法中,特征之間距離的計算或相似度的計算是非常重要的,而我們常用的距離或相似度的計算都是在歐式空間的相似度計算,計算余弦相似性,基于的就是歐式空間。
sklearn的一個例子
from sklearn import preprocessingenc = preprocessing.OneHotEncoder()enc.fit([[0, 0, 3], [1, 1, 0], [0, 2, 1], [1, 0, 2]])print(enc.n_values_)//每個特征對應的最大位數print(enc.transform([[0,1,3]]).toarray())print(enc.transform([[0,1,1]]).toarray())
上面代碼enc.fit()里有一個4行3列的矩陣
1、每一列對應于一個樣本的特征序列,即一個樣本有三個特征
2、4行表明傳入了4個樣本
3、觀察每一列的值可以知道:第一個特征有兩個取值0,1;第二個特征有三個取值0,1,2;第三個特征有4個取值0,1,2,3
4、所以第一個特征的one-hot編碼是一個兩位的01串,第二個特征是一個三位的01串,第三個特征是一個4位的01串
以上這篇對python sklearn one-hot編碼詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。
新聞熱點
疑難解答