onehot編碼解釋

2022-03-26 17:42:55 字數 1434 閱讀 2760

one-hot編碼,又稱為一位有效編碼,主要是採用n位狀態暫存器來對n個狀態進行編碼,每個狀態都由他獨立的暫存器位,並且在任意時候只有一位有效

one-hot編碼是分類變數作為二進位制向量的表示。這首先要求將分類值對映到整數值。然後,每個整數值被表示為二進位制向量,除了整數的索引之外,它都是零值,它被標記為1。

如果我們有『red』,『red』,『green』編碼為0的「紅色」標籤將用二進位制向量[1,0]表示,其中第0個索引被標記為值1。然後,編碼為1的「綠色」標籤將用乙個二進位制向量[0,1],其中第乙個索引被標記為1

整數編碼[0],[0],[1]

one hot 編碼 [1, 0] [1, 0] [0, 1]

one hot 編碼進行資料的分類更準確,許多機器學習演算法無法直接用於資料分類。資料的類別必須轉換成數字,對於分類的輸入和輸出變數都是一樣的

在模型訓練的過程中不同的值使得同一特徵在樣本中的權重可能發生變化 (1000比1對模型的影響更大)

我們可以直接使用整數編碼,需要時重新調整。這可能適用於在類別之間存在自然關係的問題,例如溫度「冷」(0)和」熱「(1)的標籤。

當沒有關係時,可能會出現問題,乙個例子可能是標籤的「狗」和「貓」。

在這些情況下,我們想讓網路更具表現力,為每個可能的標籤值提供概率式數字。這有助於進行問題網路建模。當輸出變數使用one-hot編碼時,它可以提供比單個標籤更準確的一組**。

將離散型特徵進行one-hot編碼的作用,是為了讓距離計算更合理,但如果特徵是離散的,並且不用one-hot編碼就可以很合理的計算出距離,那麼就沒必要進行one-hot編碼,比如,該離散特徵共有1000個取值,我們分成兩組,分別是400和600,兩個小組之間的距離有合適的定義,組內的距離也有合適的定義,那就沒必要用one-hot 編碼

離散特徵進行one-hot編碼後,編碼後的特徵,其實每一維度的特徵都可以看做是連續的特徵。就可以跟對連續型特徵的歸一化方法一樣,對每一維特徵進行歸一化。比如歸一化到[-1,1]或歸一化到均值為0,方差為1

基於樹的方法是不需要進行特徵的歸一化,例如隨機森林,bagging 和 boosting等。基於引數的模型或基於距離的模型,都是要進行特徵的歸一化。

語義分割中label往往如圖中所顯示

實際上變為onehot編碼為:

為每乙個可能的類建立乙個輸出通道

最終通過取每個畫素點在各個 channel 的 argmax 可以得到最終的**分割圖

one hot編碼理解

one hot是比較常用的文字特徵特徵提取的方法。one hot編碼,又稱 獨熱編碼 其實就是用n位狀態暫存器編碼n個狀態,每個狀態都有獨立的暫存器位,且這些暫存器位中只有一位有效,說白了就是只能有乙個狀態。下面舉例說明 有四個樣本,每個樣本有三種特徵 feature1 feature2 featu...

one hot 編碼的實現

對 mnist 手寫字元識別 資料集進行手寫數字分類,屬於多分類問題,手寫數字 0 9,共 10 類,從 mnist.pkl.gz 檔案中解析得到的字元影象 28 28 的標籤 label,或者目標值 只有 1 維,進行 one hot 編碼可將其編碼為 10 維,數字 0,編碼為 1,0,0,0,...

特徵工程 One hot編碼

建模時,常常會遇到有些特徵變數代表的是型別或型別。比如城市 city 它的取值有san francisco,new york和seattle三種。代表三個城市。import pandas as pd from sklearn import linear model df pd.dataframe c...