王丹雨,劉 昊,丁桂艷
(遼寧科技大學(xué) 理學(xué)院,遼寧 鞍山 114051)
電魚優(yōu)化算法(Electric fish optimization algorithm,EFO)是由Yilmaz等[1]在2019年提出的元啟發(fā)式算法,其靈感來源于電魚的獵物位置和通信行為。該算法因簡單且易于實現(xiàn)而受青睞。為了進一步提升EFO算法的性能,一些改進算法應(yīng)運而生。例如,Kowdiki等[2]在2021年提出的EWOA算法,通過混合EFO和鯨魚優(yōu)化算法(Whale optimization algorithm,WOA)來增強手勢的分割 和 分類。Ibrahim等[3]在2021年提出 的
EFOAOA(Electric fish optimization algorithm arithmetic optimization algorithm,EFOAOA)算法能以高精度和高效率識別最重要的特征。
正交設(shè)計(Orthogonal design,OD)是一種實驗性設(shè)計,其可以通過相對少量的實驗找到不同因子的最佳組合水平[4]。Zhang等[5]于1996年提出正交交叉(Orthogonal crossover,OX),該方法將遺傳算法(Genetic algorithm,GA)的一些主要步驟視為“實驗”,并且使用實驗設(shè)計方法設(shè)計遺傳算子。OX運算可以在方案定義的區(qū)域中執(zhí)行系統(tǒng)搜索。為了解決連續(xù)變量的全局數(shù)值優(yōu)化問題,Leung等[6]在2002年提出一種量化技術(shù)來補充正交設(shè)計。
特征選擇(Feature selection,F(xiàn)S)是模式識別中關(guān)鍵的數(shù)據(jù)預(yù)處理步驟,常用于解決高維數(shù)據(jù)集問題。FS具有提高預(yù)測模型的計算效率、降低任務(wù)難度、減少特征數(shù)量等優(yōu)勢。因此,F(xiàn)S已經(jīng)成為機器學(xué)習(xí)的研究熱點,并廣泛應(yīng)用于不同領(lǐng)域,如人體動作檢測[7]、文本分類[8]、COVID-19 CT圖像分類[9]、數(shù)據(jù)分析問題[10]等。近年來,元啟發(fā)式算法被廣泛應(yīng)用于FS。例如,吳曉燕等[11]提出一種基于樽海鞘群與粒子群混合優(yōu)化算法的特征選擇方法;林煒星等[12]提出對稱不確定性和粒子群的高維特征選擇算法來解決特征選擇問題。
針對現(xiàn)有的特征選擇方法存在計算效率低和收斂速度慢等不足,本文提出二進制正交電魚優(yōu)化(Binary quantization orthogonal crossover electric fish optimization,BQOXEFO)特征選擇方法。首先,通過二進制機制描述特征,并構(gòu)造基于分類精度和所選特征數(shù)量的適應(yīng)度函數(shù),同時,采用K最近鄰分類器(K-nearest neighbor,KNN)對數(shù)據(jù)進行分類。其次,通過在EFO中引入帶有量化的正交交叉策略提高算法的收斂速度和精度。第三,采用動態(tài)邊界機制來提高算法的收斂速度。第四,使用基于正弦的主動電定位更新策略,通過改變其移動方向幫助個體跳出局部最優(yōu)。通過對比實驗驗證該算法的性能。
首先,在dim維度搜索空間中隨機初始化N個個體構(gòu)成初始種群
個體在第t代的頻率值ft g是一個關(guān)于適應(yīng)度值的函數(shù)
式中:fmin和fmax分別表示最小和最大的頻率值;分別是個體在第t代的最差和最佳適應(yīng)度值;fitt
g則是第g個個體在第t代的適應(yīng)度值。
第g個個體的振幅值(Ag)計算式其中,α∈[0,1]是確定先前振幅值大小的常數(shù),在本文中α=0.989。
在EFO算法中,有效范圍的計算式
個體g和個體m之間的距離通過笛卡爾距離計算
在主動電定位區(qū)域中,個體至少有一個鄰居的情況下,EFO算法位置更新方式否則(即S=?),EFO算法位置更新方式
式中:m表示從第g個個體的鄰居集合中隨機選擇的一個個體(即m∈S且Dgm≤rg);φ∈[-1,1]為一個服從均勻分布的隨機數(shù)為第g個個體的侯選位置為第m個個體的位置;為第g個個體的當前位置。
計算第m個(即m∈NP)處于被動模式個體感知到第g個(即m∈NA)處于主動模式個體的概率
此處采用輪盤賭的方式,根據(jù)式(8)從NA中
選擇M個個體,確定其參考位置
并生成其新的位置
為了避免頻率較高的個體執(zhí)行被動電定位的情況發(fā)生,該算法確定要修改的參數(shù)
其中,randd(0,1)是服從均勻分布的隨機數(shù)。
為了增加種群的多樣性,被動電定位的最后一步是修改第g個個體的參數(shù)
其中,rand1(0,1)和rand2(0,1)均為服從均勻分布的隨機數(shù)。
如果個體超出搜索空間的邊界,則將會對其進行越界處理
2.1.1 特征初始化 BQOXEFO進行初始化參數(shù),并生成特征選擇問題的初始種群。在計算目標函數(shù)之前,將每個解向量轉(zhuǎn)換為僅包含0和1的二進制形式
其中,1表示該特征被選擇,0表示不相關(guān)的特征而被忽略。
2.1.2 適應(yīng)度函數(shù) 計算每個解的適應(yīng)度函數(shù),隨后執(zhí)行更新個體的過程,直到達到停止條件。適應(yīng)度函數(shù)由兩個客觀指標所構(gòu)成,即分類的精度和所選特征的數(shù)量,并設(shè)置權(quán)重,計算式
式中:ACC是通過正確分類的實例數(shù)量除以實例總數(shù)計算得到的分類精度,ACCmax為m次重復(fù)實驗中精度最高的一次;Lf為所選特征子集的長度;Lt為特征總數(shù);ωf為權(quán)重因子,其值在(0,1)之間。ωf是控制分類精度和選擇特征數(shù)量的重要權(quán)重,權(quán)重因子通常設(shè)置為接近1的值[13],本文將ωf設(shè)置為0.8。
本文使用K分類器,其中k=3。KNN算法是數(shù)據(jù)挖掘分類技術(shù)中最簡單的方法之一,每個樣本都用它最接近的k個鄰居來代表,而不是靠判別類域的方法確定所屬類別,對于類域交叉或重疊較多的待分樣本集來說,KNN方法較其他方法更為適合。
將量化技術(shù)和正交交叉設(shè)計應(yīng)用于EFO算法,從而提高EFO算法的搜索能力。在BQOXEFO的每一代中,只選擇一個個體執(zhí)行一次QOX(Quantization orthogonal crossover)策略,以節(jié)省計算成本。通過正交交叉操作,一個個體可以生成9個候選解,并且在整個種群中找出并替換比生成的9個候選解差的9個解,這不僅有助于增強種群的多樣性,還可以提高算法的收斂速度。將此策略分別添加在主動電定位、被動電定位和整體的更新式中,實驗結(jié)果表明,添加到整體階段可以實現(xiàn)該策略的優(yōu)勢最大。
將此策略添加到算法的整體階段,位置更新公式
式中:rand表示(0,1)區(qū)間上服從均勻分布的隨機數(shù);Xnew為新候選解的位置;s1,s2,s3分別為隨機選擇的三個個體,其中,s1,s2,s3∈(1,N);Xs1,Xs2,Xs3分別為第s1,s2,s3個體對應(yīng)的當前位置。
為了提高算法的收斂速度,采用動態(tài)邊界機制,分為主動電定位的動態(tài)邊界和被動電定位的動態(tài)邊界。首先,在主動電定位中,將下邊界更改為總體的每個維度的最小值,上邊界更改為總體的每個維度的最大值
其次,在被動電定位中,將下邊界更改為全局最優(yōu)解的最小值,上邊界更改為全局最優(yōu)解的最大值
基于正弦的主動電定位更新策略用于幫助個體通過改變其移動方向而跳出局部最優(yōu)。在主動電定位區(qū)域中至少存在一個鄰居的情況下,BQOXEFO算法使用公式(21)更新其位置;否則(即S=?),使用公式(22)。
其中,m表示從第g個個體的鄰居集合中隨機選擇的一個個體(即m∈S和Dgm≤rg)。
步驟1:初始化種群N并將每個搜索個體轉(zhuǎn)換為二進制;計算出對應(yīng)的適應(yīng)度值。
步驟2:初始化頻率f和振幅A,并根據(jù)頻率值確定個體執(zhí)行主動電定位或被動電定位。
步驟3:主動電定位階段:通過式(6)(7)(17)(18)(21)(22)等更新個體的位置信息并將其二進制化。
步驟4:被動電定位階段:通過式(9)(10)(19)(20)等更新個體的位置信息并將其二進制化。
步驟5:計算所有個體的適應(yīng)度值。
步驟6:基于量化的正交交叉策略:執(zhí)行QOX策略。
步驟7:若不滿足終止條件,返回步驟3。否則終止算法,輸出最優(yōu)解。
選用UCI機器學(xué)習(xí)庫[14]中的5個基準數(shù)據(jù)集進行測試,數(shù)據(jù)集信息見表1。所采用的數(shù)據(jù)集中都不存在缺失值。
表1 數(shù)據(jù)集信息Tab.1 Dataset information
為了驗證BQOXEFO算法的性能,將其與4種算法進行比較,其中包括原始的EFO算法和3種進化算法:OSA(Owl search algorithm)[15]、PSO(Parti-cle swarm optimization)[16]和SOS(Symbiotic organisms search)[17]。所有算法采用相同的固定參數(shù),種群規(guī)模設(shè)置為50,每種算法獨立運行10次,最大計算次數(shù)設(shè)置為3 000次。
BQOXEFO與其他算法在數(shù)據(jù)集上的對比結(jié)果呈現(xiàn)在表2中。將算法多次運行后的平均值(Mean)、標準差(Std)、最大值(Max)和平均特征選擇數(shù)(ASS)分別作對比。其中ASS的計算式
表2 BQOXEFO與其他算法的實驗結(jié)果Tab.2 Experimental results of BQOXEFO and other algorithms
式中:length(X*)為所選的特征子集的長度;R為算法在每個數(shù)據(jù)集上的重復(fù)運行的次數(shù)。
算法按均值從最好到最差進行排序。均值越大,排名越好。如果多個算法具有相同的性能,則這些算法的排名相同。
BQOXEFO在5個數(shù)據(jù)集中均排名第一,最終在整體上排名第一。從平均值和最大值分析,BQOXEFO在5個數(shù)據(jù)集中均為最優(yōu)秀的。從標準差分析,BQOXEFO在大部分的數(shù)據(jù)集中都表現(xiàn)出極好的穩(wěn)定性。BQOXEFO在每一個測試集上的ASS值都是1,這意味著BQOXEFO的降維能力很優(yōu)秀,還能保證精度。
5種算法對于D1和D2數(shù)據(jù)集的收斂曲線如圖1所示。BQOXEFO的收斂曲線均在其他算法上方,收斂速度最快。這表明BQOXEFO的收斂速度和收斂精度都有顯著優(yōu)勢。
對算法進行Wilcoxon符號秩檢驗(Wilcoxon rank sum test,WRST),主要分析BQOXEFO與其他4種算法之間的顯著差異,結(jié)果見表3。其中‘H+’代表正的秩和,‘H-’代表負的秩和;P值(Probability value,P_value)用于檢測兩個算法是否有明顯差異,獲勝者(winner)用于記錄BQOXEFO與其他算法的差異。當P_value≥0.05時,說明兩個算法無明顯差異,將winner標記為‘=’;當P_value<0.05、H+>H-時,表示在5%的顯著性水平下BQOXEFO相比于其他算法的收斂性能有明顯優(yōu)勢,winner記為‘+’;當P_value<0.05、H+<H-時,表示在5%的顯著性水平下BQOXEFO的收斂性能弱于對比算法,winner記為‘-’。計算結(jié)果表明,BQOXEFO比任何一種算法都要優(yōu)秀,有極大的優(yōu)勢。
表3 五種算法的WRST對比結(jié)果Tab.3 WRST comparison results of five algorithms
本文提出二進制正交電魚優(yōu)化BQOXEFO特征選擇方法。首先,通過二進制機制來描述特征,并構(gòu)造基于分類精度和所選特征數(shù)量的適應(yīng)度函數(shù),同時,采用KNN對數(shù)據(jù)進行分類。其次,通過在EFO中引入帶有量化的正交交叉策略來提高算法的收斂速度和精度。第三,采用動態(tài)邊界機制來提高算法的收斂速度。第四,使用基于正弦的主動電定位更新策略,通過改變其移動方向幫助個體跳出局部最優(yōu)。最后,通過UCI數(shù)據(jù)庫中的5個基準數(shù)據(jù)集驗證BQOXEFO算法的性能。BQOXEFO和4種對比算法的仿真實驗和統(tǒng)計分析結(jié)果表明,BQOXEFO算法具有更好的收斂性能,能夠以更少的特征數(shù)量使分類精度最大化。