one-hot向量將類別變數轉換為機器學習演算法易於利用的一種形式的過程,這個向量的表示為一項屬性的特徵向量,也就是同一時間只有乙個啟用點(不為0),這個向量只有乙個特徵是不為0的,其他都是0,特別稀疏。
舉個例子:乙個特徵「性別」,性別有「男性」、「女性」,這個特徵有兩個特徵值,也只有兩個特徵值,如果這個特徵進行one-hot編碼,則特徵值為「男性」的編碼為「10」,「女性」的編碼為「01」,如果特徵值有m個離散特徵值,則one-hot後特徵值的表示是乙個m維的向量,每個樣本的特徵只能有乙個值,這個值的向量座標上就是1,其他都是0,如果有多個特徵,「性別」有兩個特徵,「尺碼」:m、l、xl三個值,我們用「01」表示男性,m為「100」,l為「010」,xl為「001」,所以乙個樣本,【「男性」、「l」】 one-hot編碼為[10 010],乙個樣本也就是5維的向量,這就是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).即每兩個工作之間的距離是一樣的,顯得更合理。
如果原本的標籤編碼是有序的,那one hot編碼就不合適了——會丟失順序資訊。
如果特徵的特徵值數目特別多,特徵向量就會非常大,且非常稀疏。
在分類問題中,經常使用的損失函式 交叉熵(categorical_crossentropy),如果你不使用 onehot格式,而是使用數字來代替,那麼類別之間的資料就不好判斷了,就需要使用 (sparse_categorical_crossentropy)來表示
if the targets are one-hot encoded, usecategorical_crossentropy
examoles of one-hot encodings:
if the targets are integers, usesparse_categorical_crossentropy
examples of integer encodings
支援向量機在多類分類問題中的推廣
svm本身是乙個二值分類器 svm演算法最初是為二值分類問題設計的,當處理多類問題時,就需要構造合適的多類分類器。目前,構造svm多類分類器的方法主要有兩類 1 直接法,直接在目標函式上進行修改,將多個分類面的引數求解合併到乙個最優化問題中,通過求解該最優化問題 一次性 實現多類分類。這種方法看似簡...
分類問題中效能評價指標
分類問題中會出現多種演算法,那麼自己如何知道演算法效能的優劣呢,這就需要評價演算法效能好壞的指標,這裡介紹幾個常用的指標.1.準確率 評價分類問題的效能的指標一般是分類準確率,其定義是對於給定的資料,分類正確的樣本數佔總樣本數的比例。accuracy 正確的樣本數 所有樣本數。但是這一指標在不均衡的...
深度學習分類問題中accuracy等評價指標的理解
在處理深度學習分類問題時,會用到一些評價指標,如accuracy 準確率 等。剛開始接觸時會感覺有點多有點繞,不太好理解。本文寫出我的理解,同時以語音喚醒 喚醒詞識別 來舉例,希望能加深理解這些指標。1,tp fp tn fn 下表表示為乙個二分類的混淆矩陣 多分類同理,把不屬於當前類的都認為是負例...