資料處理——One-Hot Encoding
阿新 • • 發佈:2019-02-15
一、One-Hot Encoding
One-Hot編碼,又稱為一位有效編碼,主要是採用位狀態暫存器來對個狀態進行編碼,每個狀態都由他獨立的暫存器位,並且在任意時候只有一位有效。 在實際的機器學習的應用任務中,特徵有時候並不總是連續值,有可能是一些分類值,如性別可分為“male”和“female”。在機器學習任務中,對於這樣的特徵,通常我們需要對其進行特徵數字化,如下面的例子: 有如下三個特徵屬性:- 性別:["male","female"]
- 地區:["Europe","US","Asia"]
- 瀏覽器:["Firefox","Chrome","Safari","Internet
Explorer
二、One-Hot Encoding的處理方法
對於上述的問題,性別的屬性是二維的,同理,地區是三維的,瀏覽器則是思維的,這樣,我們可以採用One-Hot編碼的方式對上述的樣本“["male","US","Internet Explorer"]”編碼,“male”則對應著[1,0],同理“US”對應著[0,1,0],“Internet Explorer”對應著[0,0,0,1]。則完整的特徵數字化的結果為:[1,0,0,1,0,0,0,0,1]。這樣導致的一個結果就是資料會變得非常的稀疏。三、實際的Python程式碼
from sklearn import preprocessing
enc = preprocessing.OneHotEncoder()
enc.fit([[0,0,3],[1,1,0],[0,2,1],[1,0,2]])
array = enc.transform([[0,1,3]]).toarray()
print array
結果:[[ 1. 0. 0. 1. 0. 0. 0. 0. 1.]]