楊智翔 李茂媛
摘 要:針對傳統(tǒng)支持向量機模型對高維數據分類準確率低、計算量大的問題,本研究設計并實現了灰狼算法(GWO)與套索算法(LASSO)相結合的支持向量機模型,即GSL算法,并將其應用到高維數據診斷中。結果表明,利用GSL算法進行高維數據進行分類具有更高的準確率、更小的誤差,能選擇出性能更優(yōu)的參數。
關鍵詞:灰狼尋優(yōu)算法;支持向量機;參數優(yōu)化
中圖分類號:TP18 文獻標識碼:A 文章編號:1003-5168(2021)29-0019-04
Application of Support Vector Machine Model Based on Gray
Wolf Algorithm and LASSO Algorithm in High-Dimensional Data Diagnosis
YANG Zhixiang LI Maoyuan
(School of Electronic & Information Engineering, Chongqing Three Gorges University,Chongqing 404020)
Abstract: Aiming at the problems of low accuracy and large amount of calculation of traditional support vector machine model for high-dimensional data classification, this study designs and implements a support vector machine model based on the combination of Gray Wolf algorithm (GWO) and lasso algorithm (LASSO), that is, GSL algorithm, and applies it to high-dimensional data diagnosis. The results show that the proposed GSL algorithm has higher accuracy, less error and can select better parameters for high-dimensional data classification.
Keywords: support vector machines;grey wolf optimize;parameter optimization
圖像識別、自然語言處理等機器學習方法不斷發(fā)展,對目前存在的特征降維算法及機器學習模型分類模型算法構成了嚴峻的挑戰(zhàn)。目前,高維算法存在計算量大、信息冗余等問題。因此,迫切需要在處理高維數據集的同時擁有高效率及高準確率的算法模型。
高維數據集類型復雜,所以試驗人員在對數據集進行預處理(如人工標記、篩選等)和對高維數據進行標記及篩選時,往往需要花費大量的時間及精力。在分類問題中,經常會出現特征向量的維度高于可獲得的訓練樣本的現象。在多數情況下,只有一部分特征對分類是有意義的,其余數據集拿來訓練反而會影響模型的分類訓練效果,因此在使用分類器對高維數據進行分類前,往往需要先對數據集進行降維,然后使用分類器進行分類。除了分類問題外,其他模型也需要對高維數據進行降維,然后進一步進行數據分析處理。常見的特征降維方法包括變量重組和特征提取。
目前,關于特征降維的研究較多。TANG T基于聚類方法來選擇滾動軸故障診斷原始特征集的重要子集[1]。董玉璽等人將皮爾遜相關系數和有向圖符號相結合,以提取特征子集[2]。在高維數據降維方面,往往采用特征提取的方法。目前,特征提取比較常用的方法有主成分分析法(Principal Component Analysis,PCA)、局部線性嵌入算法(Locally Linear Embedding,LLE)。這些算法需要人為指定篩選后的特征數量,缺陷是用戶需要對數據集特征有一定的先驗知識,以對數據特征進行比較。筆者使用套索算法(Least Absolute Shrinkage and Selection Operator,LASSO)算法來對高維數據進行降維,該算法的優(yōu)點是能更好地找出數據集中重要的特征。將經特征提取后的數據用于機器學習模型的訓練通常能取得更好的效果。目前,在機器學習的應用中,幾乎所有模型都需要對參數進行優(yōu)化,以提高模型的準確率。參數優(yōu)化比較常見的方法有粒子群算法(Particle Swarm Optimization,PSO)[3]、遺傳算法(Genetic Algorithm,GA)[4]、人工蜂群算法(Artificial Bee Colony,ABC)[5]。粒子群算法(PSO)對目標函數僅能提供極少搜索最優(yōu)值的信息,在其他算法無法辨別搜索方向的情況下,粒子群算法(PSO)的粒子具有飛越性的特點,使其能跨過搜索平面上信息嚴重不足的障礙,飛抵全局最優(yōu)目標值,但有時粒子群在俯沖過程中會錯失全局最優(yōu)解。粒子飛翔過程中的俯沖動作使搜索行為不夠精細,不容易發(fā)現全局最優(yōu)目標值,所以對粒子的最大飛翔速度進行限制既是為了使粒子不要沖出搜索區(qū)域的邊界,也是為了使搜索行為不至于太粗糙。最重要的是,粒子群算法(PSO)是一種概率算法,算法理論不完善,缺乏獨特性,理論成果偏少。使用遺傳算法(GA)優(yōu)化參數,其優(yōu)化結果與初始條件無關,算法獨立于求解域,具有較強的魯棒性;但是,存在收斂速度慢、局部搜索能力差、需要控制的變量多、無確定的終止準則等問題。人工蜂群算法(ABC)同樣具有陷入局部最優(yōu)解的情況。
使用灰狼算法(Grey Wolf Optimizer,GWO)對參數進行優(yōu)化,該算法具有步驟簡單、需要調整的參數少、收斂速度快、能跳出局部最優(yōu)解的優(yōu)點。綜上,筆者提出了基于灰狼優(yōu)化算法的優(yōu)化LASSO與支持向量機參數的學習框架。該框架結合了GWO參數優(yōu)化算法與LASSO特征選擇模型和支持向量機(Support Vector Machin,SVM)分類器(GWO-SVM Based on LASSO, GSL)。為了驗證所提出的學習框架用于高維數據的準確性與高效性,采用電子病歷數據集進行測試,并與一些相關方法進行對比。結果表明,GSL方法能夠有效地提高準確率,降低計算量。
1 理論框架
支持向量機是一種二分類算法模型,其核心思想是構建一個最大間隔面,將數據劃分到最大間隔面的兩端,從而達到分類的目的。在使用支持向量機進行分類的過程中,需要人為調節(jié)參數大小。在特征維度較復雜的數據集上,支持向量機分類模型需要選用高斯核函數對數據集進行升維處理,因此在使用支持向量機進行分類的過程中,有必要對高維數據進行降維處理。支持向量機參數的選擇決定了分類效果,所以要對支持向量機的參數進行優(yōu)化。
為了獲得高準確率與效率的分類模型,基于LASSO特征選擇模型及SVM分類模型,并用GWO算法優(yōu)化相關參數,提出了GSL的高維數據分類框架。使用該學習框架進行高維數據分類主要包括以下步驟:①將得到的試驗數據進行適當預處理,最終得到含有440條并且維度為46的特征矩陣;②將經過預處理的試驗數據投入訓練模型中,并且使用GWO算法得到相關的最優(yōu)參數;③將第二個步驟得到的參數作為模型參數;④將試驗數據輸入支持向量機分類器進行訓練分類。
2 基于灰狼優(yōu)化套索向量機的高維數據分類模型
2.1 模型參數
在高維數據分類領域,相關研究采用決策樹來作為分類器,其核心思想是通過遍歷整個決策樹,使測試集數據找到決策樹中葉子節(jié)點對應的類別標簽。而較多研究使用支持向量機作為分類器,并且試驗結果優(yōu)于決策樹,所以筆者采用支持向量機作為分類器。
式中:a為求解參數有關的拉格朗日乘子;?(x,x)為核函數,選擇合適的核函數可以提高模型的分類效果。其中,高斯核可以解決線性與非線性兩類問題,因為高維數據類型之間存在一定的隨機性與非線性,所以選用高斯核函數作為支持向量機的核函數。高斯核函數如式(2)所示,可以通過調節(jié)高斯核函數的半徑[δ]得到分類效果更好的模型。
由于原始數據的特征維度較大,需要對原始數據進行特征篩選。使用套索算法(LASSO)對數據進行特征篩選,LASSO回歸的特點是無論數據的因變量是連續(xù)的還是離散的,其都能處理。此外,LASSO對數據的要求極低,所以應用程度較廣;LASSO還能對變量進行篩選,降低模型復雜程度。這里的變量篩選不是把所有變量都放入模型中進行擬合,而是有選擇地把變量放入模型,從而得到更好的性能參數。復雜度調整是指通過一系列參數控制模型的復雜度,從而避免過度擬合。對線性模型來說,復雜度與模型的變量數有直接關系,變量數越多,模型復雜度越高。較多變量在擬合時往往可以給出一個看似更好的模型,但同時也面臨過度擬合的危險。LASSO的基本思想是在回歸系數的絕對值之和小于一個常數的約束條件下,使殘差平方和最小化,從而能夠產生某些嚴格等于0的回歸系數,得到可以解釋的模型。與其他特征選擇算法相比,可以在變量比較多的情況下有效提取出重要的模型。對于數據集,LASSO算法的模型函數如式(3)所示:
式中:λ是關系到特征提取效果的參數。
2.2 灰狼優(yōu)化算法優(yōu)化模型參數
對于優(yōu)化SVM分類模型的懲罰因子[C]和核函數參數[δ]以及LASSO算法懲罰因子[λ]的參數組合,使用灰狼優(yōu)化算法來進行參數優(yōu)化,該方法相較于其他優(yōu)化算法具有步驟簡單、需要調整的參數少、收斂速度快、不容易陷入局部最優(yōu)解的優(yōu)點。
灰狼優(yōu)化算法的原理是模擬狼群捕獵等級,其過程主要有包圍、狩獵、攻擊3個步驟。
2.2.1 包圍過程。在灰狼優(yōu)化算法中,獵物的位置就是全局的最優(yōu)解,設狼群中有[N]只狼,搜索的空間維度即所需要優(yōu)化的參數數量為[M],則其中第[i]只狼的位置可以表示為X=X,X,…,X(i=1,2,…, n)。狼群搜索獵物過程的數學模型為:
式中:t代表算法迭代的次數;X代表獵物即最優(yōu)解的位置向量;X表示當前灰狼的位置向量;A與C代表系數向量來控制灰狼搜索速度;r與r是在(0,1之間取值的隨機數;q是隨著迭代次數從2逐漸線性衰減到0的收斂因子。
2.2.2 狩獵過程。在灰狼算法中,假定α、β和δ三只灰狼更清楚獵物即最優(yōu)解X的潛在位置,并利用α、β和δ三只灰狼的位置來優(yōu)化候選狼ω的位置,從而達到逐漸逼近獵物即最優(yōu)解X的目的。狩獵的數學模型為:
式中:D、D、D分別表示α、β和δ三只狼與其他候選狼個體間的距離;X是當前候選狼ω的位置;X、X、X代表當前α、β和δ三只灰狼的位置;C、C、C是隨機向量;X(t+1)代表候選狼ω的優(yōu)化位置。
2.2.3 攻擊獵物。在式(4)中,[q]的值隨著迭代次數從2逐漸線性衰減到0,A的波動范圍也隨著q的逐漸減小而減小,最終可以使灰狼在逐漸靠近獵物即求最優(yōu)解時的精確度提高,最終當A<1時,灰狼會向獵物發(fā)起進攻。
2.2.4 灰狼算法優(yōu)化。利用灰狼優(yōu)化算法對模型參數進行優(yōu)化,得到最優(yōu)參數后再進行訓練。具體步驟如下。第一,初始化灰狼的規(guī)模與最大迭代次數t,將SVM模型的參數C、核函數參數δ與LASSO算法參數λ設置為灰狼的位置,即X=C,δ,λ,根據準確率來優(yōu)化SVM模型的參數C、核函數參數δ與LASSO算法參數λ,若適應值為當前最優(yōu),則保存適應值與α、β和δ三只狼的位置。第二,更新式(4)q、A和[C]的值,以及α、β和δ所代表的三只狼的位置。當迭代次數達到最大迭代次數t時,就得到最優(yōu)參數SVM模型的參數C、核函數參數δ與LASSO算法參數λ的值。第三,采用最優(yōu)參數對訓練集進行訓練。
3 配置試驗
3.1 試驗數據與環(huán)境
本試驗采用的編程語言為Python,基于Sklearn機器學習進行模型試驗。本次試驗平臺為Windows操作系統(tǒng),8 GB、2 666 Hz頻率內存,CPU采用的是英特爾i5-7500。
本研究將電子病歷作為數據集,特征維度為46維度,數量為440條。
3.2 模型設置
為了測試本學習模型的效果,本次試驗采用交叉驗證法將試驗數據集平均劃分為10個子集,并按照比例4∶6劃分為測試集及訓練集。在經過一次試驗后,將數據集打亂重新平均劃分為10個子集,再按照4∶6的比例重新劃分測試集及訓練集。依次重復5次,計算5次試驗的平均準確率、受試者工作特征(Receiver Operating Characteristic,ROC)[6]曲線下面積(Area Under Curve,AUC)等指標,并與其他算法進行對比,將其他算法的最大迭代次數[t]預設為30。
3.3 試驗結果與分析
在本次試驗中,在先使用GWO算法優(yōu)化LASSO算法的參數[λ],再對數據集進行特征選擇,最終會得到15條特征,故將PCA與LLE篩選特征的維度設置為15。
評價指標主要包括準確率、F值(準確率和召回率的調和平均數)、ROC曲線與AUC值。其中,準確率=預測正確的樣本數/總的樣本數×100%,F1值=2/(1/準確率+1/召回率)。從ROC曲線有夠多看出算法模型最優(yōu)閾值的識別能力。AUC通過對ROC曲線下各部分的面積求和得出。相關結果如表1和圖1所示。
由表1可知,使用GSL算法在數據集上得到的準確率與F值最高,LASSO-SVM模型的準確率最低,LLE-SVM的F值最低。可見,相較于傳統(tǒng)的特征提取方法,GSL算法所得到的準確率與F值相對較好,并且擁有穩(wěn)定的檢測效率。
圖1中,橫坐標為假陽率(False Positive Rate,FPR),即在所有實際為陰性的樣本中,被錯誤地判斷為陽性之比率;縱坐標為真陽率(True Positive Rate,TPR),即在所有實際為陽性的樣本中,被正確地判斷為陽性之比率。ROC曲線的評價標準是計算該算法的ROC曲線與坐標右下角所包圍的面積,當面積越大或者曲線越靠近左上角時,該算法的分類性能越好。AUC值即面積值。由圖1可以看出,相較于其他算法,GSL算法的ROC曲線更靠近左上角,說明GSL的性能相較于其他方法更好。GSL算法的AUC值最高,LASSO-SVM與PCA-SVM的AUC值相對較低,LLE-SVM的AUC值最低。可見,GSL算法對高維數據集的分類效果較傳統(tǒng)算法有更好的性能。
綜上所述,使用GSL模型檢測準確率高,穩(wěn)定性強,適用于高維數據的分類。
4 結語
使用GSL進行了高維數據的分類。LASSO算法在數據集中變量具有高維度和多重共線性的情況下具有良好的效果,使用LASSO算法對高維數據進行特征提取,能提取高維數據特征中最為關鍵的特征,從而提高模型的準確率。GWO具有收斂性強、參數少、易實現等優(yōu)點,在求解最優(yōu)化問題時具有較大優(yōu)勢。試驗中,將該算法用于優(yōu)化SVM與LASSO的參數選擇,從而提高模型的分類準確率。在高維數據電子病歷的特征提取方面,從分類準確率、F值、ROC曲線、AUC值4項指標對比GSL與PCA-SVM、LLE-SVM、LASSO-SVM。結果表明:GSL算法的效果最好。
參考文獻:
[1]TANG T,BO L,LIU X,et al. Variable predictive model class discrimination using novel predictive models and adaptive feature selection for bearing fault identification[J]. Journal of Sound and Vibration,2018(7):137-148.
[2]董玉璽,李樂寧,田文德.基于多層優(yōu)化PCC-SDG方法的化工過程故障診斷[J].化工學報,2018(3):1173-1181.
[3]楊維,李歧強.粒子群優(yōu)化算法綜述[J].中國工程學,2004(5):87-94.
[4]張鈴,張鈸.遺傳算法機理的研究[J].軟件學報,2000(7):945-952.
[5]秦全德,程適,李麗,等.人工蜂群算法研究綜述[J].智能系統(tǒng)學報,2014(2):127-135.
[6]王彥光,朱鴻斌,徐維超.ROC曲線及其分析方法綜述[J].廣東工業(yè)大學學報,2021(1):46-53.