李春雷 王文生 郭雷風 陳桂鵬



摘要:2020年底精準扶貧工作勝利完成,但絕對貧困和區域性整體貧困的消除并不意味著貧困的消失和扶貧工作的結束。黨中央多次強調要健全防止返貧動態監測和幫扶機制,對易返貧致貧人口實施常態化監測。當前對返貧動態監測的研究多為宏觀政策性內容,對貧困人口進行返貧識別的微觀操作性研究較少。針對上述問題,利用貧困戶建檔立卡數據進行數據處理選取14維特征,構建基于集成學習算法的返貧人口識別模型進行貧困人口分類。結果表明,經調優的XGBoost算法模型取得最優結果,對已脫貧、未脫貧及返貧3類人員分別達97.43%、92.44%、97.04%的識別準確率,總體達到96.81%的準確率,能夠較好識別出貧困人口貧困類別。為幫扶工作人員的防返貧動態監測和幫扶工作提供技術支持。
關鍵詞:建檔立卡;集成學習;返貧識別;動態監測
中圖分類號: F323.8;TP181? 文獻標志碼: A
文章編號:1002-1302(2021)17-0231-07
收稿日期:2021-02-02
基金項目:江西現代農業科研協同創新專項(編號:JXXTCX201801-03)。
作者簡介:李春雷(1994—),男,河北邢臺人,碩士研究生,主要從事信息技術農業應用相關研究。E-mail:lcl050024@126.com。
通信作者:王文生,博士,研究員,博士生導師,主要從事農業信息化相關研究。E-mail:13911359883@163.com。
在2020年12月3日中共中央政治局常務委員會會議上,中共中央總書記習近平宣布,經過8年持續奮斗,現行標準下農村貧困人口全部脫貧,消除了絕對貧困和區域性整體貧困,取得了脫貧攻堅重大勝利。隨著精準扶貧的完成,全國約9 900萬貧困人口實現脫貧,貧困地區的已脫貧貧困人員返貧問題也隨之顯現。2020年以來受極端氣候災害、新冠疫情等突發事件以及國際形勢變化的影響,已脫貧人口面臨較大的返貧壓力,以及部分邊緣人口也面臨致貧風險。因此,“后扶貧時代”的關注焦點是怎樣實現可持續脫貧。黨的十九大明確,農村絕對貧困人口實現脫貧,并不意味著農村貧困的消失和扶貧工作的結束,要進一步鞏固建設成果,防止返貧。
現階段對防止返貧監測預警的研究多為政策干預層面,如根據多維指標建立評價體系進行相對貧困預警監測分級,采取分級治理措施[1]。而對于返貧人口的識別監測工作的具體操作研究較少,主要工作方式仍是依賴精準扶貧階段建設的扶貧工作體系,扶貧干部、信息員等一線扶貧工作者入戶摸排進行信息采集和回訪,將入戶結果整理后自下向上層層上報[2]。在2020年12月28日中央農村工作會議上,黨中央決定從脫貧之日起設立5年過渡期,過渡期內要保持主要幫扶政策總體穩定,逐步實現向全面推進鄉村振興平穩過渡。這個過程中,扶貧工作隊以及各單位抽調的幫扶人員必然要逐步撤出,原有的扶貧工作機制必然要有所轉變。加強對大數據等信息技術的利用,是實現對重點人群常態化監測的必然要求,也是減輕扶貧工作人員工作壓力、提高返貧監測和幫扶工作效率的重要保障。
近幾年大數據、機器學習等技術也開始被應用于扶貧工作中。在貧困人口精準識別工作中利用隨機森林算法對貧困人口進行精準識別能夠取得不錯的效果[3],但相關工作多采用社會科學調查數據,存在成本較高、周期較長的不足。部分研究人員提出利用大數據信息系統進行返貧預警[4],但是對如何利用大數據進行返貧預警的操作多為宏觀闡述。國外學者在研究減貧問題過程中提出利用深度學習技術基于低成本高分辨微星圖像估計區域財富和消費水平,以此彌補缺乏大規模可靠公共數據的缺陷[5]。
自精準扶貧工作開展以來,在中央和地方共同努力下,各地針對本地區貧困戶進行了建檔立卡等多方面數據采集工作[6],積累了大量的能夠反映區域特征的貧困人口數據。基于現有的大規模、細粒度的數據優勢,深入挖掘利用建檔立卡數據,以此提升精準識別精度、為幫扶政策制定提供決策依據。有研究者利用機器學習算法結合建檔立卡數據進行幫扶方式推薦[7],為扶貧工作者提供扶貧方式參考。而當前對挖掘到的建檔立卡數據進行返貧識別的研究較少。本研究利用精準扶貧工作中積累的建檔立卡數據,采用能夠處理多數據類型、訓練速度快、魯棒性較強的XGBoost等集成學習算法建模,對貧困人口進行已脫貧、貧困、返貧三分類識別,對已脫貧人口長期跟蹤,對返貧貧困人口動態監測和及時干預,減輕扶貧工作人員工作壓力,提高工作效率,使精準扶貧已取得的工作成果得到保障。
1 數據來源及處理
1.1 數據來源及試驗設備
本研究所用的數據來源于筆者所在團隊對國家級貧困縣H省B市F縣建設的幫扶項目“精準扶貧大平臺”,該項目旨在從全要素、全生命周期提升當地的精準扶貧工作的信息化水平,項目建設期間幫助F縣當地各單位幫扶人員幫扶信息系統,利用web端平臺、手機app等多種方式助力F縣精準扶貧工作,提升精準扶貧工作效率。所用的數據節點為2020年初F縣貧困人員信息,共計貧困戶31 438戶92 482人,其中尚未脫貧11 367人,已脫貧 79 777 人,返貧人員1 338人。
所用開發語言為Python 3.7配合sklearn工具包和XGBoost、LightGBM及CatBoost對應的Python工具包;所有計算運行環境均為Win10操作系統,采用i5-9600KF 6Core處理器。
1.2 原始數據處理及特征構建
貧困人員家庭人均純收入是其一段時期內的收入反映,但這一指標容易受到短期幫扶政策因素或者貧困人員家庭變故的影響。故僅憑借收入這一單獨指標來認定貧困人口脫貧狀態存在一定的局限性,在當下以及日后的扶貧以及防止返貧工作中是遠遠不夠的。運用多維貧困測度方法,從多個維度對貧困人口進行識別,更加精準地發現貧困人口困難所在,有針對性進行幫扶,對貧困人口脫貧動態追蹤管理,才能夠有效提升精準扶貧效率[8]。
根據羅麗在可持續升級分析框架的基礎上構建的多維貧困識別指標體系中的指標[3],從勞動能力、教育文化、勞動技能、基礎設施、家庭收入等方面對建檔立卡數據進行格式統一整理、轉化和清洗,對收集到的貧困人口原始數據進行處理和特征篩選。各地大量記錄表明,疾病醫療是導致貧困或返貧的重要原因之一[9]。許多原本依靠自身務工擺脫貧困的家庭,由于家庭成員患病失去務工收入且還有可能需要家中其他勞動力辭工照顧,使得本已脫貧的家庭再度返貧。故據此增加構建家庭疾病人口比率這一特征,及根據戶號、家庭人口數量以及人員健康情況信息計算患病和殘疾人數占家庭人口總數比例。為便于建模分析,將原始數據中的各項貧困特征類別數據轉化為數值數據,具體數值定義見表1。
原始數據中的每戶人數、外出務工時間(月)、平均收入3項數值型數據均不做轉換處理。根據表中數值定義將貧困人口原始數據轉換為數值型,轉換過后貧困人口數據轉換成為一個貧困數據矩陣,即可作為算法的輸入數據進而構建貧困人口分類算法模型,最終構建成為包含14個特征92 482條數據的數據集。利用sklearn工具包的數據劃分工具,將數據隨機打亂,根據類別比例,80%劃分為訓練集,其他用作驗證集。
2 模型介紹
本研究采用近年來在實際業務場景中有優異表現的集成學習算法來構建貧困人口識別模型。集成學習即使用一系列的學習器進行學習,采用某種規則將得到的學習器的學習結果進行整合,從而得到更好的學習效果。
2.1 極端梯度提升(XGBoost)
XGBoost是由陳天奇博士團隊2014年開源的機器學習項目,在2016年機器學習比賽中大放異彩,之后便成為了各類比賽的首選算法[10]。XGBoost的目標函數:
L(φ)=∑il(y^i,yi)+∑kΩ(fk)。(1)
相比于原始GBDT,多了正則項,能夠減少過擬合的可能,同時加快了收斂速度。
Ω(f)=γT+12λ‖w‖2。(2)
式中:γ表示樹分裂難度系數,來控制樹的生成;T表示葉子節點個數;λ表示的是L2正則系數,如此對葉子節點個數進行懲罰,相當于在訓練過程中剪枝。將損失函數用泰勒公式二階展開,如此新的目標函數能夠取得更快的收斂速度和準確性,最終目標函數變為公式(3)。
obj(i)=-12∑Tj=1(∑i∈Ijgi)2∑i∈Ijhi+λ+γT。(3)
式中:Ij{q(Xi)=j}表示該樹中索引為j的葉子上含有的樣本集合,在XGBoost中用q(xi)表示樣本xi輸入到模型后會被劃分到哪個葉子節點hi為損失函數L(φ)的二階導數;gi為損失函數L(φ)的一階導數。
2.2 LightGBM
LightGBM為2017年微軟亞洲研究院開源的模型[11],是在XGBoost上進一步改進的,也是基于GBDT算法演變而來的。XGBoost在選擇最優分裂點時需要掃描每一個樣本點的特征,非常耗費時間和內存。LightGBM主要解決了GBDT在大數據情況下的問題,讓GBDT更方便用于實踐。LightGBM采用histogram算法,將樣本浮點特征離散化,進行分桶形成K個整數特征,同時構造寬度為K的直方圖。在遍歷同時,將離散值作為累計索引進行統計,根據離散值尋找最佳分割點。利用直方圖做差加速,將原本需要遍歷葉子節點所有數據簡化為遍歷直方圖的K個桶。LightGBM使用帶有深度限制的按葉子生長(leaf-wise)算法,更加高效。每次從當前所有葉子中,找到分裂增益最大的葉子進行分裂,如此循環。在分裂次數相同的情況下,leaf-wise可以降低更多誤差,取得更好的精度。防止產生較深的決策樹,出現過擬合,LightGBM增加了一個最大深度限制用來防止過擬合。
2.3 CatBoost
CatBoost同樣在2017年由俄羅斯的搜索引擎公司Yandex的研究團隊提出的一種基于boosting的算法[12]。其對類別特征有著很好的支持。一般的梯度提升算法,最常用的是將類別特征轉換為數值型來處理,類別數量差異較大時,這種做法容易產生過擬合。CatBoost給出一種解決方案,可以減少過擬合發生。首先對所有樣本進行隨機排序,原順序為 c=(c1,…,cn),產生c的一次隨機遍歷序列,用遍歷的前p個記錄針對類別型特征中的某個取值,每個樣本的該特征轉為數值型時都是基于排列在該樣本之前的類別標簽取均值,同時加入先驗值P和參數α>0來控制低頻類別噪音,公式如下:
∑pj=1[xj,k-xi,k]·Yi+α·P∑nj=1[xj,k=xi,k]+α。(4)
CatBoost采用排序提升(ordered boosting)的方式替換傳統GDBT算法中的梯度計算方法,能夠減小梯度估計偏差,提升模型泛化能力。
3 結果與分析
3.1 評價指標
混淆矩陣(confusion matrix)是評價模型精度的標準格式,使用n行n列的矩陣形式表示。矩陣每一列代表預測值,每一行代表實際值(表2)。它的作用是表明每個類別之間是否有混淆,也就是模型到底判斷對了多少個結果,判斷錯了多少個結果。同時混淆矩陣也能夠幫助理解準確率、精確率和召回率,并利用F1值綜合衡量精確率和召回率。
3.2 模型結果比較
利用3種算法XGBoost、LightGBM、CatBoost構建迭代次數1 500次,其余參數默認的基線模型,比較基線模型初步結果(表3)。
將3個模型基線結果的混淆矩陣可視化見圖1。
由混淆矩陣可以很清晰發現,3種模型對類別0(已脫貧)貧困人口識別效果非常好,均能達到98%以上的準確率。對類別1(未脫貧)貧困人口識別稍差,XGBoost與LightGBM可以達到70%以上,而CatBoost只有61.3%。在對類別2(返貧)的貧困人口識別上,XGBoost最好,能夠達到66.1%,LightGBM能夠達到52.6%,有一定的識別能力,CatBoost分類效果較差,幾乎是隨機預測,不能夠有效進行識別。
3.3 模型調優及分析
根據基線模型結果選擇XGBoost和LightGBM等2個結果較為相近且效果較好的模型進行進一步調優比較。
(1)對XGBoost模型采用網格搜索(GridSearchCV)方法[13]以及五折交叉驗證進行關鍵參數調優。最優參數見表4。
XGBoost模型在設置為表4中最優參數時,模型在測試集上的總體分類正確率達到96.87%,相比較基線有1.20%的提升。模型訓練的損失及錯誤率曲線見圖2。在迭代次數2 000次后,模型損失和錯誤率不再有明顯下降,再增加迭代次數只會加大模型復雜度,增加模型過擬合概率。
(2)對LightGBM模型采用網格搜索(GridSearchCV)方法[14]以及五折交叉驗證進行關鍵參數調優。最優參數如表5所示。從表5可以看出,LightGBM模型在設置中最優參數時,模型在測試集上的總體分類正確率達到96.55%,相比較基線有1.31%的提升。模型訓練的損失及錯誤率曲線見圖3。在迭代次數2 200次后,模型在驗證集的損失有增加趨勢,為過擬合產生的表現,不適宜再增加迭代次數。
XGBoost模型與LightGBM模型經過調優后的各類別指標對比結果(表6)顯示,XGBoost模型在各類別精確率以及召回率上均有微弱優勢。混淆矩陣對比圖見圖4,XGBoost模型總體分類準確率比LightGBM模型高0.32%,對于類別0(已脫貧)和類別1(未脫貧)的分類準確率差距很小,只有0.2%~
0.3%;對于類別2(返貧)的分類準確率,XGBoost模型比LightGBM模型高3.7%,有較為明顯的差距,但是其訓練運行時間約為LightGBM模型的4倍。
2個模型的特征重要性評估比較見圖5,XGBoost和LightGBM等2個模型對特征重要性排序是完全一致的,僅僅是不同特征重要性值不同,排在前5的特征均為平均收入、住址、年齡、家庭勞動人口比率以及家庭人口數。根據特征重要性反映,在進行貧困類別判定時,更應該關注貧困人口收入、住址、家庭人口數以及健康醫療相關屬性,著力加強這些方面的幫扶能夠幫助貧困人口盡早脫貧。幫扶人員入戶調查工作中,除填寫一戶一冊幫扶手冊以外還應及時上報更新幫扶對象的收入、家庭人口健康狀況等信息。通過最新的貧困人口信息經由模型判斷貧困人口最新的脫貧狀態,以及追蹤貧困人口貧困狀態變化的最新影響因素。
4 結論
本研究利用團隊精準扶貧工作中積累的貧困戶建檔立卡數據,從中抽取14維特征,構建了基于集成學習的返貧人口識別模型,采用混淆矩陣、準確率以及f1值等多指標對返貧人口識別模型進行了對比分析,基于XGBoost算法的返貧人口識別模型能夠利用建檔立卡數據對已脫貧、未脫貧及返貧3類人員分別達到97.43%、92.44%、97.04%的識別準確率,總體達到96.81%的準確率,能夠較好識別出貧困人口貧困類別。通過構建基于集成學習算法的返貧人口識別模型,激活精準扶貧沉淀數據,為后脫貧時代的返貧動態監測預警工作提供實際案例支持, 對我國由脫貧攻堅向全面推進鄉村振興平穩過渡有重要意義。本研究仍存在不足之處,如對貧困戶數據采集維度較少,粒度較粗、數據類別存在不均衡等。在今后的防返貧工作中,要協調多方部門補充資產、政策補貼等數據,做到高時效、高精度防止返貧監測預警。
參考文獻:
[1]李 洪,蔣龍志,何思妤. 農村相對貧困識別體系與監測預警機制研究——來自四川省X縣的數據[J]. 農村經濟,2020,457(11):69-78.
[2]范和生. 返貧預警機制構建探究[J]. 中國特色社會主義研究,2018,139(1):57-63.
[3]羅 麗. 基于隨機森林算法的貧困精準識別模型研究[J]. 華中農業大學學報(社會科學版),2019,144(6):21-29,160.
[4]楊 瑚. 返貧預警機制研究[D]. 蘭州:蘭州大學,2019.
[5]Ermon S. Combining satellite imagery and machine learning to predict poverty[J]. Science,2016(6301):790-794.
[6]梁 驍,張 明,覃 琳. 一種基于機器學習識別貧困人口的數據分析方法研究[J]. 企業科技與發展,2017,427(5):39-41.
[7]魏嫣嬌,易葉青. 基于多源機器學習的脫貧方式智能推薦研究[J]. 信息與電腦(理論版),2019,420(2):37-39,44.
[8]張 浩. 提升農村地區精準扶貧效率的多維貧困識別方法[J]. 農村經濟與科技,2020,31(6):199-200.
[9]余 昕,汪早容. “后扶貧時代”返貧問題及對策[J]. 中國經貿導刊(中),2021,992(1):109-111.
[10]Chen T,Guestrin C. Xgboost:A scalable tree boosting system[C]//Proceedings of the 22nd Acm Sigkdd International Conference on Knowledge Discovery and Data Mining(Association for Computing Machinery),2016:785-794.
[11]Ke G,Meng Q,Finley T,et al. Lightgbm:A highly efficient gradient boosting decision tree[J]. Advances in Neural Information Processing Systems,2017,30:3146-3154.
[12]Dorogush A V,Ershov V,Gulin A. Catboost:Gradient boosting with categorical features support[J]. Arxiv E-prints,2018.
[13]岳 鵬,侯凌燕,楊大利,等. 基于XGBoost特征選擇的疾病診斷XLC-Stacking方法[J]. 計算機工程與應用,2020,56(17):136-141.
[14]陳維剛,張會林. 基于RF-LightGBM算法在風機葉片開裂故障預測中的應用[J]. 電子測量技術,2020,43(1):162-168.