編者按:數(shù)據(jù)科學家Rakshith Vasudev簡要解釋了one hot編碼這一機器學習中極為常見的技術。

圖片來源:imgur
你可能在有關機器學習的很多文檔、文章、論文中接觸到“one hot編碼”這一術語。本文將科普這一概念,介紹one hot編碼到底是什么。
一句話概括:one hot編碼是將類別變量轉(zhuǎn)換為機器學習算法易于利用的一種形式的過程。
通過例子可能更容易理解這個概念。
假設我們有一個迷你數(shù)據(jù)集:

其中,類別值是分配給數(shù)據(jù)集中條目的數(shù)值編號。比如,如果我們在數(shù)據(jù)集中新加入一個公司,那么我們會給這家公司一個新類別值4。當獨特的條目增加時,類別值將成比例增加。
在上面的表格中,類別值從1開始,更符合日常生活中的習慣。實際項目中,類別值從0開始(因為大多數(shù)計算機系統(tǒng)計數(shù)),所以,如果有N個類別,類別值為0至N-1.
sklear的LabelEncoder可以幫我們完成這一類別值分配工作。
現(xiàn)在讓我們繼續(xù)討論one hot編碼,將以上數(shù)據(jù)集one hot編碼后,我們得到的表示如下:

在我們繼續(xù)之前,你可以想一下為什么不直接提供標簽編碼給模型訓練就夠了?為什么需要one hot編碼?
標簽編碼的問題是它假定類別值越高,該類別更好?!暗鹊?,什么!”
讓我解釋一下:根據(jù)標簽編碼的類別值,我們的迷你數(shù)據(jù)集中VW > Acura > Honda。比方說,假設模型內(nèi)部計算平均值(神經(jīng)網(wǎng)絡中有大量加權平均運算),那么1 + 3 = 4,4 / 2 = 2. 這意味著:VW和Honda平均一下是Acura。毫無疑問,這是一個糟糕的方案。該模型的預測會有大量誤差。
我們使用one hot編碼器對類別進行“二進制化”操作,然后將其作為模型訓練的特征,原因正在于此。
當然,如果我們在設計網(wǎng)絡的時候考慮到這點,對標簽編碼的類別值進行特別處理,那就沒問題。不過,在大多數(shù)情況下,使用one hot編碼是一個更簡單直接的方案。
另外,如果原本的標簽編碼是有序的,那one hot編碼就不合適了——會丟失順序信息。
最后,我們用一個例子總結下本文:
假設“花”的特征可能的取值為daffodil(水仙)、lily(百合)、rose(玫瑰)。one hot編碼將其轉(zhuǎn)換為三個特征:is_daffodil、is_lily、is_rose,這些特征都是二進制的。
-
編碼器
+關注
關注
45文章
3900瀏覽量
141352 -
機器學習
+關注
關注
66文章
8541瀏覽量
136209 -
數(shù)據(jù)集
+關注
關注
4文章
1229瀏覽量
26031
原文標題:什么是one hot編碼?為什么要使用one hot編碼?
文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
機器學習模型可解釋性的結果分析
基于深度學習技術的智能機器人
機器學習的相關資料下載
人工智能和機器學習技術如何解釋數(shù)據(jù)?
什么是特征工程?機器學習的特征工程詳解解讀

簡要解釋one hot編碼這一機器學習中極為常見的技術
評論