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