量子化信息素蚁群优化特征选择算法
生活随笔
收集整理的這篇文章主要介紹了
量子化信息素蚁群优化特征选择算法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
近年來,許多涉及信息的領域中產生了包含眾
多特征的高維數據,然而并不是所有特征都是重要
的。許多特征甚至是不相關或冗余的,這不僅使數
據處理過程變得困難,還降低了學習算法的效率,
如分類算法等學習算法的性能[1]。特征選擇旨在利
用一種選擇策略,消除不相關和冗余的特征,找到
最佳特征子集[2]。
根據選擇策略的不同,特征選擇方法可以分為
三類:過濾式方法、包裹式方法和嵌入式方法[3]。
過濾式:過濾式方法不依賴于任何的學習算法。
它們依靠訓練數據的一般特性(如類間距離或統計
依賴關系)來選擇特征[4]。這種方法具有很高的計
算效率。然而過濾式方法由于缺少具體的學習算法
指導特征選擇階段,選擇出來的特征對于目標學習
算法而言可能并不是最優的。
包裹式:不同于過濾式方法,包裹式方法在評
價特征子集時,會檢測特征變量間可能的相互作用
[5]。此外,包裹式方法在評價特征子集時會根據不
同的問題選擇不同的學習模型,因此,這種方法對
于某種學習模型往往更容易找到好的結果。
嵌入式:嵌入式方法將學習算法與特征選擇部
分進行結合,這類方法所考慮的函數模型的結構在
其中起重要作用[6]。但是對于嵌入式方法而言,建
立合適的函數優化模型往往是一項艱巨的任務[7]。
特征選擇是一個復雜的問題,對于一個有 n 個
特征的數據集,可能的解決方案的總數是 2n-1[8],
其搜索空間十分龐大。因此,用窮舉搜索選擇一組
最優特征的時間復雜度是 O(2n) [9],這在大多數情況
下是不切實際的。與傳統方法相比,基于演化算法
的特征選擇方法更適合于解決這種問題。
本文設計了一種基于隨機二元蟻群網絡的特征
選擇方法,更換了啟發式因子的計算方法,并提出了一種新的信息素更新思路,將整體的信息素量子
化,賦予每個信息素生命周期,形成了量子化蟻群
特征選擇算法(QPACO)。本文的其余部分如下:
第一部分介紹相關工作,第二部分介紹基于 QPACO
的特征選擇方法,第三部分展示實驗結果并分析,
第四部分總結。
1 相關工作
近年來,基于演化計算的特征選擇算法受到了
廣泛研究,Xue 等人在文獻中指出,最近已經有超
過 500 篇的基于演化計算的特征選擇算法發表[1]。
1.1 基于演化算法的特征選擇算法
基于演化計算的特征選擇算法的研究近年來取
得了較為令人滿意的結果。如 Rashedi 等人提出了
通過增強傳遞函數克服停滯問題的 IBGSA[10],
IBGSA 將二進制向量每個位與一個特征相關聯,通
過尋找最優二進制向量找到特征選擇的最優解;
Chuang等人在二元粒子群算法BPSO中引入鯰魚效
應提出了 CatfishBPSO[11],CatfishBPSO 將局部最優
中的粒子通過鯰魚效應引導到新的搜索空間,同時
使用種群中最差的適應值替換 10%的原始粒子,最
終避免了局部最優,進一步獲得了更好的解;Il-Seok
等人提出了一種新的混合遺傳特征選擇算法
BGA[12],他們在該算法中設計局部搜索操作并將其
加入 GA 中以微調搜索過程,這種操作會根據其微
調效率進行參數化,并分析和比較它們的有效性和
時序性要求。
1.2 基于蟻群算法的特征選擇
本文主要討論基于蟻群算法的特征選擇算法。
蟻群優化(ACO)是 Dorigo 等人提出的一種演化算
法[13]。螞蟻之間的通信會產生正反饋行為,引導蟻
群收斂到最優解。蟻群路徑上分布的信息素模擬了
真實螞蟻所經過的路線上的化學物質[14]。
蟻群算法(ACO)解決特征選擇的主要思想是
將問題建模為求解搜索圖的最小成本路徑問題,創
建一個包含節點的搜索空間并設計一個程序來尋找
解決方案的路徑,螞蟻的路徑表示特征的子集。
ACO 基于信息素和啟發式信息計算螞蟻選擇解路
徑的轉移概率。Chen 等人使用這種類型的 ACO 進
行特征選擇,提出了 ACOFS[15],ACOFS 中使用了
F-score 標準作為啟發式值,但采用了不同的信息素
更新策略;Kashef 等人提出了一種優化的二進制蟻
群算法 ABACO[16],該算法的不同之處在于每個特
征都有兩個節點,一個節點用于選擇,另一個用于
取消選擇相應的特征,最優特征子集是滿足遍歷停
止條件的最小節點數的螞蟻遍歷圖。
與上述蟻群特征選擇算法相比,本文提出的
QPACO 算法,采用了新的啟發式因子的計算方法,
改變了傳統的信息素的更新策略,避免了搜索特征
時的局部最優,提高了特征選擇的精度。
2 QPACO 算法
2.1 基于蟻群的特征選擇算法
基于蟻群的特征選擇算法首先構造了由 n 個特
征組成的有向圖,算法假設螞蟻在初始時刻被隨機
放置在 n 個特征節點中,并維護一張禁忌列表記錄
每只螞蟻已經訪問過的節點,每條邊的信息素 i, j τ 初
始值為 0,螞蟻依據邊上的信息素計算在 t 次迭代
時,螞蟻 k 從特征 i 移動到特征 j 的概率(公式 1):
其中,S 是螞蟻 k 的禁忌列表;α 是信息啟發
因子;β 是期望啟發式因子,用于分配啟發式信息
和信息素濃度的權重;ηi, j 是啟發式信息,通常計
算為(公式 2):?
y 之間的邊
(ix,jy)上的信息素;ηix, jy 反映了邊
緣(ix,jy)可取性的啟發式信息;α 和
β 是確定信息素值和啟發信息的兩個參
數。
(7) q 為信息素模擬消失常量, old τ 為原來的
信息素值, new τ 為更新后的信息素值,
?τ 為信息素變化量。
(8) dead τ 為在該次迭代中生命周期結束的信
息素量,其余符號意同公式(7)。
(9)
∑?
m
τ 為該條路徑上所有的螞蟻所留下
的信息素總和, k ?τ 為該條路徑在本次
迭代(k 次迭代)時的更新量, k -cnt ?τ 為
cnt 次迭代前該條路徑上的信息素更新
量,需注意這三者間的區分。cnt 變量即
為我們最初所說的信息素單元的生命周
期。
(10)
c 是類別的數目,N 是特征的數目; k Ni 是
k(k=1,2,…,C)類中的特征 i(i=1,
2,…,n)的樣本數;
k
ij x
是 k 類中的特
征 i 的 j(j=1,2,…, k Ni )次訓練樣本;
i x 是所有類的特征 i 的平均值; ki x 是 k
類中樣本的特征 i 的平均值
(11)
n 是特征的總數,變量 ξ 是(0,1)的常數。
表 2 QPACO 偽代碼
Table 2 Pseudo code of QPACO
Algorithm QPACO(dataset, dataclass, t_per,
iteration)
輸入:數據集、數據集類別、數據訓練分割百分
比、迭代次數(dataset, dataclass, t_per, iteration)
輸出:擁有最高適應度的最優特征子集1. Procedure QPACO
2. 檢驗讀入數據
3. 初始化 alpha, beta, T0=0, MinT, MaxT(信息素
值的上下限)
4. 置信息素初 tau 是值為 T0
5. for i=1 to iteration do
6. 運用公式 10 和 11 計算啟發式信息
7. 運用公式6計算每只螞蟻在每條路上的選擇概
率
8. 運用公式 9 更新信息素 tau
9. 記錄 tau 的更新量 delta_tau
10. 評估構造子集并選擇局部最優和全局最優子
集
11. End for
12. 返回擁有最高適應度的最優特征子集
3 實驗結果與分析
3.1 實驗數據與對比算法
我們從 UCI 數據庫中選擇了一些典型的數據集
對算法進行驗證。表 3 列出了這些數據集的名稱、
分類數、特征數、樣本數。
為了更好的展現算法的可比性,我們選擇了一
些具有代表性的特征選擇算法與我們的算法進行比
較,其中包括 Catfish BPSO[11]、二元遺傳算法(BGA)
[12]、改進二元引力搜索(IBGSA)[10]、基于蟻群的
特征選擇算法 ACOFS[15]和 ABACOH [18]、較新穎高
效的改進的森林優化特征選擇算法 IFSFOA[19]和二
元蝴蝶優化特征選擇算法 S-bBOA[20]等。
3.2 實驗環境、評估指標及實驗參數
3.2.1 實驗環境
實驗中,我們使用了 python 3.6 實現了我們的
算法,同時使用了公開的工具包 scikit-learn。所有
實驗均在一臺配置為 Intel Core i5-4210H(CPU)、
8G 內存、1TB 硬盤的電腦上完成。
3.2.2 評估指標
在本實驗中,我們使用分類精度(accuracy)、精
確率(precision),召回率(recall)和維度縮減率
(feature-reduction, fr)來評估我們所提出的算法性
能。
分類精度(accuracy),即正確分類的樣本數和測
試集的總樣本數的百分比,其定義如下(公式 12):
( )
測試集的總樣本數
正確分類的樣本數 分類精度 = 12
精確率(precision)和召回率(recall)如下(公式
其中,TPi 是第 i 類下正確分類的測試樣本數;
FPi 第 i 類下錯誤分類的測試樣本數;TNi 是在其
他類別下正確分類的測試樣本數;FNi 是在其他類
別下錯誤分類的測試樣本數。
定義維度縮減率(feature-reduction, fr)如下(公
式 15):
(15)
nn
- p
Fr =
其中,n 是總特征數,p 是算法所選擇的特征數。
3.2.3 算法參數設置
在 QPACO 與其他算法的對比實驗中,我們統
一設置了算法的一些參數,它們的設置為:所有算
法的種群數量和迭代次數為 50;在每次實驗中,
60%的樣本隨機選擇進行訓練,剩下 40%的樣本用
于測試;實驗結果在每個數據集和算法中獨立運行
超過 20 次,最后統計平均值;蒸發系數 ρ 為 0.049;
每條路徑上的最小和最大信息素強度分別設定為
0.1 和 6;每個邊緣的初始信息素強度設定為 0.1;α
和 β 是決定信息素和啟發信息的相對重要性的兩個
參數,我們設 α=1,β=0.5;在分類器的選擇上,我
們使用了 K 近鄰(KNN)分類器作為基分類器。
之所以使用 KNN 是因為它是一個通用簡便的分
類方法,并且由于 KNN 分類器相較于其它分類
器來說,并不需要調整過多的參數,因此較容易
進行對比實驗來驗證特征選擇算法的性能。最近提出的許多特征選擇,也都只使用了 KNN 作為
唯一的基分類器[21-23] 。在實驗中我們將參數 K 設
置為 1。
3.3 實驗結果與分析
3.3.1 實驗結果
為了確保對比實驗的準確性,表 4 與表 5 中的
部分數據結果采用了文獻[18]中公開發表的實驗結
果,表 4 是 QPACO 與其對比算法在不同數據集上
的分類精度的對比,括號中的數字表示了在各個數
據集上每種算法性能的排名。表 5 是 QPACO 與其
對比算法在不同數據集上的精確率、召回率及維度
縮減率的對比,最后一列為每個算法在所有數據集
上的指標和,和越大說明算法總體性能越好。
3.3.2 實驗分析
QPACO 在時間效率上是基本等同于二進制蟻
群算法的,在算法的改進過程中,計算和記錄每次
信息素的更新量,以及查找生命周期結束信息素量
的時間復雜的都是 O(1)的,因此時間上的開銷差距
并不明顯,所以本文遵從了相關的基于演化計算的
特征選擇方法的實驗設計模式,并未采用時間效率
來衡量算法性能[18-24],但計算了其它常用的評估指
標進行算法間的對比。
對比分類精度,在表4中我們不難看出,QPACO
在 Glass,Iris,Letter,Shuttle,Spambase,Waveform,
Wisconsin 這些數據集上均位居第一,在 Tae,Wine
和 Yeast 上位居第二,只在 Vehicle 上稍顯遜色。因
此 QPACO 在分類精度上有了很明顯的提升。通過
對比表 5 中的精確率、召回率以及維度縮減率,我
們發現 QPACO 算法在大多數情況下精確率和召回
率都略高于其他算法,且維度縮減率維持在平均水
平以上。
表 4 QPACO 及其對比算法的平均分類精度對比
5.4784 總 結
本文提出了基于傳統蟻群算法和二進制蟻群
算法的量子化蟻群特征選擇算法 QPACO。QPACO
中將信息素量子化,賦予每個信息素單獨的生命周
期,同時修改了啟發式因子的更新方式,增強了算
法的搜索能力。經過 11 個數據集和 12 個特征選擇
算法的對比實驗,驗證了 QPACO 良好的性能。如
何在高維數據集中應用 QPACO 進行特征選擇問題
的求解,將是下一步重點研究的內容。
總結
以上是生活随笔為你收集整理的量子化信息素蚁群优化特征选择算法的全部內容,希望文章能夠幫你解決所遇到的問題。