提出的目的:
在機器學習算法中,我們經常會遇到分類特征,例如:人的性别有男女,祖國有中國,美國,法國等。
這些特征值并不是連續的,而是離散的,無序的。于是,我們需要對其進行特征數字化。
具體含義:
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