特徵選擇之支援向量機遞迴特徵消除(SVM RFE)

2021-08-10 06:46:55 字數 3190 閱讀 5550

原創

2023年05月15日 14:01:14

支援向量機遞迴特徵消除(下文簡稱svm-rfe)是由guyon等人在對癌症分類時提出來的,最初只能對兩類資料進行特徵提取。它是一種基於embedded方法。

支援向量機廣泛用於模式識別,機器學習等領域,svm採用結構風險最小化原則,同時最小化經驗誤差,以此提高學習的效能。詳細的svm介紹請看我的另一篇博文《 線性支援向量機》

在這簡單介紹一下svm。 

設訓練集ni

=1,其中xi

∈rd,

yi∈ ,xi

為第i 個樣本,n為樣本量,d為樣本特徵數。svm尋找最優的分類超平面ω⋅

x+b=

0 。 

svm需要求解的優化問題為: 

min12||

ω||2

+cσn

i=1ξ

is.t

.yi(

ω⋅xi

+b)≥

1−ξi

,i=1

,2,.

..,n

ξi≥0

,i=1

,2,.

..,n

而原始問題可以轉化為對偶問題: 

min12σn

i=1σ

nj=1

αiαj

yiyj

(xi⋅

xj)−

σni=

1αis

.t.ς

ni=1

yiαi

=00≤

αi≤c

,i=1

,2,.

..,n

其中, αi

為拉格朗日乘子。 

最後 ω

的解為:  ω

=σni

=1αi

yixi

svm-rfe是乙個基於svm的最大間隔原理的序列後向選擇演算法。它通過模型訓練樣本,然後對每個特徵進行得分進行排序,去掉最小特徵得分的特徵,然後用剩餘的特徵再次訓練模型,進行下一次迭代,最後選出需要的特徵數。而特徵

i 的排序準則得分定義為: 

ci=w2

i

兩分類svm-rfe演算法:

輸入:訓練樣本 n

i=1,

yi∈

輸出:特徵排序集r 

1)初始化原始特徵集合s=,特徵排序集r= 

2)迴圈以下過程直至s= 

獲取帶候選特徵集合的訓練樣本; 

用式 m

in12

σni=

1σnj

=1αi

αjyi

yj(x

i⋅xj

)−σn

i=1α

i 訓練svm分類器,得到 ω

; 用式 c

i=w2

i,k=

1,2,

...,

|s| 計算排序準則得分; 

找出排序得分最小的特徵 p

=arg

mink

ck; 

更新特徵集r=[p,r]; 

在s中去除此特徵:s=s/p。

多分類的svm-rfe演算法其實和兩分類的svm-rfe演算法類似,只不過在處理多分類時,把類別進行兩兩配對,其中一類為正類,另一類為負類,這樣需訓練n(

n−1)

2 個分類器,這就是一對一(one vs. one,簡稱ovo)的多分類拆分策略(詳細請看周志華的《機器學習》的第三章線性模型的多分類學習),這樣就變成了多個兩分類問題(當然,也可以使用一對其餘(ovr)),每個兩類問題用乙個svm-rfe進行特徵選擇,利用多個svm-rfe獲得多個排序準則得分,然後把多個排序準則得分相加後得到排序準則總分,以此作為特徵剔除的依據,每次迭代消去最小特徵,直到所有特徵都被刪除。 

多分類svm-rfe演算法:

輸入:訓練樣本集ni

=1,v

i∈,l

為類別數

輸出:特徵排序集r 

1)初始化原始特徵集合s=,特徵排序集r= 

2)生成l(

l−1)

2 個訓練樣本: 

在訓練樣本ni

=1中找出不同類別的兩兩組合得到最後的訓練樣本: 

xj=

n1+nj+

1i=1

,j=1

,2,.

..,l

;當vi

=1時,

yi=1

,當vi

=j+1

,yi=

−1n2

+nj−

l+3i

=1,j

=l,.

..,2

l−3;

當vi=

2時,y

i=1,

當vi=

j−l+

3,yi

=−1 ⋯⋯

⋯⋯⋯⋯

⋯⋯nl

−1+n

li=1

,j=l

(l−1

)2−1

,...

,l(l

−1)2

;當vi

=l−1

時,yi

=1,當

vi=l

,yi=

−13)迴圈一下過程直至s=: 

獲取用l個訓練子樣本xj

(j=1

,2,.

..,l

(l−1

)/2)

; 分別用xj

訓練svm,分別得到ωj

(j=1

,2,.

..,l

) ; 

計算排序準則得分ck

=σjω

2jk(

k=1,

2,..

.,|s

|); 

找出排序準則得分最小的特徵p=

argm

inkc

k ; 

更新特徵集r=[p,r]; 

在s中去除此特徵s=s/p.

參考【isabelle guyon, jason weston et.al】gene selection for cancer classification using support vector machines 

【黃曉娟,張莉】改進的多類支援向量機遞迴特徵消除在癌症多分類中的應用 

【周志華】機器學習

文字之特徵選擇

從給定的特徵集合中選擇出相關特徵子集的過程,稱為 特徵選擇 特徵選擇是從特徵集t 中選擇乙個真子集t 滿足 s s 其中,s為原始特徵集的大小,s 為選擇後的特徵集大小。選擇的準則是經特徵選擇後能有效提高文字準確率。選擇沒有改變原始特徵空間的性質,只是從原始特徵空間中選擇了一部分重要的特徵,組成乙個...

sklearn之特徵選擇

嵌入法是一種讓演算法自己決定使用哪些特徵的方法,即特徵選擇和演算法訓練同時進行。在使用嵌入法時,我們先使用某些機器學習的演算法和全部特徵對模型進行訓練,得到各個特徵的權值係數,根據權值係數從大到小選擇特徵。這些權值係數往往代表了特徵對於模型的某種貢獻或某種重要性,比如決策樹和樹的整合模型中的feat...

機器學習之 特徵向量選取

本系列介紹機器學習中的在實際應用和理論研究中的一些重要的方向。這些文章能給大家起到拋磚引玉的作用。一些細節或者深入的討論可在每篇博文最後列出的文獻中找到。本篇博文介紹特徵向量選取。在機器學習中,特種向量選取是整個機器學習系統中非常重要的一步。1.特徵向量選取 vs.特徵向量提取 請注意特徵向量的選取...