什么是獨熱編碼
One-Hot編碼,又稱為一位有效編碼,主要是采用N位狀態寄存器來對N個狀態進行編碼,每個狀態都由他獨立的寄存器位,并且在任意時候只有一位有效。
(資料圖片)
One-Hot編碼是分類變量作為二進制向量的表示。這首先要求將分類值映射到整數值。然后,每個整數值被表示為二進制向量,除了整數的索引之外,它都是零值,它被標記為1。
我們用如下案例來理解獨熱編碼:
性別特征:["男","女"]
祖國特征:["中國","美國,"法國"]
運動特征:["足球","籃球","羽毛球","乒乓球"]
怎么轉化成獨熱碼呢?
用獨熱碼來表示就是
男? =>? 10
女? =>? 01
祖國特征:["中國","美國,"法國"](這里N=3):
中國? =>? 100
美國? =>? 010
法國? =>? 001
運動特征:["足球","籃球","羽毛球","乒乓球"](這里N=4):
足球? =>? 1000
籃球? =>? 0100
羽毛球? =>? 0010
乒乓球? =>? 0001
所以,當一個樣本為["男","中國","乒乓球"]的時候,完整的特征數字化的結果為:
[1,0,1,0,0,0,0,0,1]
知識點
OneHotEncoder(categories='auto', sparse='True', dtype='float')
參數說明:
1、categories:默認’auto’,根據根據訓練數據自動確認類別;默認數組的列表,categories[i]保存第 i 列中預期的類別。傳遞的類別不應在單個特征中混合字符串和數值,并且應在數值的情況下進行排序。使用的類別可以在categories_屬性中找到。
2、sparse:默認為True,如果設置為 True 將返回稀疏矩陣,否則將返回一個數組。
3、dtype:默認為float,所需的輸出數據類型。
我們用sklearn的preprocessing進行數據預處理,案例如下:
關鍵詞: