2022.03.06:在機器學習中,有種資料預處理的方法叫做One-Hot Encoding,那么什么是One-Hot Encoding,這種方法進行資料預處理的好處是什么呢?
參考文章:https://www.jianshu.com/p/cb344e1c860a
首先One-Hot Encoding叫做獨熱編碼,
為什么要使用獨熱編碼?在很多的機器學習的任務中,特征并不總是連續值,有可能是分類值,比如性別分為“male”和“female”,對于這樣的特征,在機器學習任務中通常我們需要對其進行特征數字化,如下面的例子:
有三個特征屬性:
性別:[“male”,“female”]
地區:[“Europe”,“US”,“Asia”]
瀏覽器:[“Firefox”,“Chrome”,“Safari”,“Internet Explorer”]
對于某一個樣本特征來講,用數字來表示特征,效率會高很多,如[“male”,“US”,“Internet Explorer”],將這個分類值的特征數字化,最直接的方法,按照每個特征在各自特征分類里的順序來數字化,像“male”在性別分類里在第一個位置即0,其他同理,我們就能得到這種序列化方法后的結果為[0,1,3],但是這樣的特征處理不能直接用在我們的分類器中,因為分類器往往默認資料是連續且有序的,而上述表示的數字并不有序,并且是隨機分配的,
上述問題的一種解決方法就是獨熱編碼,也稱一位有效編碼,主要是采用N位狀態暫存器來對N個狀態進行編碼,每個狀態都有它獨立的暫存器位,并且只有一位有效,可以理解為,對于每一個特征,如果它有m個可能值,那么經過獨熱編碼后,就變成了m個二元特征,并且這些特征互斥,每次只有一個特征激活,因此,資料經過獨熱編碼后的結果會變得稀疏,
獨熱編碼怎樣處理?像上述樣本[“male”,“US”,“Internet Explorer”],“male”在性別分類里在第一個位置,則“male”所在位置為1,其他特征所在的位置為0,那么“male”經過獨熱編碼后對應結果為[1,0],同理“US”在地區分類里在第二個位置則第二個位置為1,其他特征的位置為0,那么獨熱編碼后的結果為[0,1,0],同理“Internet Explorer”對應著[0,0,0,1],則完整的特征數字化的結果為[1,0,0,1,0,0,0,0,1],即將樣本中每個特征經過獨熱編碼后的結果按照原來樣本的中順序拼接在一起,這樣導致的一個結果就是資料會變得非常稀疏,
但是這樣做的好處是解決了分類器不好處理這種有分類屬性資料的問題,同時在一定程度上也起到了擴充特征的作用,
舉一個簡單的例子:
在例子中有共有四個特征,這里要注意每列是一個特征,
則第一個特征為[0,1,2,1],其中去掉重復的,即有三類特征值[0,1,2],因此獨熱編碼可以將[0,1,2]表示為[100,010,001],拿其中一個具體來說,如果樣本中在第一個特征中取的是2這個特征值,那么2在特征值的第三個位置上則第三個位置為1,其他特征的位置為0,所以特征值2經過獨熱編碼后的結果為[0,0,1],
同理第二列特征值只有兩類[2,3],分別可以表示為[10,01],
第三個特征的特征值有四類[1,2,4,5],分別表示為[1000,0100,0010,0001],
第四個特征將兩類特征值[3,12]表示為[10,01],
最后將樣本[2,3,5,3]中每個特征值經過獨熱編碼后的結果拼接在一起,即可將[2,3,5,3]表示為[0,0,1,0,1,0,0,0,1,1,0],
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/438654.html
標籤:AI
上一篇:人工智能實踐Tensorflow2.0 第五章--1.卷積神經網路基礎--八股法搭建卷積神經網路--北京大學慕課