?

基于mRMR-RF特征選擇和XGBoost模型的釣魚網站檢測

2020-09-09 03:15畢青松梁雪春陳舒期
計算機應用與軟件 2020年9期
關鍵詞:特征選擇釣魚準確率

畢青松 梁雪春 陳舒期

(南京工業大學電氣工程與控制科學學院 江蘇 南京 211816)

0 引 言

釣魚網站,作為一種偽裝成合法網站的虛假網站,是詐騙者通過合法網站的漏洞加入一些病毒代碼,通過用戶在網站輸入來竊取用戶的銀行卡、信用卡等賬號密碼以及其他私人信息資料[1]。詐騙者利用用戶好奇以及不設防的心理,將釣魚網站的界面做得與合法網站極其相似,用戶在瀏覽網站時如果不仔細觀察根本無法分辨出來,大大降低了用戶個人賬戶信息的安全保障,從而直接損失用戶的利益。根據我國反釣魚網站數據顯示,2019年4月該網站共處理釣魚網站2 414個,環比增長了66.5%,截至2019年4月,反釣魚網站處理的釣魚網站數量達到440 995個。

目前釣魚網站檢測方法主要有黑白名單過濾技術[2-3]、釣魚網站URL地址分析[4-5]和提取網站相關特征來識別釣魚網站[6-7]。其中,提取網站相關特征來識別釣魚網站擁有更高的準確率,但是識別效率低,且提取頁面特征較為復雜。

針對上述檢測方法,眾多學者采用機器學習分類算法進行分類檢測。比如,文獻[8]利用SVM算法分析釣魚網站URL地址進行識別,但是該方法只對低維小樣本數據有較高的預測準確率。文獻[9]采用K-means算法對URL特征進行聚類處理,以達到預測的目的,但是該方法分類性能有限。文獻[10]提出基于K-means和SVM相結合算法來識別釣魚網站,該方法雖然提高了預測準確率,但是其只針對低維小樣本數據,對于高維數據的預測效果并不理想。

針對上述問題,本文提出一種基于mRMR-RF特征選擇和XGBoost模型的釣魚網站檢測方法。在特征篩選階段,結合了過濾型算法泛化性能好、計算開銷小、效率高和裝箱型算法模型性能更好的優點。先通過過濾型算法mRMR計算特征之間以及特征與類變量之間的互信息來對特征進行排序,再通過裝箱型算法RF計算袋外數據誤差值對特征的重要性再次排序,測試不同的特征數對模型準確率的影響來找到最佳的特征數k。綜合上述兩種特征篩選后的特征排名選出前k個特征得出最優的特征子集,相比未篩選的特征集,最優子集大大降低了無關冗余的特征,對釣魚網站預測準確率有了明顯的提高[11]。在模型分類階段,采用分類準確率更高的XGBoost集成學習算法作為分類模型,從而進一步提高預測釣魚網站的準確率。

1 基礎理論

1.1 互信息

互信息常被用來對特征間的相關性進行評價,是一種有效的信息度量方法。1994年,Battiti[12]第一次將互信息用于特征篩選,并將其定義為從n個原始特征中找出最相關的k個特征的過程。設X={x1,x2,…,xm}和Y={y1,y2,…,ym}為兩個離散隨機變量,p(x,y)是X和Y的聯合概率分布函數,p(x)和p(y)分別是X和Y的邊緣概率分布函數,則X和Y的互信息可以定義為:

(1)

直觀上,互信息度量兩個變量的共享信息,是其中一個變量對另一個變量提供信息的程度。例如,如果兩個變量X和Y相互獨立,并且變量X和Y互不提供信息,則它們之間的互信息為零。

1.2 最大相關最小冗余(mRMR)算法

mRMR算法是一種濾波式的特征選擇方法,它以不同的方式在相關性和冗余之間進行權衡,并且以互信息作為計算準則來衡量特征之間的冗余度以及特征與類變量之間的相關性,通過最大化特征與類變量的相關性以及最小化特征之間的冗余性來進行特征選擇。

最大相關性原則是指選擇那些與模型有著最大相關性的特征,相關性越大,則說明訓練出的模型解決問題能力越強。最大相關性計算式表示為:

(2)

式中:xi為第i個特征;c={c1,c2,…,cL}為類別變量;L為類別總個數;S為特征子集。

由于特征之間相關性越大,冗余度就越高,為了降低特征之間的冗余度,讓每個特征都具有代表性,需要將冗余度降到最低,這就是最小冗余度原則。最小冗余度計算式表示為:

(3)

1.3 隨機森林

隨機森林[13]是由多棵決策樹構成的一種集成學習算法,并且每棵決策樹都被分配獨立的子空間,任其自由生長,最后采用簡單多數投票將投票次數最多的類別指定為最終的分類結果。

步驟1用k組袋外數據(OOB data)分別計算每棵決策樹的誤差值,記為ErrOOB1,ErrOOB2,…,ErrOOBk。

步驟2對k組袋外數據的第i個特征進行隨機重排并保證其他特征不變,然后重新計算誤差值,記為Erri1,Erri2,…,Errik。

步驟3特征重要性的計算公式如下:

(4)

步驟4基于重要性對特征進行排序,根據得出的最佳特征數m選出前m個特征。

2 mRMR-RF特征選擇方法在XGBoost中的應用

2.1 XGBoost算法

XGBoost是由Chen等[16]在2016年提出的一種基于回歸樹的提升算法,是對GBDT算法的進一步優化。XGBoost算法將目標函數在t=0處泰勒二階展開,并引入正則項來控制模型的復雜度,防止模型過擬合,這使得XGBoost相比GBDT算法,不僅能降低過擬合程度,還能減少計算量,使得求解模型最優解更具有效率。XGBoost目標函數定義為:

(5)

新生成的樹需要擬合上次預測的殘差,所以當生成t棵樹后,將目標函數改寫成:

(6)

(7)

(8)

定義Ij={i|q(xi)=j}為葉子節點j中的樣本集合,并將式(5)代入式(6),得到最終的目標函數:

(9)

(10)

對應的最優目標值:

(11)

2.2 釣魚網站檢測模型

本文釣魚網站模型設計主要分為如下兩個部分:

(1) 特征篩選:本文采用mRMR-RF算法從基分類器的特征重要度和相關性冗余度兩個方面進行考慮,保證單個特征重要度的同時考慮特征和類別之間的相關性以及特征之間的冗余度,以篩選出最優的特征子集。

(2) 模型構建:采用分類性能更好的XGBoost集成學習算法作為模型,可以進一步提高釣魚網站預測的準確率。

該模型的檢測過程如圖1所示:首先從UCI數據集中選取釣魚網站數據并對該數據進行基本的預處理;然后對該特征數據用mRMR算法和RF算法分別進行特征篩選,綜合兩種算法特征排名根據試驗得出的最好特征數得出最優特征子集;最后將篩選的最優特征子集的一部分作為訓練集對XGBoost分類模型進行訓練,另一部分對訓練好的分類器進行預測。

圖1 釣魚網站檢測模型

3 實 驗

3.1 實驗數據及說明

本文采用UCI數據庫中的phishing數據集進行實驗分析。該數據集由PhishTank檔案館、MillerSmiles檔案館以及谷歌搜索運營商提供,共有11 055個實例,30個屬性特征,包括SSLfinal_State、URL_of_Anchor、having_Sub_Domain、web_traffic、Prefix_Suffix等主要特征。實驗所用的數據信息如表1所示,其中釣魚網站占比44%,合法網站占比56%。實驗環境如下:操作系統Windows 10,實驗平臺為Spyder。

表1 實驗數據

3.2 評價指標

為了衡量訓練后的模型性能,本文采用ROC曲線、AUC值以及精確度對算法性能進行評價。

ROC曲線一般指接受者操作特征曲線,該曲線以負正類率(False Positive Rate,FPR)特異度為橫軸,以真正類率(TRUE Positive Rate,TPR)靈敏度為縱軸的各點的連線。FPR和TPR計算公式如下:

(12)

(13)

精確度(accuracy)又叫準確度,是用來衡量一個算法與理論值符合的程度,計算公式如下:

(14)

TP(TRUE Positive)為模型正確分類的正樣本;TN(TRUE Negative)為模型正確分類的負樣本;FP(FALSE Positive)為模型錯誤分類的負樣本;FN(TRUE Negative)為模型錯誤分類的正樣本。

AUC(Area Under Curve)值為ROC曲線下的面積,介于0.1和1之間。ROC曲線越向左上方凸AUC值越大,代表模型性能越好。

3.3 實驗結果及分析

(1)實驗一利用mRMR-RF算法進行特征篩選。

該實驗先是通過mRMR算法對預處理后的數據進行相關性和冗余性的度量,通過計算特征之間、特征與類變量之間的分布及互信息將各個特征進行排序,得到每個特征的mRMR分值排名,特征具體排名如圖2所示。

圖2 mRMR特征重要性排序圖

接著利用RF算法OOB data計算誤差值并對特征進行排序,得到如圖3所示的特征排序圖。

圖3 RF特征重要性排序圖

綜合以上兩種算法各特征的排名,得到最終特征排名如表2所示。

表2 特征最終重要性排序

續表2

表2得出了最終的特征重要性排序表后需進行特征篩選。因為特征選取過多或過少都會影響模型的準確率,所以為了找到合適的特征數量k,本文選取不同的k值進行實驗,通過比較k值對模型AUC值的影響來選出最好的k值,實驗結果如圖4所示。

圖4 特征數對模型AUC值的影響

通過圖4可以看出,特征數n選19時,AUC值達到最高,因此本文特征數k選取為19。根據表2可知,選取的特征為綜合排名前19名的特征,即SSLfinal_State特征一直到double_slash_redirecting特征。

為了比較本文特征篩選算法的性能,本文從UCI數據集中隨機選擇一個個人信用風險評估數據集對不同特征選擇算法進行實驗對比,并且采用XGBoost算法對其進行訓練,10折交叉進行驗證。其中Acc表示精確度,AUC值為ROC曲線下的面積,介于0到1之間,用來衡量分類器的好壞。具體實驗結果如表3所示。

表3 不同特征選擇算法基于XGBoost模型實驗結果比較

從表3數據可知,本文采用的特征選擇算法mRMR_RF精確度達到了92.374%,AUC值達到了87.7,特征選取的維數為19。就精確度和AUC值而言,本文方法明顯優于RF、GR、mRMR、CFS特征選擇算法,RF和GR在特征降維上表現較好,但是因為篩選特征過多導致原始信息不足,最終表現出精確度不夠。因此,本文提出的特征選擇算法在總體上是優于RF、GR、mRMR、CFS算法的,這也驗證了本文特征選擇的有效性。

(2)實驗二利用XGBoost模型進行釣魚網站檢測。

為了檢驗本文提出的釣魚網站檢測方法是否有效,本文選取了隨機森林(RF)和支持向量機(SVM)兩種常見類型的分類模型與XGBoost模型進行對比,對于特征選擇部分,均采用實驗一提出的mRMR_RF算法。對以上3個模型進行5次實驗取其均值最后得出的數據如表4所示,其中TPR為真正類率,FPR為負正類率。由表4可知,本文方法的準確率最高,達到90.25%,AUC值也最高,為0.87,真正類率達到91.35%,負正類率為10.06%??梢钥闯霰疚姆椒ǖ木C合性能優于RF和SVM分類算法。

表4 基于mRMR-RF特征選擇不同分類器實驗結果

為了更直觀地看出本文釣魚網站模型預測的能力,圖5給出了不同分類器的曲線,ROC曲線越往左上角凸說明AUC值越大,AUC值越大說明模型的分類效果越好,可以看出本文提出的基于mRMR-RF特征選擇和XGBoost的釣魚網站檢測方法效果最好。

圖5 不同分類算法的ROC曲線圖

4 結 語

針對大量冗余不相關的數據導致釣魚網站檢測準確率不夠,誤判率較高的問題,本文提出一種基于mRMR-RF特征選擇和XGBoost模型的釣魚網站檢測方法。通過結合mRMR算法和RF算法對特征進行相關性和冗余度的篩選,利用極端梯度提升(XGBoost)算法構建釣魚網站檢測模型。本文方法在特征選擇過程相比RF、GR、mRMR、CFS特征選擇算法精確度更高,AUC值也更大,在模型對釣魚網站檢測過程中,應用mRMR-RF特征選擇的XGBoost模型相比SVM和RF在精確度和AUC值上具有一定優勢。但是本文釣魚預測的準確率還可以進一步提高,如何找到最優特征子集并找到契合該特征子集的模型,提高預測準確率將是今后研究的方向。

猜你喜歡
特征選擇釣魚準確率
乳腺超聲檢查診斷乳腺腫瘤的特異度及準確率分析
不同序列磁共振成像診斷脊柱損傷的臨床準確率比較探討
2015—2017 年寧夏各天氣預報參考產品質量檢驗分析
頸椎病患者使用X線平片和CT影像診斷的臨床準確率比照觀察
基于智能優化算法選擇特征的網絡入侵檢測
故障診斷中的數據建模與特征選擇
釣魚
reliefF算法在數據發布隱私保護中的應用研究
一種多特征融合的中文微博評價對象提取方法
第七章 去泥盆紀釣魚
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合