特征選擇的一般過程:
1.生成子集:搜索特征子集,為評價函數提供特征子集
2.評價函數:評價特征子集的好壞
3.停止准則:與評價函數相關,一般是閾值,評價函數達到一定標准后就可停止搜索
4.驗證過程:在驗證數據集上驗證選出來的特征子集的有效性
1.生成子集
搜索算法有 完全搜索、啟發式搜索、隨機搜索 三大類。
(1)完全搜索
<1>寬搜(Breadth First Search):時間復雜度高,不實用
<2>分支界限搜索(Branch and Bound):其實就是寬搜加上深度的限制
<3>定向搜索(Beam Search):其實算是啟發式的一種,對寬搜加上每次展開結點數的限制以節省時間空間,對於展開那幾個結點由啟發式函數確定
<4>最優優先算法(Best First Search):也是有啟發式函數,對寬搜取最優結點進行展開
(2)啟發式搜索
<1>序列前向選擇(SFS , Sequential Forward Selection)
特征子集X從空集開始,每次選擇能使得評價函數J(X)最優的一個特征x加入,其實就是貪心算法,缺點是只加不減
<2>序列后向選擇(SBS , Sequential Backward Selection)
和SFS相反,從特征全集開始,每次選擇使評價函數J(X)最優的特征x剔除,也是貪心,缺點是只減不增
<3>雙向搜索(BDS , Bidirectional Search)
SFS和SBS同時開始,當兩者搜索到同一個特征子集時停止。
<4>增L去R選擇算法(LRS , Plus-l Minus-R Selection)
形式一:從空集開始,每次加L個特征,去除R個特征,使得J最優
形式二:從全集開始,每次去除R個特征,加入L個特征,使J最優。
<5>序列浮動選擇(Sequential Floating Selection)
該算法由增L去R發展,不同之處在於L和R是會變化的,它結合了序列前后向選擇、增L去R的特點並彌補了缺點。
①序列浮動前向選擇(SFFS , Sequential Floating Forward Selection)
從空集開始,每輪選擇子集x加入使得J最優,再選擇子集z剔除使得J最優。
②序列浮動后向選擇(SFBS , Sequential Floating Backward Selection)
與①相反,從全集開始,先剔除再加入。
<6>決策樹(Decision Tree Method , DTM)
一般使用信息增益作為評價函數,待決策樹生長后再進行剪枝,最后留下的葉子就是特征子集。
(3)隨機算法
<1>隨機產生序列選擇算法(RGSS, Random Generation plus Sequential Selection)
隨機產生特征子集,然后執行SFS或SBS,可作為SFS和SBS的補充,用於跳出局部最優解。
<2>模擬退火算法( SA, Simulated Annealing )
模擬退火可在一定程度上避免陷入局部最優,但是可能難以求解。
<3>遺傳算法(GA, Genetic Algorithms)
首先隨機產生一批特征子集,並用評價函數給這些特征子集評分,然后通過交叉、突變等操作繁殖出下一代的特征子集,並且評分越高的特征子集被選中參加繁殖的概率越高。這樣經過N代的繁殖和優勝劣汰后,種群中就可能產生了評價函數值最高的特征子集。
2.評價函數
用於評價特征子集的好壞,主要分為Filter和Wrapper
(1)Filter
其實就是預處理,利用訓練集自身的特點篩選出特征子集后再送入分類器進行學習,與分類器的選擇無關。
(2)Wrapper
封裝器用選取的特征子集對訓練集進行分類,分類的精度作為衡量特征子集好壞的標准。
常見的評價函數有:
(1)相關性
基於假設:好的特征子集所包含的特征應該是與分類的相關度較高,而特征之間相關度較低
線性相關系數
(2)距離/相似度
基於假設:好的特征子集應該使得屬於同一類的樣本距離盡可能小,屬於不同類的樣本之間的距離盡可能遠
常用相似度計算
(3)信息增益
之前講過了,信息增益體現特征子集的出現對系統信息量的增加。
(4)一致性
若樣本1與樣本2屬於不同的分類,但在特征A、 B上的取值完全一樣,那么特征子集{A,B}不應該選作最終的特征集。
(5)分類器錯誤率
用分類的精度作為評判標准。
對於文本分類的文本特征提取,大都采用Filter方法進行特征提取,無論是基於詞頻的VSM方法還是基於語義的方法,大都是通過計算公式對每個特征項進行打分,
最后選擇得分最高的k項形成特征子集。Wrapper方法用的很少,我自己認為是文本特征項數量巨大,對於上述不斷生成特征子集再去評價實在太慢了,wrapper方法
也是因為效率不高而被舍棄。
注:上述特征選擇常用算法綜述摘自博客 http://www.cnblogs.com/heaad/archive/2011/01/02/1924088.html