天天看點

one-hot vector(獨熱編碼)

提出的目的:

在機器學習算法中,我們經常會遇到分類特征,例如:人的性别有男女,祖國有中國,美國,法國等。

這些特征值并不是連續的,而是離散的,無序的。于是,我們需要對其進行特征數字化。

具體含義:

One-Hot編碼,又稱為一位有效編碼,主要是采用N位狀态寄存器來對N個狀态進行編碼,每個狀态都由他獨立的寄存器位,并且在任意時候隻有一位有效。

One-Hot編碼是分類變量作為二進制向量的表示。這首先要求将分類值映射到整數值。然後,每個整數值被表示為二進制向量,除了整數的索引之外,它都是零值,它被标記為1。

舉例說明:

假如某個樣本(某個人),他的特征是這樣的[“男”,“中國”,“乒乓球”]。哪一維是1,就代表對象屬于哪一類。

性别特征:[“男”,“女”] ,對應[1,0]。

祖國特征:[“中國”,"美國,“法國”], 對應[1,0,0]。

運動特征:[“足球”,“籃球”,“羽毛球”,“乒乓球”], 對應[0,0,0,1]。

完整的特征數字化的結果為:

[1,0,1,0,0,0,0,0,1]。

這樣做的好處:

在回歸,分類,聚類等機器學習算法中,特征之間距離的計算或相似度的計算是非常重要的,而我們常用的距離或相似度的計算都是在歐式空間的相似度計算,計算餘弦相似性,基于的就是歐式空間。

而我們使用one-hot編碼,将離散特征的取值擴充到了歐式空間,離散特征的某個取值就對應歐式空間的某個點。

将離散型特征使用one-hot編碼,确實會讓特征之間的距離計算更加合理。

原文:https://blog.csdn.net/wxystyle/article/details/80729741

繼續閱讀