龔云翔,袁仕芳,劉付謙
(五邑大學數(shù)學與計算科學學院,廣東 江門 529020)
2021年2月25日,習近平總書記在全國脫貧攻堅總結表彰大會上莊嚴宣告:我國脫貧攻堅戰(zhàn)取得了全面勝利。但貧困地區(qū)脫貧有不穩(wěn)定性、脆弱性,如何防范脫貧人口再次返貧是現(xiàn)在鞏固脫貧攻堅成果仍需要面對的重點問題。習近平總書記強調:“防止返貧和繼續(xù)攻堅同樣重要,要把防止返貧擺在重要位置,適時組織對脫貧人口開展‘回頭看’”。因此為了維護脫貧攻堅的勝利成果,如何精準識別和預測返貧戶并且制定出合適的幫扶政策是極其重要的。
當前,不少學者利用大數(shù)據(jù)時代的紅利,結合現(xiàn)代技術對精準扶貧等相關領域展開研究。在國內,閻昊[1]先基于SPAC模型選取影響因子,再利用FP-Growth算法挖掘最大返貧特征集及其關聯(lián)規(guī)則,最后采用貝葉斯正則化算法對搭建的BP神經(jīng)網(wǎng)絡進行訓練,為扶貧政策的制定提供了更精確的數(shù)據(jù)支持;田昆[2]在對進行T檢驗后提取主要特征的樣本在Spark平臺下利用Logistic模型進行返貧預測,并用聚類算法分析返貧原因,使得幫扶更加有針對性;朱容波等人[3]提出了優(yōu)化的FOA-BPNN模型,對扶貧的成效與脫貧時間進行準確刻畫;唐小兵等人[4]利用主成分分析建立了縣域貧困脆弱性評價模型,得到了不同縣域的貧困脆弱性指數(shù)、分級閾值和區(qū)劃圖;張學敏等人[5]基于AHP和DP神經(jīng)網(wǎng)絡的方法進行建模,得出年人均收入和義務教育保障對返貧的影響最大的結論。在國外,Xu等人[6]提出一種基于粒子群優(yōu)化和禁忌搜索混合算法的混沌回波狀態(tài)網(wǎng)絡多時間尺度風電預測模型;Mesina等人[7]利用衛(wèi)星圖像和卷積神經(jīng)網(wǎng)絡架構Alex Net判斷菲利普各城市的貧困程度,從而得到一套更寬泛的社會增長指標;Pokhriyal等人[8]針對數(shù)據(jù)源單一的問題,提出了一個基于貝葉斯算法以最細的空間粒度和覆蓋范圍準確預測全球多維貧窮指數(shù)的計算框架;Sheng等人[9]設計了一個數(shù)據(jù)驅動的程序來捕捉貧困與相關數(shù)據(jù)之間的相關性,提出了一個深層神經(jīng)網(wǎng)絡多通道模型來對多類型特征進行編碼。
上述研究沒有考慮數(shù)據(jù)集不平衡的情況。現(xiàn)實中,返貧與已脫貧的數(shù)據(jù)往往是不平衡的,即返貧樣本個數(shù)顯著小于已脫貧樣本個數(shù)。傳統(tǒng)機器學習方法僅適用于樣本數(shù)量均衡的數(shù)據(jù)集上,在不均衡的數(shù)據(jù)集上非常容易將數(shù)量少的樣本錯誤分類為數(shù)量多的樣本,這會極大降低模型分類的敏感度。因此本文提出一種基于SMOTE模型與集成學習結合的返貧預測方法,將數(shù)據(jù)進行預處理后利用SMOTE算法對少數(shù)類別樣本進行過采樣,使用隨機森林(RF)、梯度提升模型(GBDT、XGBoost)、支持向量機(SVM)等4種基學習器進行模型融合,并與單一學習模型和其他融合模型進行對比以驗證本文模型的有效性。
本文選用的數(shù)據(jù)集中未返貧家庭有3638戶,返貧家庭有230戶,比例約為16:1。若以此為樣本進行訓練,會使得模型正確預測少數(shù)樣本的類別標簽的能力比多數(shù)樣本更為重要,因此本文利用STMOE算法對少類別的樣本進行過采樣處理。
SMOTE是一種基于隨機過采樣方法改進的算法[10],其根據(jù)少數(shù)類屬性特征隨機產(chǎn)生相似樣本,有效地平衡少數(shù)類與多數(shù)類之間數(shù)量,減少數(shù)據(jù)集過度傾斜[11]。SMOTE過采樣的策略是對于每一個少數(shù)樣本x,基于KNN算法隨機選取一個少數(shù)樣本y,在樣本x與y之間的連線上隨機選取一點生成新的少數(shù)樣本xnew,計算公式如下:
xnew=xi+rand(0,1)(yi-xi),i=1,2,…,n
為了能夠更直觀地解釋SMOTE的采樣思想,本文將其可視化,圓圈代表類別為多數(shù)的樣本,五角星表示類別少數(shù)的樣本,三角形表示基于SMOTE模型新生成的樣本,如圖1所示。
圖1 SMOTE過采樣示意圖
Stacking模型[12]是由Wolpert提出的,其本質是一種串行結構的多層學習模型。不同于傳統(tǒng)的集成學習模型裝袋法(Bagging)和提升法(Boosting),Stacking框架是將不同的基學習器組合起來進行模型融合[13],如圖2所示。
圖2 不同集成學習模型的比較
Stacking算法的第1層學習器為基學習器,第2層學習器為元分類器,元分類器一般為簡單模型。其簡要工作步驟為:利用k折交叉驗證對n個基學習器訓練,每一個基學習器取k-1折訓練,剩余1折預測,將n個基學習器預測結果合并組成新的訓練集,輸入到第2層的元學習器進行訓練。
隨機森林模型是Bagging的典型代表,其是一種將決策樹作為Bagging算法元分類器的集成學習方法[14]。該算法具體步驟如下:
1)假設數(shù)據(jù)集有N個樣本,依據(jù)Bootstrap方法抽取數(shù)量不大于N的訓練子集,重復k次得到k個訓練子集。
2)從原始R維特征中隨機選取n維子特征空間,重復k次得到k個特征子空間。
3)隨機選取一個訓練子集和一個子特征空間,按照決策樹算法生成一棵決策樹,有k個訓練子集和k個子特征空間,即生成k棵決策樹。
4)k棵決策樹集成在一起構成隨機森林,對新的樣本進行分類時,新的樣本首先會由決策樹進行投票,以票數(shù)較多的類別作為輸出結果。
GBDT回歸模型[15-16]是以二叉回歸CART樹作為基學習器的一種集成學習算法。每一次迭代計算都是為了減少上一次的殘差,在殘差減少的梯度方向上建立一棵新的決策樹,模型最終輸出結果為生成決策樹的累加。具體過程如下:
設有T輪迭代,損失函數(shù)為L(yi,f(xi)),則第t次迭代的第i個樣本的殘差為:
每棵樹的每一個葉子節(jié)點計算最小的損失函數(shù),得到最優(yōu)的葉子節(jié)點作為輸出值:
θtj=argmin∑xi∈RtjL(yi,ft-1(xi)+θ)
其中Rtj表示新回歸樹對于的葉子節(jié)點區(qū)域,j為一棵樹中葉子節(jié)點數(shù)量,θ為初始值,經(jīng)過T輪迭代最終得到GBDT模型為:
其中I為指示函數(shù),若x∈Rtj,則I=1,否則I=0。
XGBoost是GBDT的一種高效系統(tǒng)實現(xiàn),其融合多個弱學習器(樹模型)構成一個強學習器,該算法可以有效地控制模型復雜度,防止過擬合現(xiàn)象[17-18],其具體原理如下:
XGBoost的核心思想是最小化第k棵樹的殘差,其利用二階泰勒展開式來求解目標函數(shù)[19],展開后為:
本文選取SVM模型[20]作為Stacking中的第2層分類器,其核心思想是將特征信息通過核函數(shù)的特征變換映射到高維空間,在高維空間內求取將不同類別的樣本準確分開并使安全間隔最大的最優(yōu)超平面ωx+b=0。選擇核函數(shù)K,構造目標函數(shù)和約束條件為:
通過求偏導計算出ω*和b*,最終得到最優(yōu)分類函數(shù)公式:
對于二分類問題,基于真實類別和預測類別組合,可形成分類結果的混淆矩陣[21],如表1所示?;诨煜仃?,本文選取正確率(Accuracy)與F1-score[22-23]作為模型的評價指標。正確率是模型最常用的評價指標,可以在一定程度上反應模型預測或是分類的性能。
表1 混淆矩陣
在表1中,TN表示真實值為0且預測值也為0的樣本數(shù)量;FP表示真實值為0但預測值為1的樣本數(shù)量;FN表示真實值為1但預測值為0的樣本數(shù)量;TP表示真實值為1且預測值也為1的樣本數(shù)量。
在不平衡數(shù)據(jù)集下,還需引入F1-score作為評價指標,F(xiàn)1-score綜合了精準率(Precision)和召回率(Recall)這2種評價指標。評價指標計算公式如下:
本實驗數(shù)據(jù)集來源于江門市大數(shù)據(jù)局的脫敏數(shù)據(jù),該數(shù)據(jù)集共有22個特征,本文利用平均值來填補住房面積、耕地面積、低保金、距村主干路距離等特征,利用眾數(shù)來填補貧困戶屬性、飲水是否安全、入戶類型等特征。在經(jīng)過SMOTE算法過采樣后,將原本230戶返貧戶樣本增加至1300戶,標簽為返貧與標簽為未返貧的樣本數(shù)據(jù)比例約為3∶1,總計樣本數(shù)共4708條,屬于正常范圍。
圖3顯示了PCA降維算法各個維度的特征值貢獻率以及累計貢獻率。當特征值累計貢獻達到80%時,就認為保留了原始數(shù)據(jù)集的主要特征。因此從圖3可以看出,數(shù)據(jù)集由原本22個維度可以降至13個維度。
圖3 數(shù)據(jù)集特征貢獻率
本文劃分數(shù)據(jù)集的80%作為訓練集,20%作為測試集,利用網(wǎng)格搜索法[24]和交叉驗證法[25]相結合的方式對模型進行參數(shù)優(yōu)化。首先在較大步長下進行隨機搜索選擇出最優(yōu)參數(shù)值,接著采用較小步長在最優(yōu)點附近進行劃分,利用10折交叉驗證確定出得分最高的參數(shù)組合,從而確定出全局最優(yōu)參數(shù)值。各個子模型尋優(yōu)后的參數(shù)值具體見表2~表5。
表2 SVM模型參數(shù)解釋與優(yōu)化值
表3 RF模型參數(shù)解釋與優(yōu)化值
表4 GBDT模型參數(shù)解釋與優(yōu)化值
表5 XGBoost模型參數(shù)解釋與優(yōu)化值
為了進一步驗證Stacking集成學習模型的有效性,本文將每一個基學習器與不同的融合模型進行比較,在測試集上評價指標結果如表6所示。
表6 單一模型與融合模型評價結果匯總
從圖4可以看出,在對脫貧家庭進行是否返貧預測時,大多單一模型的Accuracy與融合模型相差無幾,但融合模型的F1-score明顯都要優(yōu)于單一的模型,這表明在面對不平衡數(shù)據(jù)集的情況下,單一模型更容易出現(xiàn)誤判。在4種融合模型的預測中,XGBoos+GBDT+SVM的綜合評價得分相較于其他3種模型最差,因為在模型融合中,GBDT與XGBoost的原理都是提升法,屬于相近的模型,融合后的效果往往不如之間差異較大的模型,其Precision的值最高,意味著把未返貧家庭錯誤預測為返貧的可能性更小,但較低的Recall,意味著把已返貧的家庭錯誤預測為未返貧的可能性更大。通過比較RF+GBDT+SVM和RF+XGBoost+SVM可以發(fā)現(xiàn),單一模型的預測效果越好,模型融合后的預測效果相對更好。F1-score是Precision和Recall的加權平均,RF+XGBoost+GBDT+SVM模型的此項得分最高,可以在一定程度上保證模型的誤判率更低,從而實現(xiàn)扶貧工作精準度與人力資源的平衡。
圖4 8種不同模型的預測結果對比
為了進一步驗證模型的泛化能力,本文選取經(jīng)典不平衡信用卡欺詐數(shù)據(jù)集進行驗證,信用卡欺詐數(shù)據(jù)集包含30個屬性,其中標簽分布為284315∶492,比例約為578∶1,同樣利用SMOTE算法對該數(shù)據(jù)集進行操作,過采樣后的樣本類別比例仍為3∶1,利用3.2節(jié)中的RF+XGBoost+GBDT+SVM融合模型來測試分類效果。圖5為融合模型與SVM模型測試結果的ROC曲線對比。ROC曲線是繪制真陽性率與假陽性率的二維圖,ROC的曲線下面積AUC能將ROC曲線簡化為一個單一的量化指標[26-27]。
(a) 融合模型ROC曲線
由圖5可知,融合模型在信用卡欺詐數(shù)據(jù)集上的AUC為95.07%,并且F1得分也達到0.9367,而傳統(tǒng)的SVM模型的AUC只有73.78%,F(xiàn)1得分僅有0.6244。這表明本文選取的融合模型有較強的泛化能力,優(yōu)于傳統(tǒng)的機器學習模型,不僅能夠有效地預測脫貧家庭是否返貧,還可以很好地遷移到其他領域。
針對不平衡數(shù)據(jù)集的返貧預測任務,本文首先利用SMOTE算法進行過采樣處理,其次提出了Stacking模型融合的算法,Stacking結合了隨機森林模型、GBDT和XGBoost模型作為第1層的基分類器,集成融合了SVM作為第2層的元分類器,將不同的融合模型和單一模型進行比較,最終得到融合模型的準確率和穩(wěn)定性都要優(yōu)于單一模型。
本文模型可理解性強并且預測準確率較高,能夠滿足相關部門精準識別返貧家庭需求,對鞏固維護脫貧攻堅的勝利成果具有重要意義。