獨熱編碼(One-Hot)的理解


https://www.imooc.com/article/35900

參考上面大神的原文,說的非常透徹。非常便於理解。感謝 感謝

 

自己做個小筆記,便於自己學習

 

特征值是離散的,無序的。

如:

  • 性別特征:["男","女"]

  • 祖國特征:["中國","美國,"法國"]

  • 運動特征:["足球","籃球","羽毛球","乒乓球"]

假如某個樣本(某個人),他的特征是這樣的["男","中國","乒乓球"],我們完全可以用 [0,0,4] 來表示。
但是這樣的特征處理並不能直接放入機器學習算法中。因為類別之間是無序的(運動數據就是任意排序的)。不理解沒關系。

怎么轉化成獨熱碼呢?

用獨熱碼來表示就是

男  =>  10

女  =>  01

祖國特征:["中國","美國,"法國"](這里N=3):

中國  =>  100

美國  =>  010

法國  =>  001

運動特征:["足球","籃球","羽毛球","乒乓球"](這里N=4):

足球  =>  1000

籃球  =>  0100

羽毛球  =>  0010

乒乓球  =>  0001

所以,當一個樣本為["男","中國","乒乓球"]的時候,完整的特征數字化的結果為:

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

下圖可能會更好理解:

https://img.mukewang.com/5b20f1b90001cc2202550045.jpg

這樣做的優勢 是什么呢?

對於祖國特征:["中國","美國,"法國"]

 

重點 重點 重點!

如果按照  中國 0 ,美國 1,法國2  普通編碼的話

那么  中國和法國之間的距離是2,中國和美國的距離是1,美國和法國的距離是1,但是實際上,這種距離是因為我們編碼的順序導致的。中國和法國並不是真的 距離是2

而在機器學習中需要計算兩者之間的距離(歐氏距離)。這種普通的編碼方式並不能表示清楚距離。

 

而如果用獨熱碼來編碼

中國 1 0 0

美國 0 1 0

法國 0 0 1

相當於我搭建了一個三維的空間

那么 任意兩國的距離都是 sqrt(2),距離都是相等的!      這才是關鍵 關鍵!

相當於 中國在 x+點處,美國 在y+點處,法國在 z+點處。那么三者之間的距離是不是相等呢?

 

關於機器學習

在one hot representation編碼的每個單詞都是一個維度,彼此獨立。

這里我們可以看到One hot方式處理的數據


1、會產生大量冗余的稀疏矩陣


2、維度(單詞)間的關系,沒有得到體現

 

 要是one hot encoding的類別數目不太多,建議優先考慮

 

最后再次感謝 NateHuang

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM