獨(dú)熱編碼(One-Hot Encoding)是將離散特征進(jìn)行編碼的一種常用方法,其目的是將分類變量轉(zhuǎn)換為可用于機(jī)器學(xué)習(xí)算法模型訓(xùn)練的數(shù)字表示。在數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)領(lǐng)域中,將分類變量轉(zhuǎn)換為數(shù)值型變量非常重要,這也是獨(dú)熱編碼被廣泛應(yīng)用的原因之一。
1.獨(dú)熱編碼的意義
通常情況下,分類變量的取值是無序且離散的,不能直接使用數(shù)值表示。例如血型分為A、B、AB、O四種類型,不同血型間沒有任何數(shù)量上的關(guān)聯(lián)。而獨(dú)熱編碼可以將每個分類變量擴(kuò)展到一組新特征上,使得每個新特征都代表原特征的一個取值。這些新特征全部為0,除了代表原特征取值的那個特征,它的值為1。這樣每個樣本的特征向量長度增加,但是每個特征只有一種可能取值,從而提高了模型精度。
2.為什么要用獨(dú)熱編碼
機(jī)器學(xué)習(xí)算法需要處理數(shù)字類型的數(shù)據(jù),對于分類數(shù)據(jù),如果不進(jìn)行處理直接輸入到模型中往往會造成誤差或異常結(jié)果。因此需要將分類變量轉(zhuǎn)換為數(shù)值型變量。獨(dú)熱編碼可以消除類別之間的大小關(guān)系,并提供了一種非常簡單、通用且有效的表示方法。