李春生,曹 琦,于 澍
(東北石油大學(xué) 計(jì)算機(jī)與信息技術(shù)學(xué)院,黑龍江 大慶 163318)
機(jī)器學(xué)習(xí)作為人工智能的重要研究?jī)?nèi)容,經(jīng)過(guò)半個(gè)世紀(jì)的發(fā)展,現(xiàn)今已和模式識(shí)別、數(shù)據(jù)挖掘、統(tǒng)計(jì)學(xué)習(xí)、計(jì)算機(jī)視覺(jué)、自然語(yǔ)言處理等多個(gè)領(lǐng)域相互影響、交織發(fā)展[1]。
集成學(xué)習(xí)目前是機(jī)器學(xué)習(xí)領(lǐng)域中的一種研究方向。使用弱學(xué)習(xí)器通過(guò)多模型融合的思想可以極大提高準(zhǔn)確率。當(dāng)前集成學(xué)習(xí)(Bagging)主要使用弱學(xué)習(xí)器,且為同類(lèi)模型,例如隨機(jī)森林使用多棵深度較淺的決策樹(shù),在構(gòu)建Bagging集成的基礎(chǔ)上將決策樹(shù)作為基學(xué)習(xí)器[2],最終進(jìn)行投票獲得最終結(jié)果。文中嘗試使用多類(lèi)強(qiáng)學(xué)習(xí)器進(jìn)行模型融合,并與單一強(qiáng)學(xué)習(xí)器進(jìn)行指標(biāo)對(duì)比。
決策樹(shù)是一個(gè)有監(jiān)督的機(jī)器學(xué)習(xí)算法,常用于分類(lèi)預(yù)測(cè)等諸多領(lǐng)域,由于其高效性、誤差小的優(yōu)點(diǎn),在分類(lèi)問(wèn)題中得到了廣泛的應(yīng)用。在決策樹(shù)中,內(nèi)部分支節(jié)點(diǎn)表示一個(gè)條件屬性,而葉子節(jié)點(diǎn)表示一種決策屬性或分類(lèi)結(jié)果[3-5]。決策樹(shù)是一個(gè)預(yù)測(cè)模型,其葉節(jié)點(diǎn)代表最終樣本分類(lèi),各屬性劃分代表分類(lèi)規(guī)則。
由于文中解決二分類(lèi)問(wèn)題,選用當(dāng)前較為流行的C4.5算法作為其中一種基類(lèi)模型,C4.5算法是由J.Ross Quinlan開(kāi)發(fā)并且用于決策樹(shù)的算法[6]。C4.5算法流程與ID3類(lèi)似,相比ID3,將信息增益改為信息增益比,選擇信息增益比大的特征當(dāng)作決策樹(shù)的節(jié)點(diǎn)并不停遞歸構(gòu)建決策樹(shù),同時(shí)設(shè)置閾值避免過(guò)擬合。主要公式如下:
數(shù)據(jù)集S的信息熵:
特征F對(duì)于數(shù)據(jù)集S的條件信息熵:
特征F的信息增益:
Gain(S,F)=H(S)-H(S/F)
特征F對(duì)數(shù)據(jù)集S的分裂信息:
特征F對(duì)數(shù)據(jù)集S的信息增益比[7]:
邏輯回歸(logistic regression)是一種可以用來(lái)分類(lèi)的常用統(tǒng)計(jì)分析方法,并且可以得到概率型的預(yù)測(cè)結(jié)果,屬于一種概率型非線性回歸[8-10]。邏輯回歸是經(jīng)典的分類(lèi)模型,它將模型拆分為線性部分和激活函數(shù),主要公式如下:
假設(shè)x為輸入變量,W為權(quán)重矩陣,B為偏置,A為線性部分輸出,則線性部分函數(shù)為:
A=Wx+B
激活函數(shù)使用sigmoid函數(shù),將線性部分輸出A當(dāng)作sigmoid函數(shù)輸入值,y為預(yù)測(cè)結(jié)果:
通過(guò)使用梯度下降或者mini-Batch梯度下降等算法完成對(duì)模型損失函數(shù)的迭代,最終給出權(quán)重W和偏置B。
文獻(xiàn)[11-15]指出支持向量機(jī)(support vector machines,SVM)是一種二分類(lèi)模型,它的基本模型是定義在特征空間上的間隔最大的線性分類(lèi)器,間隔最大使它有別于感知機(jī)。文中選用線性可分支持向量機(jī),通過(guò)核函數(shù)與軟間隔最大化,學(xué)習(xí)得到分類(lèi)決策函數(shù):
其中K(x,xi)為正定核函數(shù),使用序列最小最優(yōu)化(sequential minimal optimization,SMO)算法實(shí)現(xiàn)支持向量機(jī)的優(yōu)化過(guò)程。SMO算法要解決的是凸二次規(guī)劃的對(duì)偶問(wèn)題:
SMO基本思路為選擇兩個(gè)變量,固定其他變量,針對(duì)這兩個(gè)變量構(gòu)建一個(gè)二次規(guī)劃問(wèn)題,這時(shí)子問(wèn)題可以極大提高算法的運(yùn)算速度。SMO算法將原問(wèn)題不斷分解為子問(wèn)題并對(duì)子問(wèn)題進(jìn)行求解,進(jìn)而達(dá)到求解原問(wèn)題的目的。
多模型融合算法思想與Bagging集成學(xué)習(xí)算法思想類(lèi)似,對(duì)比Bagging集成學(xué)習(xí)將弱學(xué)習(xí)器當(dāng)作基學(xué)習(xí)器,使用平均投票得出最終結(jié)果的方式。文中提出的多模型融合算法使用強(qiáng)學(xué)習(xí)器決策樹(shù)、邏輯回歸、SVM作為基學(xué)習(xí)器,并將基學(xué)習(xí)器輸出當(dāng)作下一階段的輸入,加入權(quán)重矩陣并使用最大似然估計(jì)迭代優(yōu)化參數(shù),計(jì)算出基學(xué)習(xí)器模型的輸出權(quán)重參數(shù),從而完成多模型融合過(guò)程。
多模型融合算法共分為兩部分:基學(xué)習(xí)器訓(xùn)練、基學(xué)習(xí)器權(quán)重訓(xùn)練。
第一部分:
輸入:訓(xùn)練數(shù)據(jù)集T={(x1,y1),(x2,y2),…,(xN,yN)};各基學(xué)習(xí)器損失函數(shù){L(y,f(x))};基學(xué)習(xí)器集{b(χ;γ)};
輸出:各基學(xué)習(xí)器模型{f(x)}。
(1)初始化各f(x)。
(2)針對(duì)各個(gè)基學(xué)習(xí)器極小化損失函數(shù):
min(Loss(y,f(x)))
(3)更新基學(xué)習(xí)器模型參數(shù)。
(4)得到{f(x)}。
第二部分:
輸入:訓(xùn)練數(shù)據(jù)集合T={(x1,y1),(x2,y2),…,(xN,yN)};第一部分已經(jīng)訓(xùn)練完成的基學(xué)習(xí)器模型,MSE損失函數(shù);
輸出:各基類(lèi)學(xué)習(xí)器權(quán)重參數(shù)。
(1)初始化權(quán)重矩陣W,初始化多模型融合函數(shù):
fall(x)=w1×fLR(x)+w2×fTree(x)+w3×fsvm(x)
(2)目標(biāo)函數(shù):
(3)最終輸出各基學(xué)習(xí)器參數(shù)與對(duì)應(yīng)權(quán)重。
文中使用泰坦尼克號(hào)之災(zāi)數(shù)據(jù)集驗(yàn)證算法效果。泰坦尼克號(hào)之災(zāi)是Kaggle上經(jīng)典的二分類(lèi)問(wèn)題,造成海難失事的原因之一是乘客和機(jī)組人員沒(méi)有足夠的救生艇。盡管幸存下沉有一些運(yùn)氣因素,但有些人比其他人更容易生存,比如女人,孩子和上流社會(huì),通過(guò)分析數(shù)據(jù),使用機(jī)器學(xué)習(xí)模型,判斷乘客能否存活。通過(guò)最終結(jié)果表明,該數(shù)據(jù)集可以有效檢驗(yàn)各模型性能對(duì)比情況。
泰坦尼克號(hào)之災(zāi)數(shù)據(jù)集共有訓(xùn)練數(shù)據(jù)891條,有12列屬性,其中Cabin屬性由于缺失值占比過(guò)多,將屬性值轉(zhuǎn)化為有值(yes),無(wú)值(no),同時(shí)使用眾數(shù)補(bǔ)償Age中Null值。屬性信息如表1所示,訓(xùn)練數(shù)據(jù)如圖1所示。
表1 屬性列表
圖1 訓(xùn)練數(shù)據(jù)
針對(duì)所有保留屬性創(chuàng)建與label變量的映射圖,直觀觀察變化關(guān)系,剔除無(wú)明顯相關(guān)關(guān)系的屬性,使用保留屬性建立特征集合,對(duì)離散特征進(jìn)行因子化,對(duì)連續(xù)特征進(jìn)行歸一化操作,最終生成特征變量,部分有效屬性與label對(duì)應(yīng)關(guān)系圖如圖2所示。在圖中可以明顯觀察出Age、Sex等變量與label相關(guān)性強(qiáng),而變量Name、Ticket由于是隨機(jī)化數(shù)據(jù)從而導(dǎo)致與label無(wú)明顯關(guān)系。
圖2 部分變量與Label對(duì)應(yīng)關(guān)系
評(píng)價(jià)模型指標(biāo)有多類(lèi),由于文中為二分類(lèi)問(wèn)題,所以選用精確率、召回率、準(zhǔn)確率、ROC評(píng)價(jià)模型性能。
精確率(Precision)指的是模型輸出結(jié)果中判斷為正樣本的數(shù)據(jù)中真實(shí)為正樣本的比例。
召回率(Recall)指的是有多少正樣本被準(zhǔn)確標(biāo)出。
設(shè)模型輸出的正樣本集合為A,真正的正樣本集合為B,則有:
準(zhǔn)確率(Accuracy)衡量的是分類(lèi)正確的比例。假設(shè)是y^是模型輸出的預(yù)測(cè)label,y為樣本中正確的label,則準(zhǔn)確率為:
ROC曲線是以假正率為橫坐標(biāo),真正率為縱坐標(biāo)的曲線圖。設(shè)模型預(yù)測(cè)的正樣本集合為A,真正的正樣本集合為B,所有樣本集合為C,則A與B的交集個(gè)數(shù)除以B的個(gè)數(shù)為真正率(true-positive rate),A與B交集的個(gè)數(shù)除以C減B的個(gè)數(shù)為假正率(false-positive rate)。AUC(area under curve)分?jǐn)?shù)是曲線下的面積,越大意味著分類(lèi)器效果越好。
在表2實(shí)驗(yàn)數(shù)據(jù)指標(biāo)中列舉出各個(gè)模型在測(cè)試集中的評(píng)價(jià)指標(biāo),并增加神經(jīng)網(wǎng)絡(luò)與多模型融合進(jìn)行橫向?qū)Ρ?,通過(guò)對(duì)比得出,多模型融合算法在精確率、召回率、準(zhǔn)確率、AUC各個(gè)指標(biāo)上均有明顯提升。相對(duì)于神經(jīng)網(wǎng)絡(luò)這類(lèi)深度學(xué)習(xí)模型,多模型融合算法更加適用于小規(guī)模數(shù)據(jù)集。
表2 實(shí)驗(yàn)數(shù)據(jù)指標(biāo)
在小規(guī)模數(shù)據(jù)集合中,多模型融合算法可以融合各個(gè)模型優(yōu)勢(shì),對(duì)基學(xué)習(xí)器預(yù)測(cè)正確結(jié)果給予更大權(quán)值,對(duì)預(yù)測(cè)錯(cuò)誤結(jié)果減小權(quán)值,通過(guò)數(shù)據(jù)累加,最終增大模型預(yù)測(cè)準(zhǔn)確率,同時(shí)提升模型各項(xiàng)指標(biāo)。相對(duì)于深度學(xué)習(xí)模型需要大量數(shù)據(jù)進(jìn)行訓(xùn)練,多模型融合算法更加適用于小數(shù)據(jù)集。文中在特征選擇中并不完善,后續(xù)可以通過(guò)特征組合等方式進(jìn)行提升。