張謙 孟月霞 劉聰



摘 要:在智能算法優化分類器參數時,經常采用加權方式將分類率和特征數目作為單目標優化。為提高分類性能和解決權值設定問題,本文提出一種基于MOABC算法的分類器設計,將分類率和特征數目作為兩個優化目標,并通過相關數據進行驗證。結果表明,通過多目標優化可以得出多組最優解,供決策者選擇,并且分類效果明顯優于作為單目標處理時所得的結果。
關鍵詞:MOABC算法;分類率;特征數目
中圖分類號:TP18;TP311.13文獻標識碼:A 文章編號:1003-5168(2020)01-0020-03
Abstract: When the intelligent algorithm optimizes the classifier parameters, the classification rate and the number of features are often used as single target optimization. To improve the classification performance and solve the weight setting problem, this paper proposed a MOABC algorithm. The classifier design took the classification rate and the number of features as two optimization targets, and verified by relevant data. The results show that multiple optimal solutions can be obtained by multi-objective optimization, which can be selected by decision makers, and the classification effect is obviously better than that obtained by single objective processing.
Keywords: MOABC algorithm;classification rate;characteristic number
1 研究背景
隨著社會的不斷發展,通信技術、信息技術和計算機技術不斷強大,出現了大量數據。那么,如何從這些眾多的數據中提取出有價值的數據成為研究者的研究內容,數據挖掘[1]由此產生。數據挖掘的基本理念是:決策者通過從大量數據中提取出的有用信息作為處理問題的判斷依據。
數據分類是數據挖掘中的一個重要分支,分類算法直接影響分類結果。要想得到較好的分類結果,需要構建良好的分類模型。隨著智能算法的不斷發展,基于智能算法的分類器研究越來越多。在數據分類中,為了提高分類效果,主要對分類器參數進行優化;而對于高維數據,為了降低分類難度,通常需要數據中主要特征數。
在以往的研究中,研究者經常會將優化特征子集和分類器參數分開進行,也有少量研究是同步優化特征子集和分類器參數的,并取得了一定的效果[2]。在同步優化參數和特征子集時,智能算法適應度函數選用分類率和特征個數作為最優解的選擇依據,那么要如何確定兩個參數的權重呢?大部分學者是通過實驗法主觀設定,但這種方式會影響結果。為解決參數權重的設定問題并提高分類精度,本文將采用多目標人工蜂群算法對分類器進行設計,將分類率和選擇的特征數目作為兩個目標進行處理。
2 多目標優化問題
在實際應用中,要想得到一個優化問題的最終解,其實包含多個目標,而這些目標函數需要同時進行優化處理,并且選取的目標之間通常是相互矛盾的,這就是多目標優化問題[3]。
當這兩個條件滿足時,對應的[x]是可行解,全部可行解的集合稱為可行解集(可行域)。
多目標問題的解決方式[3]有兩種:一種是通過設定權值將多目標問題轉換成單目標問題,在分類算法中,通常將智能算法優化后參數的分類率和特征個數用加權方式合為單目標問題,但是,當權值發生變化時,就需要重新運算,并且權值大多是無法預判的;另一種方法是采用一組互不支配的解集,然后根據實際情況最終做出決策。本文主要采用多目標人工蜂群算法(Multi-objective Artificial Bee Colony,MOABC)將分類率和特征個數作為兩個目標處理,最終應用到具體數據分類中得到一組最優解。
3 MOABC算法
在MOABC算法中,主要明確以下兩點。①對解的評價:由于多目標優化得到的是一組解集,因此根據Pareto支配關系[4]保留最優解;②最優解的保存和更新方式:將求得的最優解保存起來,每次循環都對已存在的解進行更新,從而去除不好的解,保留優解。同時,保存解集的內存要限制大小,從而減少計算量,并通過擁擠距離控制解的數量。
MOABC算法的步驟如下。
第一步,初始化。明確待優化的參數,并設置參數的上下限,根據公式(2)完成種群初始化,并依據Pareto支配原則,找到初始優解保存到解集空間中。
第四步,尋找新解。當搜尋次數達到[Limit]次并且結果無變化時,就選擇拋棄,并根據公式(2)生成新的蜜源。
第五步,外部解集更新。當新解被舊解支配時,則不會加入外部解集;當新解支配舊解時,新解則會替換掉舊解;新解與舊解互不支配時,新解直接歸入解集。外部檔案的大小有限制,因此,需要通過擁擠距離對外部檔案中的解進行排序,進而保存最優解,并確保外部檔案的大小。
在求第[i]個個體的擁擠距離時,應將每個目標函數值從小到大排列,并將兩端設為無窮大,而中間個體的距離按照公式(5)計算,最后,各個目標函數的擁擠距離之和即為總體擁擠距離。
4 MOABC分類算法的實現
本文采用SVM(支持向量機)分類算法。為了提高分類性能,優化的參數主要是懲罰因子[C]、核函數參數[γ]和特征數目。其中,特征數目按照實際操作時數據庫的數目來定。由于本文是將特征選擇和分類率作為兩個目標來處理,因此,適應度函數包含兩個,分別是[fitness1=svm_accuracy]和[fitness2=feature number]。具體運用MOABC算法優化分類率和特征數目的流程如圖1所示。首先將輸入的數據進行[0,1]歸一化處理,方便之后的數據分類操作;然后將數據分為測試集和訓練集,為了保證分類模型的準確性,通常測試集的數目居多,并且要包含每一類數據,接著運用訓練集通過MOABC算法對模型進行尋優,通過迭代找到較優的參數和特征數的集合,然后用于測試集進行測試。MOABC算法具體尋優操作如圖2所示。
5 仿真結果與結論
在MATLAB界面下編寫M文件,并結合LIBSVM工具箱將UCI數據庫的數據進行分類測試。在測試時,將數據分為訓練集和測試集,訓練集用于優化特征子集和參數,而測試集用于驗證。本文選用兩組數據進行驗證。圖3是多目標優化算法得出的一組解集,表1是兩組數據對應的分類結果集,表2是將分類率和特征數目作為單目標處理時所得到的結果。
由分類結果可以看出,由多目標人工蜂群算法構成的分類器,不僅可以避免在單目標處理時設置權值的問題,同時能得到較優的分類效果,并且從表1可以看出,多目標分類器設計可得到多組最優解,決策者可根據實際需要選擇相應的結果。通過與表2對比可以看出,使用多目標優化算法使訓練集和測試集的結果相差不大,特征數目也比單目標處理時得到的少。
參考文獻:
[1]Jiawei Han,Micheline Kamber,JianPei,et al.數據挖掘:概念與技術[M].北京:機械工業出版社,2012.
[2]Zhang Y,Gong D,Hu Y,et al. Feature selection algorithm based on bare bones particle swarm optimization[J]. Neurocomputing,2015(148):150-157.
[3]張長勝.多目標人工蜂群算法及遺傳算法的研究與應用[M].沈陽:東北大學出版社,2013.
[4]胡恒,高鷹.多目標人工蜂群算法研究[J].福建電腦,2013(10):66-69.