為什麼要介紹這篇文章?
機器學習在處理分類問題時,機器無法處理文字類別,由於機器是採用數值進行運算,所以就需要將文字類別轉換成數字,才能讓機器看得懂,而這套方式就稱為編碼的方式。對於機器學習分類來說,編碼是相當常見的技巧,本篇文章將帶您了解編碼的原理與方式。
Encoding介紹
首先先來談談為什麼要使用編碼(encoding)的技巧呢?
這是因為機器學習模型在計算的過程,都是採用數值進行計算,所以機器只看得懂數值。當我們在處理分類問題,需要將某個物件進行分類,就會有相對應的文字類別,此時,機器是無法看懂文字,它需要將文字類別轉換成數值。將文字類別轉換成數值的方式就稱為編碼。
舉例來說,如果要讓機器進行影像辨識,分辨出鳥狗貓類別,這時候鳥狗貓就是文字類別,我們就需要透過Encoding技巧,將文字類別轉換成數值,才能讓機器學習。
一般常見的Encoding技巧分別有Label Encoding,One-Hot Encoding。
原理說明
Label encoding的方式是將文字類別轉換成數值,像是將鳥類別以0代表,狗類別以1代表,貓類別以2代表。由於只會有一個數值做代表,所以需要將數值增大來區分,像是一開始是0接下來就是1,2,3,4,5,6….依此類推,越後面的類別就會被賦予比較大的數值。
One-Hot Encoding的方式是將文字類別轉換成多個數值,像是將鳥類別以[1, 0, 0]代表,狗類別以[0, 1, 0]代表,貓類別以[0, 0, 1]代表。
這樣的編碼方式到底是如何編碼的呢?
像是總共有三個類別,鳥貓狗,就會定義有三個數值組成的向量,區分的方式就是在這三個數值裡面,將某一個位置訂為1來做區分。因此,可以看到類別上面,1所在的位置都不太一樣。像是[1,0,0], [0,1,0], [0,0,1],不同類別之間,並沒有順序的關係。
類比法說明
Label Encoding的方式是將文字類別依照順序以0,1,2…之數值作為代表,這種方式會有大小順序的特性,就像上樓梯,走第10階與第一階相比,高度會比較高,因此有大小順序的關係。雖然同樣是鳥貓狗,只是類別不同,但以這樣方式編碼的結果,有可能造成狗的數值是2,鳥的數值是0,就有可能被視為狗的類別會高過鳥的類別。
One-Hot Encoding是將文字類別以多個數值(向量)方式([1, 0, 0]…作為代表,不同類別之間並沒有大小順序的關係,就好像在看指南針,上面有東南西北之方向,不同方向是獨立無順序的關係。因此,東南西北的順序,只是方向不同,並不會有順序關係,那就會很符合分類問題的特性,因為鳥貓狗也沒有順序的關係,彼此都是互相獨立的。
總結
Label Encoding的方式,採用單一的數值對類別進行編碼,因此,會以0,1,2…之方式進行編碼,造成後編碼的類別與前編碼的類別,數值上有大小之分,優點為類別數量多的時候,只要以單一數值就能代表,編碼方式是很簡單方便的,缺點是可能會造成類別會有大小順序的差別,有可能對於某些機器學習方法,會有誤判的風險,因為會認為後編碼的類別數值比較大,就佔比較多的權重。
One-Hot Encoding的方式,以多數值向量進行編碼,像是有[1,0,0],[0,1,0]的方式,不同類別是方向上的差別關係,並不會有大小順序的差異。優點為因為不同類別沒有大小順序差異,所以可讓機器對於不同類別有更公平的學習,進而可以正確的分類。缺點就是當類別數目很多的時候,這時候的向量就會非常長,有可能會造成機器學習效果的低落。
[類神經網路基礎系列專文]:
1.類神經網路(Deep neural network, DNN)介紹
3.類神經網路—啟動函數介紹(一): 深入解析Relu與Sigmoid函數:如何影響類神經網路的學習效果?
4.類神經網路—啟動函數介紹(二): 回歸 vs. 分類: 線性函數與Tanh函數之原理探索
5.類神經網路—啟動函數介紹(三): 掌握多元分類的核心技術:不可不知的softmax函數原理
6.類神經網路—啟動函數介紹(四): 如何選擇最適當的啟動函數?用一統整表格讓您輕鬆掌握
8.類神經網路—反向傳播法(一): 白話文帶您了解反向傳播法
10.類神經網路—反向傳播法(三): 五步驟帶您了解梯度下降法
11.類神經網路—反向傳播法(四): 揭開反向傳播法神秘面紗
12.機器學習訓練原理大揭秘:六步驟帶您快速了解監督式學習的訓練方法
13.類神經網路—反向傳播法(五): 用等高線圖讓您對學習率更有感
[機器學習基礎系列專文]:
1.機器學習訓練原理大揭秘:六步驟帶您快速了解監督式學習的訓練方法
[類神經網路延伸介紹]:
1.卷積類神經網路(Convolution neural network,CNN)介紹
2.遞迴類神經網路(Recurrent neural network,RNN)介紹
[ChatGPT系列專文]: