王法玉,于曉文,陳洪濤
(天津理工大學(xué) 計(jì)算機(jī)病毒防治技術(shù)國(guó)家工程實(shí)驗(yàn)室,天津 300384)
在開展惡意網(wǎng)頁識(shí)別的研究過程中,受限于惡意網(wǎng)頁體量小生命周期短等特點(diǎn),惡意網(wǎng)頁和良性網(wǎng)頁樣本往往是不平衡的,尤其是在關(guān)注少數(shù)類問題的時(shí)候,分類結(jié)果不均衡會(huì)更加的突出,檢測(cè)結(jié)果會(huì)更傾向于樣本數(shù)量大的類別,導(dǎo)致模型的分類效果下降。因此,對(duì)不平衡數(shù)據(jù)集的惡意網(wǎng)頁識(shí)別進(jìn)行研究是很有必要的。
目前,惡意網(wǎng)頁檢測(cè)技術(shù)主要有3種:①黑名單技術(shù),將惡意網(wǎng)頁的域名,IP地址等信息保存到數(shù)據(jù)庫(kù),通過檢索來判定是否是惡意網(wǎng)頁;②啟發(fā)式檢測(cè)技術(shù),對(duì)大量惡意網(wǎng)頁進(jìn)行分析并提取不同惡意網(wǎng)頁之間的相似特征,創(chuàng)建模板,作為啟發(fā)式規(guī)則去檢測(cè)未知的惡意網(wǎng)頁;③基于機(jī)器學(xué)習(xí)的檢測(cè)技術(shù),提取惡意網(wǎng)頁和良性網(wǎng)頁存在差異的特征,運(yùn)用機(jī)器學(xué)習(xí)中的分類聚類算法(如SVM、KNN、邏輯回歸、決策樹等)對(duì)網(wǎng)頁進(jìn)行檢測(cè)[1-7]。隨著網(wǎng)頁規(guī)模迅速變大,數(shù)據(jù)集的不平衡性日益明顯[8],黑名單技術(shù)和啟發(fā)式檢測(cè)技術(shù)受限于惡意網(wǎng)頁的收集和時(shí)效差的缺點(diǎn)難以再勝任惡意網(wǎng)頁檢測(cè)任務(wù),而數(shù)據(jù)的不平衡性對(duì)傳統(tǒng)機(jī)器學(xué)習(xí)模型的準(zhǔn)確率也提出了嚴(yán)峻的挑戰(zhàn)。
針對(duì)上述問題,結(jié)合處理不平衡數(shù)據(jù)集分類問題的方法,本文設(shè)計(jì)了基于欠采樣、代價(jià)敏感和多層集成學(xué)習(xí)的惡意網(wǎng)頁識(shí)別模型。使用欠采樣處理數(shù)據(jù)樣本,達(dá)到局部數(shù)據(jù)平衡;使用代價(jià)敏感學(xué)習(xí)調(diào)整構(gòu)建第一層集成學(xué)習(xí)模型,通過權(quán)重和閾值的調(diào)整確保模型的檢測(cè)精度;使用投票方式構(gòu)成第二層集成學(xué)習(xí)模型,保證全局信息的完整性。
現(xiàn)有的惡意網(wǎng)頁檢測(cè)模型基本上都是基于平衡分布的樣本,如果數(shù)據(jù)存在嚴(yán)重的不平衡,分類結(jié)果會(huì)更加傾向于樣本數(shù)據(jù)量大的類別,導(dǎo)致分類結(jié)果不均衡。
提升不平衡數(shù)據(jù)分類問題準(zhǔn)確度的常用做法有3種:重采樣技術(shù)、代價(jià)敏感學(xué)習(xí)、特征選擇[9]。重采樣技術(shù)對(duì)數(shù)據(jù)進(jìn)行平衡化處理主要有兩種思路,一種是過采樣,通過復(fù)制少數(shù)類,使少數(shù)類樣本與多數(shù)類樣本平衡;另一種是欠采樣,按照少數(shù)類樣本數(shù)量隨機(jī)選取同等數(shù)量的多數(shù)類樣本,從而平衡兩種樣本。采樣技術(shù)近幾年被廣泛用于處理數(shù)據(jù)不平衡問題[10,11]。代價(jià)敏感學(xué)習(xí)是為了解決實(shí)際應(yīng)用問題中訓(xùn)練數(shù)據(jù)不足、數(shù)據(jù)不平衡而提出的一種自己定義的損失函數(shù)模型,通過增加約束和權(quán)重條件,使最終輸出結(jié)果向一個(gè)特定的方向偏移[12]。特征選擇則是選取合適的特征子集,來增加樣本間的區(qū)分度。
1.2.1 邏輯回歸
邏輯回歸(logistic regression,LR)是線性模型的一種,實(shí)質(zhì)上是在線性回歸的基礎(chǔ)上,構(gòu)造的一種分類模型。常用Sigmoid函數(shù)δ(Z)=(1+e-Z)-1來展示,樣本x所屬類別y1的可能性可以表示為
p(S=1|H)=δ(w*H+b)
(1)
1.2.2 支持向量機(jī)
支持向量機(jī)(support vector machine,常簡(jiǎn)稱為SVM)作為一個(gè)比較復(fù)雜的分類算法,通過找到一個(gè)分類平面,將數(shù)據(jù)分隔在平面兩側(cè),從而達(dá)到分類的目的,是解決二分類問題的常見分類算法,可以解決線性可分和不可分問題[13]。
本文使用的SVM算法采用的核函數(shù)是徑向基核函數(shù)(radial basis function,RBF),又叫高斯核
(2)
RBF可以將一個(gè)樣本映射到高緯度空間,決策邊界更為多樣化,與多項(xiàng)式核相比,參數(shù)更容易選擇。
1.2.3 K近鄰算法
K近鄰(K-nearest neighbor,KNN)是一種最經(jīng)典的有監(jiān)督學(xué)習(xí)方法,原理是通過尋找與新樣本最鄰近的K個(gè)樣本判斷該樣本屬于哪一類(根據(jù)K個(gè)樣本中的多數(shù)進(jìn)行劃分)。本文的K近鄰算法使用曼哈頓距離
(3)
1.2.4 決策樹
決策樹分類算法(decision tree,DT)由于它具備便于了解、結(jié)構(gòu)可視化、訓(xùn)練樣本需求少、更靈活等特點(diǎn)被廣泛應(yīng)用于機(jī)器學(xué)習(xí)領(lǐng)域。決策樹學(xué)習(xí)采用分而治之的策略,通過貪婪搜索來識(shí)別樹中的最佳分割點(diǎn)。決策樹學(xué)習(xí)通常由特征選擇、決策樹的生成、決策樹的修剪構(gòu)成。本文使用C4.5算法,該算法選取節(jié)點(diǎn)的依據(jù)是最大信息增益率,計(jì)算公式為
(4)
C4.5算法相較于ID3算法,用信息增益率來選擇劃分特征,克服了用信息增益選擇的不足,能夠處理具有缺失屬性值的訓(xùn)練數(shù)據(jù),通過剪枝技術(shù)消除噪聲和孤立點(diǎn)。
1.2.5 樸素貝葉斯
樸素貝葉斯(Naive Bayes)是一種有監(jiān)督學(xué)習(xí)算法,通過衡量標(biāo)簽和特征之間的概率關(guān)系來對(duì)樣本進(jìn)行預(yù)測(cè),是由基于概率論和數(shù)理統(tǒng)計(jì)的貝葉斯理論演化而來。通過條件概率和先驗(yàn)概率可以推出公式
(5)
樸素貝葉斯,是在貝葉斯的基礎(chǔ)上,對(duì)條件概率分布做了條件獨(dú)立性的假設(shè)。
特征值的選取是機(jī)器學(xué)習(xí)領(lǐng)域的關(guān)鍵點(diǎn),很多時(shí)候,分類器之間的差異性對(duì)最終任務(wù)的影響是要遠(yuǎn)遠(yuǎn)小于選擇良好特征對(duì)最終結(jié)果的影響[14]。因此我們?cè)谶x取特征值上了做了充足的準(zhǔn)備,包括查閱多方相關(guān)文獻(xiàn)并總結(jié)、分析惡意和良性網(wǎng)頁的特征分布等。下面是本文選取特征的詳情。
為了更好訓(xùn)練模型,特征選取應(yīng)該具備:①特征與特征之間要盡可能的相互獨(dú)立,因?yàn)槟P蜆?gòu)建時(shí)大多假設(shè)特征之間是相互獨(dú)立的;②特征覆蓋面要廣泛,從多個(gè)維度對(duì)惡意樣本進(jìn)行描繪;③特征要具備代表性,減少冗余特征的使用。
基于詞匯的URL特征,在能夠取得較好檢測(cè)效果的同時(shí)又可以保證“輕量級(jí)”。在提取特征時(shí),一條URL可以被分成域名、路徑、查詢參數(shù)、錨點(diǎn)4大部分,每個(gè)部分又分別是由數(shù)字、字母以及特殊符號(hào)構(gòu)成的,根據(jù)特殊字符(例如“/”,“.”,“?”,“=”等)將URL切分為不同的token,就可以將一條URL看作是由一組token組成的向量,從而獲取到更加具體的特征。
針對(duì)URL整體以及它的每個(gè)部分,分為基于URL整體的特征、基于域名的特征、基于路徑的特征、基于查詢參數(shù)的特征以及基于錨點(diǎn)的特征。其中的“惡意詞出現(xiàn)次數(shù)”特征所統(tǒng)計(jì)的惡意詞是根據(jù)malwaredomains.com下載的惡意域數(shù)據(jù)集統(tǒng)計(jì)出現(xiàn)次數(shù)較多的詞。流行網(wǎng)站名是根據(jù)Alexa排名前500名的網(wǎng)站數(shù)據(jù)集進(jìn)行統(tǒng)計(jì)得到,因?yàn)楹芏鄲阂獯鼍W(wǎng)站會(huì)通過模仿知名網(wǎng)站來迷惑用戶。所有特征見表1。
表1 URL詞匯特征
本文提出了一個(gè)在不平衡數(shù)據(jù)集上基于欠采樣和多層集成學(xué)習(xí)的惡意網(wǎng)頁識(shí)別方法,通過欠采樣、閾值調(diào)整和多層集成學(xué)習(xí)等方法,針對(duì)存在不平衡的網(wǎng)頁數(shù)據(jù)集進(jìn)行研究分類。實(shí)驗(yàn)的整體架構(gòu)由網(wǎng)頁采集、數(shù)據(jù)處理、特征提取、模型訓(xùn)練4個(gè)環(huán)節(jié)構(gòu)成。整體框架如圖1所示。
圖1 整體框架
具體步驟可以分為:第一步,數(shù)據(jù)獲取,系統(tǒng)通過爬蟲模塊將需要的樣本進(jìn)行獲??;第二步,對(duì)大量數(shù)據(jù)進(jìn)行匯總處理并對(duì)樣本做好標(biāo)簽,之后對(duì)處理完的數(shù)據(jù)按比例劃分成訓(xùn)練集,驗(yàn)證集以及測(cè)試集;第三步,對(duì)樣本進(jìn)行特征提取和計(jì)算;第四步,訓(xùn)練子分類器以及構(gòu)建兩層集成學(xué)習(xí)分類器模型。
圖2是整體架構(gòu)中的第四步,模型訓(xùn)練過程的詳細(xì)展示:第一步,將處理過的數(shù)據(jù)集(去重、做標(biāo)簽等操作)劃分為訓(xùn)練集、驗(yàn)證集以及測(cè)試集,其中測(cè)試集和驗(yàn)證集根據(jù)欠采樣的采樣方法劃分為5份;第二步,在每份數(shù)據(jù)集上對(duì)5種常規(guī)的基分類器(KNN、SVM、邏輯回歸、樸素貝葉斯、決策樹)進(jìn)行模型訓(xùn)練;第三步,將訓(xùn)練好的模型在驗(yàn)證集上進(jìn)行測(cè)試,對(duì)5個(gè)基分類器的測(cè)試結(jié)果(精確度、準(zhǔn)確度、F1等評(píng)價(jià)標(biāo)準(zhǔn))分別計(jì)算權(quán)重并以文件的形式進(jìn)行保存,留待后續(xù)的集成學(xué)習(xí)使用;第四步,對(duì)測(cè)試集進(jìn)行預(yù)測(cè),進(jìn)行第一次集成學(xué)習(xí),根據(jù)第三步保存的各基分類器以評(píng)價(jià)標(biāo)準(zhǔn)計(jì)算出的權(quán)重進(jìn)行集成,通過調(diào)整閾值對(duì)測(cè)試集進(jìn)行初步的預(yù)測(cè);第五步,將上一步5組集成學(xué)習(xí)的預(yù)測(cè)結(jié)果通過Bagging投票的方式進(jìn)行再次集成并輸出最終預(yù)測(cè)結(jié)果。
圖2 基于欠采樣和多層集成學(xué)習(xí)的惡意網(wǎng)頁檢測(cè)模型框架
集成學(xué)習(xí)的主要思路是將多個(gè)弱分類器通過某種繼承策略進(jìn)行組合形成一個(gè)集合多個(gè)弱分類器的優(yōu)點(diǎn)的強(qiáng)分類器。欠采樣方法能有效避免樣本不平衡帶來的分類結(jié)果的偏移[15],缺點(diǎn)是若隨機(jī)丟棄反例,可能會(huì)丟失一些重要信息,存在過擬合的問題。集成學(xué)習(xí)可以有效解決欠采樣存在的問題,兩者結(jié)合,能大大提升模型的分類效果。
欠采樣集成學(xué)習(xí)步驟分為:①根據(jù)少類樣本劃分?jǐn)?shù)據(jù)集。多數(shù)類欠采樣分成多組,少類樣本與其進(jìn)行組合,形成多個(gè)訓(xùn)練集樣本;②將分類器模型在每組樣本集上進(jìn)行訓(xùn)練;③使用集成學(xué)習(xí)方法進(jìn)行集成。目前集成學(xué)習(xí)方法有Bagging、Boosting和Stacking等,本文采用Bagging方法集成,算法步驟如下。
欠采樣集成學(xué)習(xí)算法
輸入:
樣本集:D={d0,d1},d1為惡意樣本集,d0為良性樣本集;
訓(xùn)練樣本集:T={t0,t1},t1為惡意訓(xùn)練樣本集,t0為良性樣本訓(xùn)練集;
驗(yàn)證樣本集:V={v0,v1};
待測(cè)試樣本:c
子樣本集數(shù)量s;
子樣本集Di;
良性訓(xùn)練樣本子集t0i;
流程:
(1)Start
(2)初始化樣本集t1=d1*0.7,t0=d0*0.7,v1=d1*0.15,v0=d0*0.15;
(3)根據(jù)惡意樣本訓(xùn)練集計(jì)算子樣本集個(gè)數(shù)s=t0/t1;
(4)構(gòu)建子樣本集Di=t1+t0i,0
(5)在每組子樣本集上訓(xùn)練5個(gè)傳統(tǒng)機(jī)器學(xué)習(xí)模型;
(6)考察并保存模型在驗(yàn)證集上的表現(xiàn)accji,preji,F1ji,0 (7)計(jì)算每個(gè)機(jī)器學(xué)習(xí)模型在各自樣本上的權(quán)重αji,0 (8)計(jì)算出每組子樣本的集成學(xué)習(xí)預(yù)測(cè)結(jié)果predictj,0 (9)Bagging判定每個(gè)樣本c的最終結(jié)果 (10)if ∑0 (11) doc←d1 (12)else (13) doc←d0 (14)End 實(shí)驗(yàn)提出一種基于欠采樣和集成學(xué)習(xí)相結(jié)合的算法。在欠采樣集成學(xué)習(xí)模塊,利用欠采樣處理數(shù)據(jù)樣本的思想,將多數(shù)樣本按少數(shù)樣本數(shù)量分成多份,與少數(shù)樣本構(gòu)成多組數(shù)據(jù)集,以供不同基分類器學(xué)習(xí)。該模塊實(shí)現(xiàn)了數(shù)據(jù)集上的局部平衡,之后通過下一層基于投票的集成學(xué)習(xí)保證全局信息的完整性。整個(gè)模型在保證不丟失重要信息的基礎(chǔ)上消除了不平衡數(shù)據(jù)集對(duì)預(yù)測(cè)結(jié)果的影響。 傳統(tǒng)機(jī)器學(xué)習(xí)檢測(cè)模型各有優(yōu)缺點(diǎn),應(yīng)對(duì)的場(chǎng)景也存在不同,例如邏輯回歸容易欠擬合,準(zhǔn)確率較低;樸素貝葉斯更適合小規(guī)模數(shù)據(jù);決策樹容易過擬合。單一的機(jī)器學(xué)習(xí)模型難以勝任當(dāng)下變化多樣的惡意網(wǎng)頁檢測(cè),而集成學(xué)習(xí)可以通過聯(lián)合多個(gè)弱分類器達(dá)到強(qiáng)分類器的效果,“博采眾長(zhǎng)”,彌補(bǔ)單分類器的缺陷。實(shí)驗(yàn)提出了一種基于評(píng)價(jià)標(biāo)準(zhǔn)和閾值調(diào)整的集成學(xué)習(xí)算法,將5種傳統(tǒng)機(jī)器學(xué)習(xí)模型根據(jù)在驗(yàn)證集上的表現(xiàn)進(jìn)行集成,之后通過調(diào)整閾值來控制輸出結(jié)果。 實(shí)驗(yàn)將5種傳統(tǒng)機(jī)器學(xué)習(xí)模型(邏輯回歸、KNN、SVM、決策樹、隨機(jī)森林)進(jìn)行集成,集成思想是在訓(xùn)練完成后的驗(yàn)證階段通過計(jì)算評(píng)價(jià)標(biāo)準(zhǔn)(準(zhǔn)確率、召回率、F1等評(píng)價(jià)標(biāo)準(zhǔn))在每個(gè)模型訓(xùn)練集上十折交叉驗(yàn)證的分?jǐn)?shù),然后把該分?jǐn)?shù)相加得到總分?jǐn)?shù),最后將每個(gè)分類器的分?jǐn)?shù)與總分?jǐn)?shù)相比,得到單個(gè)分類器的權(quán)值αji(其中j表示第幾組子樣本,i表示該組中的第幾個(gè)分類器)并進(jìn)行保存,留待集成學(xué)習(xí)模型使用。 下面是計(jì)算公式,以acc(準(zhǔn)確率)作為計(jì)算權(quán)重的標(biāo)準(zhǔn)為例 (6) (7) 其中,αj1,αj2,αj3,αj4,αj5分別代表第j組樣本中邏輯回歸、KNN、SVM、決策樹、樸素貝葉斯的權(quán)重,accji,precisionji,F(xiàn)1ji,recallji表示第j組中某個(gè)模型的準(zhǔn)確率、精確率、F1值以及召回率。通過式(6)計(jì)算出5個(gè)基分類器的權(quán)重,基分類器的檢測(cè)效果越好,權(quán)重越大。式(7)為預(yù)測(cè)某個(gè)樣本的計(jì)算公式,其中第j個(gè)樣本預(yù)測(cè)結(jié)果等于每個(gè)模型的權(quán)值乘上該模型對(duì)該樣本的預(yù)測(cè)結(jié)果,最終所有測(cè)試樣本都會(huì)得到一個(gè)介于0~1之間的數(shù)值,將其保存留待后續(xù)通過設(shè)置一個(gè)合適的閾值來得出檢測(cè)結(jié)果 D∈y1,predictj>λ (8) D∈y0,predictj≤λ (9) 如式(8)、式(9)所示,實(shí)驗(yàn)可以控制這個(gè)閾值λ,當(dāng)predictj>λ時(shí)判定為惡意。后續(xù)會(huì)對(duì)不同λ取值做消融實(shí)驗(yàn),來確定一個(gè)效果最好的λ值。 綜上所述,本文提出的基于欠采樣多層機(jī)器學(xué)習(xí)模型在不平衡的數(shù)據(jù)集上通過欠采樣和多層集成學(xué)習(xí)與傳統(tǒng)機(jī)器學(xué)習(xí)相比顯著提升了檢測(cè)效果,使之更加符合當(dāng)前惡意樣本和良性樣本嚴(yán)重失衡的使用環(huán)境。 (1)硬件環(huán)境 CPU:Intel(R) Core i5-8300H;內(nèi)存:DDR4 16 G;硬盤:1 T,7200轉(zhuǎn)/秒。 (2)開發(fā)環(huán)境 開發(fā)操作系統(tǒng):Windows 10旗艦版(64 bit);機(jī)器學(xué)習(xí)開源框架:Scikit-learn;開發(fā)語言及工具:Python3.8、STL標(biāo)準(zhǔn)模板庫(kù)、Visual Studio2016、PyCharm。 4.2.1 用于特征提取的數(shù)據(jù)集 從malwaredomains.com等惡意域數(shù)據(jù)集收集了26 251條惡意域URL,用來提取出現(xiàn)頻率較高的惡意詞,作為后續(xù)的數(shù)據(jù)特征。 從Alexa獲取了世界排名前500的網(wǎng)站,提取出現(xiàn)過的網(wǎng)站名稱,用來統(tǒng)計(jì)數(shù)據(jù)集中的URL出現(xiàn)流行網(wǎng)站名次數(shù)。 4.2.2 訓(xùn)練集、驗(yàn)證集、測(cè)試集 從kdnuggets上收集到了帶標(biāo)簽(good/bad)的URL數(shù)據(jù)集,共416 350條,用作集成學(xué)習(xí)模型的訓(xùn)練和測(cè)試數(shù)據(jù),其中異常數(shù)據(jù)(bad)71 556條,占比17.19%;正常數(shù)據(jù)(good)344 794條,占比82.81%。 將全體數(shù)據(jù)劃分為訓(xùn)練集(70%)、驗(yàn)證集(15%)和測(cè)試集(15%),采用隨機(jī)不放回取樣,并且保證每個(gè)集合中惡意和良性樣本占比例相同。標(biāo)簽為“1”表示惡意URL,標(biāo)簽為“0”表示該URL為良性。 4.2.3 實(shí)驗(yàn)樣本不平衡情況 本文使用kdnuggets上帶標(biāo)簽的URL數(shù)據(jù)集,對(duì)其進(jìn)行統(tǒng)計(jì)分析后,發(fā)現(xiàn)樣本存在數(shù)據(jù)不平衡問題,對(duì)惡意網(wǎng)頁識(shí)別分類具有一定的負(fù)面影響,良性樣本大約是惡意樣本的5倍,具體分布情況見表2,而這種樣本分布不平衡的現(xiàn)象在惡意網(wǎng)頁檢測(cè)領(lǐng)域是廣泛存在的。 表2 數(shù)據(jù)集分布情況 為了能說明一個(gè)系統(tǒng)的檢測(cè)效果,需要一些評(píng)判指標(biāo),對(duì)于二分類問題實(shí)驗(yàn)使用TP(真正例)、FP(假正例)、FN(假反例)、TN(真反例)這4個(gè)指標(biāo)進(jìn)行評(píng)估具體見表3。 表3 評(píng)估標(biāo)準(zhǔn) 實(shí)驗(yàn)還需要使用以下幾個(gè)指標(biāo)來全面衡量惡意網(wǎng)頁檢測(cè)系統(tǒng)的性能,取值0~1之間。公式為 (10) (11) (12) 本文提出的基于欠采樣的多層集成學(xué)習(xí)分類算法在基分類器上依賴5個(gè)傳統(tǒng)的機(jī)器學(xué)習(xí)模型,實(shí)驗(yàn)設(shè)計(jì)了如下方法選出最優(yōu)的集成學(xué)習(xí)參數(shù)以及比較分類效果,找出最合理的處理不平衡數(shù)據(jù)分類的方法。 (1)欠采樣+多層集成學(xué)習(xí)分類算法(找最優(yōu)閾值):對(duì)多類良性網(wǎng)頁樣本欠采樣出5組,與惡意網(wǎng)頁樣本組成新的數(shù)據(jù)集,每組數(shù)據(jù)都對(duì)第一層集成學(xué)習(xí)的5個(gè)傳統(tǒng)機(jī)器學(xué)習(xí)模型進(jìn)行訓(xùn)練,調(diào)整第一層集成學(xué)習(xí)的閾值,找到最優(yōu)的閾值λ。 (2)完全采樣+多層集成學(xué)習(xí)分類算法:將所有數(shù)據(jù)作為訓(xùn)練樣本和測(cè)試樣本分成5組樣本,第一層集成學(xué)習(xí)的基分類器為5個(gè)傳統(tǒng)機(jī)器學(xué)習(xí)模型。 (3)欠采樣+多層集成學(xué)習(xí)分類算法:對(duì)多類樣本(良性網(wǎng)頁)欠采樣出5組樣本,與少類樣本組成新的數(shù)據(jù)集,每組數(shù)據(jù)都對(duì)第一層集成學(xué)習(xí)的5個(gè)傳統(tǒng)機(jī)器學(xué)習(xí)模型進(jìn)行訓(xùn)練。 (4)過采樣+多層集成學(xué)習(xí)分類算法:對(duì)少類樣本(惡意網(wǎng)頁)過采樣,復(fù)制樣本數(shù)量達(dá)到與多類樣本平衡的效果,再對(duì)第一層集成學(xué)習(xí)的5個(gè)傳統(tǒng)機(jī)器學(xué)習(xí)模型進(jìn)行訓(xùn)練。 (5)欠采樣+單層集成學(xué)習(xí)分類算法:欠采樣出5組樣本,通過Bagging得到集成的模型。 (6)欠采樣+傳統(tǒng)機(jī)器學(xué)習(xí)模型:欠采樣出5組樣本,對(duì)5個(gè)傳統(tǒng)機(jī)器學(xué)習(xí)模型進(jìn)行訓(xùn)練。 第一組實(shí)驗(yàn)由上述方法(1)完成,該組實(shí)驗(yàn)?zāi)康氖钦业降谝粚蛹蓪W(xué)習(xí)的最優(yōu)閾值。實(shí)驗(yàn)分別從準(zhǔn) 確 率(acc)、精準(zhǔn)率(precision)和召回率(recall)這3個(gè)維度對(duì)不同分類算法的分類性能進(jìn)行衡量,效果如表4和圖3所示。 圖3 不同λ取值下集成學(xué)習(xí)檢測(cè)效果 表4 不同閾值λ下集成學(xué)習(xí)檢測(cè)效果 表4是基于URL詞匯特征的集成學(xué)習(xí)檢測(cè)效果表(αji依據(jù)acc計(jì)算獲得),通過調(diào)節(jié)不同的λ閾值,可以得到不同的檢測(cè)效果,實(shí)驗(yàn)中共選取了4個(gè)閾值進(jìn)行了實(shí)驗(yàn)比較,通過圖3可以看出,隨著閾值變大,模型的Precision是越來越低的,而Recall則越來越高,ACC在λ=0.4時(shí)表現(xiàn)最好,之后慢慢下降,這是因?yàn)殚撝翟酱?,越不容易被判定為惡意。?dāng)閾值λ=0.4時(shí)集成學(xué)習(xí)的綜合性能最好,雖然Recall略低于λ=0.3,Precision低于λ=0.5和λ=0.6,但是具有更好的準(zhǔn)確率,綜合性能也是最好的,所以整個(gè)系統(tǒng)選取λ=0.4作為后續(xù)實(shí)驗(yàn)中集成學(xué)習(xí)的閾值。 第二組實(shí)驗(yàn)由上述方法的(2)~(4)組成,針對(duì)不平衡數(shù)據(jù)集驗(yàn)證欠采樣在集成學(xué)習(xí)上的有效性。實(shí)驗(yàn)分別通過完全采樣、欠采樣和過采樣3種不同處理數(shù)據(jù)的方法對(duì)相同的集成學(xué)習(xí)模型進(jìn)行惡意網(wǎng)頁分類研究,對(duì)比3種情境下集成學(xué)習(xí)的分類效果,得出最優(yōu)的處理不平衡數(shù)據(jù)集的數(shù)據(jù)處理方法。表5的數(shù)據(jù)對(duì)比可以看出,欠采樣方法的分類效果在準(zhǔn)確率和召回率上要遠(yuǎn)優(yōu)于完全采樣和過采樣,召回率達(dá)到94.88%,相較于完全采樣和過采樣的83.86%和81.93%,有著巨大的提升。其原因在于,完全采樣和過采樣的分類效果更偏向于多數(shù)類,導(dǎo)致檢測(cè)的召回率不盡人意。本實(shí)驗(yàn)設(shè)計(jì)的欠采樣和多層分類器結(jié)合的模型能在保證全局信息完整的基礎(chǔ)上平衡數(shù)據(jù)集,大大提高檢測(cè)模型的召回率,從而提升模型檢測(cè)的準(zhǔn)確率。 表5 不同采樣方式檢測(cè)效果 第三組實(shí)驗(yàn)由上述方法(2)、方法(3)、方法(5)、方法(6)組成,該組實(shí)驗(yàn)用來比較多層集成學(xué)習(xí)模型與單層Bagging集成學(xué)習(xí)模型以及傳統(tǒng)機(jī)器學(xué)習(xí)模型在檢測(cè)效果上的優(yōu)劣,數(shù)據(jù)采集上都使用欠采樣進(jìn)行處理,如表6所示,本文提出的惡意網(wǎng)頁檢測(cè)方法在檢測(cè)效果上相較于單層Bagging集成學(xué)習(xí)模型表現(xiàn)更好,準(zhǔn)確率、精確率和召回率都要優(yōu)于Bagging集成學(xué)習(xí)模型,這是因?yàn)楸緦?shí)驗(yàn)的基分類器在數(shù)據(jù)集上進(jìn)行了平衡,能更好檢出惡意網(wǎng)頁。 表6 不同模型檢測(cè)效果對(duì)比 表6中5種傳統(tǒng)機(jī)器學(xué)習(xí)模型,表現(xiàn)最好的為決策樹,但由于數(shù)據(jù)的不平衡性,在召回率上表現(xiàn)一般。5種機(jī)器學(xué)習(xí)模型作為基分類器在各種參數(shù)上要低于集成學(xué)習(xí)也符合預(yù)期,進(jìn)一步說明了本文提出的集成學(xué)習(xí)模型的有效性。 通過上面多組實(shí)驗(yàn)效果對(duì)比,可以得出結(jié)論:針對(duì)不平衡數(shù)據(jù)集,使用欠采樣與集成學(xué)習(xí)相結(jié)合的方法要比傳統(tǒng)單分類機(jī)器學(xué)習(xí)方法性能上要高;采樣方法相同的情況下,多層集成方法的檢測(cè)效果要優(yōu)于單層集成學(xué)習(xí)以及傳統(tǒng)的機(jī)器學(xué)習(xí)方法。本文提出的欠采樣多層集成學(xué)習(xí)模型能夠較好處理數(shù)據(jù)不平衡的惡意網(wǎng)頁檢測(cè)問題。 本文提出了一種基于欠采樣的多層集成學(xué)習(xí)分類方法,來處理惡意網(wǎng)頁識(shí)別研究中數(shù)據(jù)不平衡問題。方法中先采用欠采樣數(shù)據(jù)處理方法得到多組訓(xùn)練樣本,之后將傳統(tǒng)的5種機(jī)器學(xué)習(xí)模型在驗(yàn)證集上的表現(xiàn)作為權(quán)重構(gòu)建第一層集成學(xué)習(xí)模型,最后通過Bagging投票方式對(duì)這多個(gè)集成結(jié)果進(jìn)一步集成得到最終的檢測(cè)結(jié)果。最終的檢測(cè)結(jié)果表明,該模型是行之有效的,能夠有效處理不平衡數(shù)據(jù)以及惡意網(wǎng)頁識(shí)別問題。3.3 基于權(quán)重和閾值調(diào)整的集成學(xué)習(xí)算法
4 系統(tǒng)實(shí)驗(yàn)測(cè)評(píng)
4.1 實(shí)驗(yàn)環(huán)境
4.2 實(shí)驗(yàn)樣本劃分及不平衡情況
4.3 評(píng)價(jià)標(biāo)準(zhǔn)
4.4 實(shí)驗(yàn)結(jié)果與分析
5 結(jié)束語