劉芳瑞,陳宏偉
(湖北工業(yè)大學(xué)計算機學(xué)院,湖北 武漢 430068)
電子郵件給網(wǎng)民提供了便利的方式來傳遞數(shù)據(jù)與別人交流,但是,垃圾郵件的泛濫[1]不僅影響用戶體驗,也帶來日益增多的安全風(fēng)險。
一些郵件文本分類問題已被研究,文獻[2]提出支持向量機作為分類器開發(fā)了兩種策略,以最大可信度分類和統(tǒng)一可信度分類的未標(biāo)記評論識別垃圾郵件;文獻[3]基于詞向量間余弦相似度的樸素貝葉斯分類算法廣泛應(yīng)用于機器學(xué)習(xí)分類問題;文獻[4]提出基于統(tǒng)計特征,通過極端梯度提升方法(XGBoost)和廣義提升回歸模型(GBM)檢測英語數(shù)據(jù)集中的垃圾意見?,F(xiàn)在一些智能優(yōu)化算法開始被應(yīng)用于分類問題,文獻[5]提出了遺傳算子和粒子群算法結(jié)合(H-FSPSOTC)來提高聚類算法性能,用于大量文本文檔的分類問題。
本文利用樽海鞘群算法優(yōu)化支持向量機分類器,深入研究了分類垃圾郵件的算法策略,并采用Wrapper方法[6]對函數(shù)評估,用評估指標(biāo)對所提出的算法進行實驗對比,能夠最大程度地將垃圾郵件正確過濾。
樽海鞘通常以群集的方式形成相當(dāng)大的魚群進行活動,以此為靈感,Mirjalili等人[7]提出了樽海鞘群算法(Salp Swarm Algorithm,SSA),并將整個種群劃分成領(lǐng)導(dǎo)者和跟隨者。其中,領(lǐng)導(dǎo)者位于前端并在多維搜索空間中引導(dǎo)一些群體(跟隨者)搜尋最佳解決方案(搜索目標(biāo))。在該算法中,整個群體位于n×d維搜索空間中,其中n是問題變量的數(shù)量,d是空間維數(shù)。種群的位置用Xi表示成二維矩陣如下:
其中i=1,2,…,n。算法的大致過程如下:
Step 1:隨機初始化群體公式如下:
Xn×d=lb+rand(n,d)(ub-lb)
給定了搜索空間的搜尋范圍是ub=[ub1,ub2,…,ubd]和lb=[lb1,lb2,…,lbd],來分別表示上下界。使其在搜索過程中不得超出邊界,否則將它拉回到規(guī)定的范圍內(nèi)。這個群體在搜索空間中的搜尋目標(biāo)可定義為F=[F1,F2,…,Fd]。
Step 2:更新領(lǐng)導(dǎo)者的位置公式如下:
(1)

c1=2exp(-(4l/L))2
其中l(wèi)是當(dāng)前迭代,L是最大迭代次數(shù)。
Step3:跟隨者的位置更新公式如下:
式中i≥2,表示第i個跟隨者種群在第j維的位置。判斷條件是否滿足約束的閾值,如果是,則停止更新并輸出優(yōu)化結(jié)果。否則,繼續(xù)迭代。
正如劉建新等人提出的混沌策略[8],本文使用改進的Tent映射,讓初始種群廣泛而又均勻地探索位置。初始化公式如下:
其中取μ=1/32,θ=4π時初始的種群個體分布均勻(圖1)。

圖 1 均勻分布的初始位置序列
為了提高收斂精度,將權(quán)重因子ω引入到跟隨者的位置更新公式中[9],使群體在早期能夠加快尋優(yōu)能力,在后期搜索相對準(zhǔn)確的結(jié)果,降低了陷入局部最優(yōu)的風(fēng)險。ω的非線性遞減的函數(shù)公式如下:
ω(t)=ωmin+(ωmax-ωmin)×exp(-10t/T)
其中ω(t)表示第i個個體在第t次迭代時的權(quán)重取值。經(jīng)多次實驗取ωmin=0.5,ωmax=0.9,T是最大迭代次數(shù)。那么,新的跟隨者更新公式如下:
(2)
在線性SVM分類器中,決策超平面能夠正確的分離訓(xùn)練集中的數(shù)據(jù)點,引入懲罰參數(shù)C控制了SVM的泛化能力,防止過擬合。給定訓(xùn)練集{(x1,y1),…,(xm,ym)},m是訓(xùn)練集份數(shù),xi∈R,yi∈{-1,1},確定權(quán)向量ω和偏項b,數(shù)據(jù)點用下式進行分類。
f(xi)=sign(ωTxi+b)
其中ξi表示松弛變量。在特征空間的特征具有非線性依賴性時,將最小化函數(shù)公式(3)引入SVM,采用SVM和高斯核函數(shù)公式(4)集成。
(3)
k(xi,xj)=exp(-λ||xi-xj||2) (λ>0)
(4)
本文提出改進后的樽海鞘群算法(Improved salp swarm algorithm,ISSA)如圖1所示,算法過程描述如下:

圖 2 基于ISSA的垃圾郵件分類算法流程圖
Step1:采用混沌映射初始化種群位置,設(shè)置參數(shù)N=80,最大迭代次數(shù)100;
Step2:對郵件的文本數(shù)據(jù)進行預(yù)處理,將文本內(nèi)容分詞后,創(chuàng)建詞典作為郵件的原始特征P=[p1,w1,p2,w2,…,pn,wn],pi表示特征詞,wi表示權(quán)重;
Step3:采用空間向量表示,用詞頻-逆向文件頻率(TF-IDF)方法提取權(quán)重賦值更高的特征子集P=[p1,p2,..,pd],劃分?jǐn)?shù)據(jù)集;
Step4:計算個體的初始適應(yīng)度值f(x),利用ISSA算法優(yōu)化SVM高斯核函的懲罰參數(shù)C和λ,實驗得出最佳參數(shù);
Step5:更新個體和食物源的位置,評估分類器模型,獲得全局最優(yōu)分類。
精確率(ACC)是正確分類的郵件與總郵件數(shù)的比例,公式如下:
其中x(i,j)表示第i個種群鏈在第j維的位置,N是所有個體的數(shù)量,K是種群的數(shù)量。
F-Measure(FM)是對完成分類的垃圾郵件占垃圾郵件的比例,以及對完成分類垃圾郵件占總郵件比例的整體評價,兩者的值越高越有效。如
其中Nj表示樽海鞘群鏈的數(shù)量。
本文選取了trec06c[11]的一個公開的中文郵件數(shù)據(jù)集,其中訓(xùn)練集有45 360份,測試有19 440份。實驗選取特征數(shù)量{500,1000,2000},懲罰因子C和λ取值范圍是C={2-3,2-2,…,23},λ={2-9,27,…,23}。將ISSA與傳統(tǒng)的SSA性能進行比較,分別采用K近鄰(KNN)、邏輯回歸(LR)和支持向量機(SVM)分別評估了三種不同的優(yōu)化模型。
如圖3、4所示,基于SVM的ISSA分類準(zhǔn)確率和F值優(yōu)于其他算法,在精確度上較其他算法也提高了0.9%~6.2%。如表1所示,基于KNN的ISSA算法的執(zhí)行時間最短,然而,數(shù)據(jù)集中的合法郵件和垃圾郵件不平衡比為1.92,其他算法的穩(wěn)定性不如SVM-ISSA。當(dāng)?shù)螖?shù)達(dá)到100時,則特征數(shù)量為2000,C=25,γ=2時,SVM-ISSA達(dá)到最佳效果,說明分類器對參數(shù)的取值較為敏感。

圖 3 不同算法上的 F值

圖 4 不同算法上的精確度

表1 實驗結(jié)果
圖5繪制出平均適應(yīng)度函數(shù)的變化情況,與二進制樽海鞘群算法(Binary SSA,BSSA)進行對比,ISSA的收斂速度快于明顯有波動的BSSA,能夠快速達(dá)到均衡的狀態(tài)。實驗證明,ISSA在分類效果上更加穩(wěn)健。

圖 5 在trec06c上的適應(yīng)度函數(shù)值
將兩種改進策略引入樽海鞘群算法,提高了算法的整體尋優(yōu)性能,評估模型采取了三種機器學(xué)習(xí)算法用于訓(xùn)練分類器。其中SVM和ISSA算法模型表現(xiàn)出更好的性能,驗證了基于樽海鞘群的SVM和ISSA分類算法在數(shù)據(jù)集上魯棒性更好、更穩(wěn)健。此外,該算法也可以用于解決大規(guī)模的工業(yè)問題。