對
我們基於特徵聯合發生在模式識別的不同階段,將其主要分為三個層次。第乙個層次是特徵層,第二個層次是特徵分數層,第三個是分類結果層。對於每個不同層次又有數中簡單可行的方法同大家分享。
1.第一層——特徵層
特徵層的思想就如上面我們舉的例子一樣,非常簡單。把不同的特徵聯合在一起。但我們應該是什麼是聯合呢?假設我們有兩類特徵a和b,那我們是應該先將它們聯合在一起形成乙個統一的特徵向量c,在對c進行特徵選擇(降維),還是先分別對a和b進行特徵選擇(降維)然後再將他們聯合成為乙個特徵向量c呢?其實就是我們的特徵聯合應該是發生在降維前還是降維後的問題。在此,我們將發生在降維前的方法稱為bfs(before feature selection),將先降維再聯合的方法稱為afs(after feature selection)。我想這兩種方法沒有具體的優劣之分,具體問題具體分析。
2.第二層——特徵分數層
其實我們在此是通過一系列的方法將兩種特徵歸一化到相同指數。常用的有函式法,和概率密度法。
2.1 常用函式法。
我們常用的歸一函式主要有一下幾個:
(1)最大-最小函式。主要用於把原輸入訊號形狀不變的拉伸或壓縮到特定尺度。
(2)mean-std,即通過統計的只是將特徵歸一到統一均值和方差的乙個範圍中來。
(3)med-mad,他同mean-std比較類似。只不過這裡採用中值med和標準中值mad代替了mean裡面的均值和方差。標準中值即表示各個特徵到中值的 距離所組成的距離集合的中值。
(4)雙曲sigmoid函式。
(5)tanh函式
在此我們可以對tanh這種方法進行變型,讓其具有統計的意義,如下所示
這裡的med和mad也可以被均值和方差所替換
2.2 常用的概率密度估計方法。
其實這種方法總的來說就是用訓練樣本中的各個特徵訓練一組分類器,然後將分類器輸出的概率值作為新的特徵向量。舉例如下:
我們有兩種特徵:a=[a1,a2,a3,a4.....an]和b=[b1,b2,b3,b4....bm];
對於a特徵,我們訓練n個分類器記為f1,f2....fn,然後進行如下運算
xi = fi(ai) i=1.2.3....n
對於b特徵,我們訓練m個分類器記為g1.g2....gn,然後進行如下運算
yi = gi(bi) i = 1.2.3....n
在這裡我們的兩個分類器g和f選擇為相同的模型,例如同為貝葉斯或者同為svm,並且不把分類器的輸出設為類別,而為某一類別的概率。這樣自然而然就可以得到概率密度作為聯合的特徵如下
c=[x1.x2.x3.....xn.y1.y2.y3......ym]
3. 分類層
其實分類層的特徵結合就是分別對不同型別的特徵進行分類,然後結合分類的結果。這種結合方法裡最樸素的應該就是投票或者二分類中的與(或)判別。投票呢就是分別對不同類別的特徵進行分類,最終類別由各個分類器的分類結果進行投票決定。而與判別就是必須所有分類器都認為真,才最終判決為真。而或判決則是只要有任意乙個分類器判決為真就為真。
更為複雜的我們可以將其與決策樹或者boosting這樣的分類器進行模擬。
特徵選擇方法總結
1 方差篩選法 移除低方差的特徵。低方差說明特徵比較均勻,區分度低。如,一列數值全為1,則這列數值的方差為0。這一列特徵對於訓練模型是沒有意義的。使用方差篩選法的 from sklearn.feature selection import variancethreshold 6個樣本,3維的特徵向量...
特徵選擇方法總結
摘要 1.特徵選擇的功能 3.過濾特徵選擇 filter feature select 4.嵌入特徵選擇 embeding feature select 內容 1.特徵選擇的功能 減少特徵數量 降維,使模型泛化能力更強,減少過擬合 增強對特徵和特徵值之間的理解 特徵選擇的目標是尋找最優特徵子集。特徵...
特徵工程 常用的特徵轉換方法總結
機器學習模型的生命週期可以分為以下步驟 要構建模型就必須要對資料進行預處理。特徵轉換是這個過程中最重要的任務之一。在資料集中,大多數時候都會有不同大小的資料。為了使更好的 必須將不同的特徵縮小到相同的幅度範圍或某些特定的資料分布。什麼時候需要特徵轉換 什麼時候不需要特徵轉換 大多數基於樹型模型的整合...