天天看點

『One-Hot 編碼』在機器學習資料集中,為什麼使用one-hot編碼表示離散型特征?為什麼要用One-Hot編碼?總結

為什麼要用One-Hot編碼?

在資料集中,經常碰到離散型的特征,比如:國家∈{中國,英國,法國,德國…}

如果我們使用country=0表示中國,…,country=3表示德國,這樣的表示方法,無法在歐式空間裡計算出合理的樣本點之間的距離。

用自然數表示離散特征無法合理計算樣本點距離?

保持兩個樣本點的其他特征不變(以求友善用0表示),隻考慮國家這個特征(加粗,用自然數表示),那麼有3個樣本向量可以表示為:

person1 = [0, 0, 0, 0] (中國人)

person2 = [0, 0, 3, 0] (德國人)

person3 = [0, 0, 2, 0] (法國人)

dist(person1, person2) = 3

dist(person2, person3) = 1

,這顯然是不合理的。

用One-Hot?

其他同上,不過國家特征用one-hot編碼表示:

person1 = [0, 0, 1, 0, 0, 0, 0]

person2 = [0, 0, 0, 0, 0, 1, 0]

person3 = [0, 0, 0, 0, 1, 0, 0]

這樣,任意兩個樣本點的距離就相同了。

總結

使用one-hot編碼可以解決離散型特征值的尴尬,但是依然還是有它的缺陷,等我學會了再來寫部落格。

繼續閱讀