資料預處理之獨熱編碼(One-Hot)
在機器學習演算法中,我們經常會遇到分類特徵,例如:人的性別有男女,祖國有中國,美國,法國等。
這些特徵值並不是連續的,而是離散的,無序的。通常我們需要對其進行特徵數字化。
考慮以下三個特徵:
["male", "female"]
["from Europe", "from US", "from Asia"]
["uses Firefox", "uses Chrome", "uses Safari", "uses Internet Explorer"]
如果將上述特徵用數字表示,效率會高很多。例如:
["male", "from US", "uses Internet Explorer"] 表示為[0, 1, 3]
["female", "from Asia", "uses Chrome"]表示為[1, 2, 1]
但是,轉化為數字表示後,上述資料不能直接用在我們的分類器中。因為,分類器往往預設資料資料是連續的,並且是有序的。但按上述表示的數字並不有序的,而是隨機分配的。
One-Hot編碼
One-Hot編碼,又稱為一位有效編碼,主要是採用N位狀態暫存器來對N個狀態進行編碼,每個狀態都由他獨立的暫存器位,並且在任意時候只有一位有效。
One-Hot編碼是分類變數作為二進位制向量的表示。這首先要求將分類值對映到整數值。然後,每個整數值被表示為二進位制向量,除了整數的索引之外,它都是零值,它被標記為1。
性別特徵:["男","女"],按照N位狀態暫存器來對N個狀態進行編碼的原理,我們們處理後應該是這樣的(這裡只有兩個特徵,所以N=2):
男 => 10
女 => 01
使用one-hot編碼原因
使用one-hot編碼,將離散特徵的取值擴充套件到了歐式空間,離散特徵的某個取值就對應歐式空間的某個點。
將離散特徵通過one-hot編碼對映到歐式空間,是因為,在迴歸,分類,聚類等機器學習演算法中,特徵之間距離的計算或相似度的計算是非常重要的,而我們常用的距離或相似度的計算都是在歐式空間的相似度計算,計算餘弦相似性,基於的就是歐式空間將離散型特徵使用one-hot編碼,確實會讓特徵之間的距離計算更加合理。
比如,有一個離散型特徵,代表工作型別,該離散型特徵,共有三個取值,不使用one-hot編碼,其表示分別是x_1 = (1), x_2 = (2), x_3 = (3)。兩個工作之間的距離是,(x_1, x_2) = 1, d(x_2, x_3) = 1, d(x_1, x_3) = 2。那麼x_1和x_3工作之間就越不相似嗎?顯然這樣的表示,計算出來的特徵的距離是不合理。那如果使用one-hot編碼,則得到x_1 = (1, 0, 0), x_2 = (0, 1, 0), x_3 = (0, 0, 1),那麼兩個工作之間的距離就都是sqrt(2).即每兩個工作之間的距離是一樣的,顯得更合理
-
解決了分類器不好處理屬性資料的問題
-
在一定程度上也起到了擴充特徵的作用
參考部落格:連結:https://www.jianshu.com/p/cb344e1c860a
相關文章
- Python實現類別變數的獨熱編碼(One-hot Encoding)Python變數Encoding
- 資料預處理之 pandas 讀表
- one-hot編碼
- 資料預處理
- 【scikit-learn基礎】--『預處理』之 分類編碼
- 資料分析--資料預處理
- 資料預處理-資料清理
- 資料預處理 demo
- Sklearn之資料預處理——StandardScaler歸一化
- 【火爐煉AI】機器學習001-資料預處理技術(均值移除,範圍縮放,歸一化,二值化,獨熱編碼)AI機器學習
- 資料預處理-資料歸約
- 資料處理 | pandas入門專題——離散化與one-hot
- 關於One-hot編碼
- nlp 中文資料預處理
- TANet資料預處理流程
- 文字單詞one-hot編碼
- 【scikit-learn基礎】--『預處理』之 資料縮放
- java安全編碼指南之:異常處理Java
- 深度學習--資料預處理深度學習
- 資料預處理方法彙總
- 資料預處理和特徵工程特徵工程
- Js 和Url預設位址列編碼等處理JS
- PyTorch之對類別張量進行one-hot編碼PyTorch
- tf.one_hot()用法 獨熱編碼
- 資料預處理-資料整合與資料變換
- 資料處理之去除重複資料
- 標籤編碼、獨熱編碼大不同 - Python 實現Python
- 資料預處理利器 Amazon Glue DataBrew
- 人工智慧 (01) 資料預處理人工智慧
- NUS-WIDE資料集預處理IDE
- 特徵工程之資料預處理(下)特徵工程
- 深度學習——資料預處理篇深度學習
- sklearn中常用資料預處理方法
- 模型訓練:資料預處理和預載入模型
- 機器學習:探索資料和資料預處理機器學習
- sklearn 第二篇:資料預處理
- 機器學習一:資料預處理機器學習
- Alink漫談(十) :線性迴歸實現 之 資料預處理