文 晶,鄭揚(yáng)飛
(華北計(jì)算技術(shù)研究所系統(tǒng)八部,北京 100083)
假釋、暫予監(jiān)外執(zhí)行等接受過(guò)監(jiān)獄改造的特殊人群,由于其社會(huì)適應(yīng)性較差、心理狀態(tài)不穩(wěn)定,面對(duì)急劇變化的社會(huì)新環(huán)境,極易發(fā)生再次犯罪[1]。而一旦再犯罪則他們的作案手段會(huì)更加殘忍,后果更加嚴(yán)重,對(duì)社會(huì)安全與穩(wěn)定造成的威脅也將更大。相較歐美發(fā)達(dá)國(guó)家,我國(guó)目前假釋比例明顯偏低,導(dǎo)致監(jiān)獄人口壓力大、監(jiān)禁負(fù)面效應(yīng)多,嚴(yán)重影響假釋功能及價(jià)值的充分發(fā)揮。而假釋適用比例難以提高的根本原因就在于:我國(guó)對(duì)假釋、暫予監(jiān)外執(zhí)行等社區(qū)矯正人員仍存在監(jiān)管能力不足、矯正水平不高的問題。
在以上需求背景下,為了有效降低社區(qū)矯正人員再犯罪率,顯著提升監(jiān)獄服刑人員的假釋適用比例,需要充分利用相關(guān)信息技術(shù),提升司法機(jī)構(gòu)社區(qū)矯正能力,加強(qiáng)對(duì)社矯人員的監(jiān)督管理,提高矯正幫扶質(zhì)量,促進(jìn)社矯人員從特殊人群到守法公民的有效轉(zhuǎn)變,實(shí)現(xiàn)治本安全,進(jìn)而實(shí)現(xiàn)總體國(guó)家安全觀。
綜上所述,本文對(duì)社區(qū)矯正人員的相關(guān)數(shù)據(jù)進(jìn)行分析,基于Stacking模型融合算法[2]構(gòu)建標(biāo)簽生成模型,生成社區(qū)矯正人員的用戶標(biāo)簽,并且提升預(yù)測(cè)準(zhǔn)確度,為社區(qū)矯正人員用戶畫像[3]的建立奠定基礎(chǔ)。
在介紹Stacking模型融合方法前,首先需要了解集成學(xué)習(xí)這個(gè)概念。集成學(xué)習(xí)(ensemble learning)[4]指的并非是某一個(gè)特定的機(jī)器學(xué)習(xí)算法,而是結(jié)合多個(gè)機(jī)器學(xué)習(xí)算法來(lái)構(gòu)建模型去完成學(xué)習(xí)目標(biāo),也就是常說(shuō)的“博采眾長(zhǎng)”。
集成學(xué)習(xí)主要包括:Bagging[5-6]、Boosting[7]、Stacking[8-9],它們分別使用并行、串行、樹行的計(jì)算方法。本文用到的Stacking模型融合方法,即為使用樹行計(jì)算方法的集成學(xué)習(xí)方法。由于人解決問題的思維是樹形的,將模型樹行化符合問題本身的邏輯,精確率和召回率呈穩(wěn)態(tài)正相關(guān)。因此采用樹行計(jì)算方法的Stacking方法可以整合不同模型的最好表現(xiàn),使模型融合更加科學(xué)化,用以提升模型的預(yù)測(cè)準(zhǔn)確率和泛化能力。
1.2.1 經(jīng)典Stacking模型融合方法概述
Stacking模型經(jīng)典的流程如圖1所示。
圖1 Stacking模型經(jīng)典的流程圖
Stacking融合模型一般分為2層內(nèi)容。
第1層模型主要用于產(chǎn)生第2層模型的訓(xùn)練集數(shù)據(jù)(Training Data)。產(chǎn)生過(guò)程如下:
首先,訓(xùn)練集數(shù)據(jù)內(nèi)容依圖1所示,是用一個(gè)基礎(chǔ)模型進(jìn)行五折交叉驗(yàn)證的結(jié)果。k折交叉驗(yàn)證[10],就是先拿出k-1折作為訓(xùn)練數(shù)據(jù),另外一折作為測(cè)試數(shù)據(jù)(Testing Data)[11]。每一個(gè)交叉驗(yàn)證產(chǎn)生的預(yù)測(cè)結(jié)果組合起來(lái),作為第2層模型的訓(xùn)練集數(shù)據(jù)。另外,還要對(duì)數(shù)據(jù)集原來(lái)的整個(gè)訓(xùn)練數(shù)據(jù)進(jìn)行預(yù)測(cè),這個(gè)過(guò)程會(huì)生成5個(gè)預(yù)測(cè)數(shù)據(jù)集,對(duì)于這部分?jǐn)?shù)據(jù),本文將數(shù)據(jù)集各部分相加取平均作為下一層模型的測(cè)試集數(shù)據(jù)[12]。
第2層學(xué)習(xí)模型采用非線性模型,通過(guò)將第1層模型輸出的結(jié)果作為訓(xùn)練數(shù)據(jù)訓(xùn)練模型,得到新的預(yù)測(cè)結(jié)果。通過(guò)將新的預(yù)測(cè)結(jié)果和第2層模型的測(cè)試數(shù)據(jù)集進(jìn)行對(duì)比,觀察預(yù)測(cè)準(zhǔn)確度。
1.2.2 改進(jìn)的Stacking模型融合方法
本文基于經(jīng)典的Stacking模型融合方法進(jìn)行改進(jìn),將其每一步驗(yàn)證中使用的單個(gè)相同模型,改為5個(gè)不同的機(jī)器學(xué)習(xí)模型進(jìn)行預(yù)測(cè)。本文中建立的預(yù)測(cè)模型,即為改進(jìn)的Stacking融合模型。
目前來(lái)看,利用社區(qū)矯正人員的基礎(chǔ)數(shù)據(jù)得到其各類用戶標(biāo)簽是急需解決的問題。通過(guò)建立模型預(yù)測(cè)社區(qū)矯正人員的用戶標(biāo)簽有重大意義。本章利用某市社矯人員基礎(chǔ)數(shù)據(jù),基于Stacking模型融合方法[13]建立標(biāo)簽生成模型。
如圖2所示,模型總體建立過(guò)程分為以下5個(gè)模塊進(jìn)行:數(shù)據(jù)采集模塊、數(shù)據(jù)預(yù)處理模塊(包括數(shù)據(jù)清理[14]和缺失數(shù)據(jù)處理[15])、特征工程模塊[16]、Stacking模型融合模塊、結(jié)論分析模塊。
圖2 模型訓(xùn)練總體框架流程圖
2.2.1 缺失數(shù)據(jù)處理一般方法
處理缺失數(shù)據(jù)的方法[17-18]主要有以下3大類:
1)刪除數(shù)據(jù)對(duì)象。
此方法簡(jiǎn)單易行,當(dāng)數(shù)據(jù)表中的某些數(shù)據(jù)對(duì)象存在多個(gè)屬性值的缺失,并且這些存在缺失屬性的數(shù)據(jù)對(duì)象數(shù)目占比很小,由于刪除這些對(duì)象對(duì)整個(gè)預(yù)測(cè)結(jié)果影響微乎其微,可以直接刪除對(duì)象。
此方法存在局限性,當(dāng)缺失信息的數(shù)據(jù)所占比例較大,或者當(dāng)遺漏數(shù)據(jù)是非隨機(jī)分布的時(shí)侯,這種方法可能導(dǎo)致數(shù)據(jù)發(fā)生偏離,從而導(dǎo)致結(jié)論錯(cuò)誤。
2)數(shù)據(jù)空值填充。
此方法通常是利用統(tǒng)計(jì)學(xué)方法,根據(jù)數(shù)據(jù)表中非缺失對(duì)象的數(shù)據(jù)分布來(lái)對(duì)一個(gè)缺失值進(jìn)行填充。數(shù)據(jù)挖掘中常用的有以下幾種補(bǔ)齊方法:①人工填寫;②特殊值填充;③平均值填充;④熱卡填充;⑤K最近距離鄰法;⑥使用所有可能的值填充;⑦組合完整化方法;⑧回歸;⑨期望值最大化方法。
3)不處理。
利用貝葉斯網(wǎng)絡(luò)和人工神經(jīng)網(wǎng)絡(luò)等方法,直接在包含少量缺失數(shù)據(jù)的數(shù)據(jù)集上進(jìn)行數(shù)據(jù)挖掘。
2.2.2 缺失數(shù)據(jù)處理
本文中使用的數(shù)據(jù)是剔除了敏感信息的某市社區(qū)矯正人員的基本數(shù)據(jù),共4514條。其中特征集合包括19個(gè)特征項(xiàng),各個(gè)特征項(xiàng)的數(shù)據(jù)類型和缺失數(shù)據(jù)項(xiàng)情況如表1所示。
表1 特征信息缺失表
特征缺失信息特征缺失信息SEX無(wú)空數(shù)據(jù)項(xiàng)ZKNL無(wú)空數(shù)據(jù)項(xiàng)NATION無(wú)空數(shù)據(jù)項(xiàng)HYJTGX無(wú)空數(shù)據(jù)項(xiàng)EDUCATION_DEGREE4條空數(shù)據(jù)項(xiàng)JTCYHJZQK無(wú)空數(shù)據(jù)項(xiàng)MARITAL_STATE無(wú)空數(shù)據(jù)項(xiàng)JYZK無(wú)空數(shù)據(jù)項(xiàng)WORK_STATE無(wú)空數(shù)據(jù)項(xiàng)DSQJZDRSHJSCD無(wú)空數(shù)據(jù)項(xiàng)GLJB9條空數(shù)據(jù)項(xiàng)FXGLJZJSFQK無(wú)空數(shù)據(jù)項(xiàng)JZTJ1條空數(shù)據(jù)項(xiàng)JSJYQK無(wú)空數(shù)據(jù)項(xiàng)SHLY無(wú)空數(shù)據(jù)項(xiàng)WCSQFWQK無(wú)空數(shù)據(jù)項(xiàng)JYNL無(wú)空數(shù)據(jù)項(xiàng)JTRYBGXX無(wú)空數(shù)據(jù)項(xiàng)HEALTH389條空數(shù)據(jù)項(xiàng)
如表1所示,由于缺失數(shù)據(jù)刪除后,對(duì)整體數(shù)據(jù)影響不大,所以本文處理缺失數(shù)據(jù)的方式有:1)由于缺失數(shù)據(jù)的信息數(shù)目占總數(shù)據(jù)的部分很小,所以刪除缺失了數(shù)據(jù)的14行數(shù)據(jù)項(xiàng);2)由于特征“HEALTH”缺失數(shù)據(jù)項(xiàng)過(guò)多,所以從特征集合中刪除“HEALTH”特征。最終得到4500條無(wú)缺失的有效數(shù)據(jù)項(xiàng),特征集合[19]包含18個(gè)有效特征。
本文使用的社矯人員數(shù)據(jù)經(jīng)過(guò)數(shù)據(jù)預(yù)處理后,剩余的有效數(shù)據(jù)量為4500條,分為特征集合和分類標(biāo)簽2個(gè)部分。
2.3.1 特征集合
特征集合中包含社區(qū)矯正人員基礎(chǔ)信息的18項(xiàng)數(shù)據(jù)項(xiàng),如表2所示。
表2 服刑人員特征信息表
編號(hào)數(shù)據(jù)項(xiàng)簡(jiǎn)稱說(shuō)明1性別SEX1(男性)、2(女性)、9(未知性別)2民族NATION01(漢族)、02(蒙古族)等56項(xiàng)3文化程度EDUCATION_DEGREE01(文盲)、02(小學(xué))、03(初中)、04(高中)、05(大專)、06(本科)、07(碩士)、08(博士及以上)、09(中專和中技)4婚姻狀況MARITAL_STATE01(未婚)、02(已婚)、03(離異)、04(喪偶)5就業(yè)就學(xué)情況WORK_STATE01(就學(xué))、02(就業(yè))、03(務(wù)農(nóng))、04(無(wú)業(yè))6管理級(jí)別GLJB01(寬松)、02(普通)、03(嚴(yán)格)7居住條件JZTJ01(有固定居所)、02(無(wú)固定居所)8生活來(lái)源SHLY01(依靠自己的工作收入)、02(低?;蛞揽考彝?9就業(yè)能力JYNL01(能自食其力)、02(不能或不愿自食其力)10自控能力ZKNL01(能夠自我控制)、02(自控能力較差或有時(shí)不能自控)11婚姻家庭關(guān)系HYJTGX01(和睦穩(wěn)定)、02(輕微沖突)、03(重大沖突或無(wú)親屬)12家庭成員配合矯正情況JTCYHJZQK01(理解支持)、02(有抵觸情緒)、03(不配合矯正)13交友狀況JYZK01(無(wú)不良交友情況)、02(有不良交友情況)14對(duì)社區(qū)矯正的認(rèn)識(shí)和接收程度DSQJZDRSHJSCD01(認(rèn)識(shí)正確輕易接受)、02(認(rèn)識(shí)模糊有一定抵觸)、03(缺乏認(rèn)識(shí)拒絕接受)15服從日常管理及遵紀(jì)守法情況FXGLJZJSFQK01(服從管理嚴(yán)格遵紀(jì)守法)、02(基本服從但偶有違紀(jì))、03(不服從管理或有嚴(yán)重違紀(jì))16接受教育情況JSJYQK01(按要求接受,態(tài)度認(rèn)真)、02(態(tài)度消極但經(jīng)教育能改正)、03(不接受教育或基本未完成教育計(jì)劃)17完成社區(qū)服務(wù)情況WCSQFWQK01(正常完成態(tài)度認(rèn)真)、02(應(yīng)付或基本完成)、03(未完成勞動(dòng)計(jì)劃)18家庭人員變故信息JTRYBGXX01(無(wú)變故)、02(死亡)、03(重病)
2.3.2 分類標(biāo)簽集合
如表3所示,此次分類標(biāo)簽共有4種。
表3 分類標(biāo)簽信息表
編號(hào)數(shù)據(jù)項(xiàng)簡(jiǎn)稱說(shuō)明1認(rèn)罪伏法態(tài)度RZFFTD認(rèn)罪伏法(01)、抵觸情緒(02)、不認(rèn)罪(03)2對(duì)社會(huì)的心態(tài)DSHDXT能夠正確看待(01)、對(duì)現(xiàn)實(shí)不滿或仇恨(02)3心理健康狀況XLJKZK正常(01)、存在較輕程度心理問題(02)、確認(rèn)存在心理障礙(03)4矯正懲戒情況JZCJQK給予警告(01)、給予治安處罰(02)、無(wú)(03)
從某市司法局得到的社區(qū)矯正人員初始數(shù)據(jù)共4514條,去除臟數(shù)據(jù)、無(wú)效數(shù)據(jù)、測(cè)試數(shù)據(jù)等,得到的最終有效數(shù)據(jù)為4500條。
2.3.3 特征選擇
特征選擇[20],也就是從數(shù)據(jù)集中找出并選擇最有用特征的過(guò)程,是機(jī)器學(xué)習(xí)工作流中一個(gè)非常重要的步驟。不必要的特征降低了訓(xùn)練速度,降低了模型的可解釋性,最重要的是降低了測(cè)試數(shù)據(jù)集的泛化能力[21]。
根據(jù)所需預(yù)測(cè)的4種分類標(biāo)簽,進(jìn)行相應(yīng)的特征選擇。本文選擇的特征選擇方法是“基于樹模型的特征選擇”。
本文采用隨機(jī)森林算法[22],通過(guò)樹的模型訓(xùn)練可以計(jì)算每一個(gè)屬性的重要性,從而根據(jù)重要性的值選擇出重要的特征。sklearn.ensemble模塊包含了2種基于隨機(jī)決策樹[23]的平均算法:RandomForest算法和Extra-Trees算法。這里使用Extra-Trees算法,得到相應(yīng)影響標(biāo)簽結(jié)果的特征的重要性,根據(jù)重要性選出對(duì)預(yù)測(cè)結(jié)果影響最大的幾個(gè)特征作為預(yù)測(cè)的特征集合。
特征選擇過(guò)程如下:
model=ExtraTreesClassifier()
#設(shè)置ExtraTrees
model.fit(X,y)
print(model.feature_importances_)
根據(jù)以上算法,4個(gè)分類標(biāo)簽剪枝后選擇的特征集合如表4所示。
表4 4類標(biāo)簽特征集合
編號(hào)數(shù)據(jù)項(xiàng)簡(jiǎn)稱特征集合1認(rèn)罪伏法態(tài)度RZFFTDEDUCATION_DEGREE、MARITAL_STATE、DSQJZDRSHJSCD、WORK_STATE、JTCYHJZQK、SHLY2對(duì)社會(huì)的心態(tài)DSHDXTDSQJZDRSHJSCD、SHLY、EDUCATION_DEGREE、WORK_STATE、JZTJ、JT-CYHJZQK3心理健康狀況XLJKZKZKNL、EDUCATION_DEGREE、MARITAL_STATE、WORK_STATE、WCSQFWQK、SHLY4矯正懲戒情況JZCJQKEDUCATION_DEGREE、FXGLJZJSFQK、WORK_STATE、SHLY、MARITAL_STATE、GLJB
根據(jù)2.2節(jié)、2.3節(jié)中的方法處理數(shù)據(jù)后,得到相應(yīng)的數(shù)據(jù)集合,基于Stacking模型融合算法建立模型。
Stacking建模過(guò)程:
1)加載數(shù)據(jù)。將特征數(shù)據(jù)和標(biāo)簽數(shù)據(jù)分別導(dǎo)入到數(shù)組MATX和MATY中后,采用隨機(jī)森林的算法進(jìn)行特征選擇。
2)訓(xùn)練數(shù)據(jù)。本文中第1層模型由以下5個(gè)基礎(chǔ)分類器組成:隨機(jī)森林(Random Forest Classifier)、極度隨機(jī)樹(ExtRa Trees Classifier)、支持向量機(jī)(SVC)、k近鄰分類(K Neighbors Classifier)、極端梯度提升(xgb.XGB Classifier)。采用n-folds方法進(jìn)行多次模型訓(xùn)練,并將結(jié)果輸入到第2層模型進(jìn)行預(yù)測(cè)。第2層則采用邏輯回歸(Logistic Regression)進(jìn)行預(yù)測(cè)。
3)測(cè)試數(shù)據(jù)。將測(cè)試集數(shù)據(jù)輸入模型,得到預(yù)測(cè)準(zhǔn)確率。
通過(guò)不斷實(shí)驗(yàn)調(diào)整參數(shù)值,當(dāng)進(jìn)行五折交叉驗(yàn)證時(shí),各類標(biāo)簽的預(yù)測(cè)準(zhǔn)確度較高,如圖3所示。
由圖3可知,經(jīng)典的Stacking模型預(yù)測(cè)結(jié)果準(zhǔn)確率平均值約為80%。由于實(shí)際要求中,對(duì)社區(qū)矯正人員標(biāo)簽預(yù)測(cè)的準(zhǔn)確率要求較高,本文對(duì)改進(jìn)算法進(jìn)行了實(shí)驗(yàn)。
圖3 經(jīng)典Stacking模型預(yù)測(cè)準(zhǔn)確率
通過(guò)不斷調(diào)整訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)的比例進(jìn)行實(shí)驗(yàn),發(fā)現(xiàn)當(dāng)訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)的比例為3000:1500即2:1時(shí),實(shí)驗(yàn)?zāi)P偷念A(yù)測(cè)準(zhǔn)確率最高。通過(guò)多次實(shí)驗(yàn)得知,當(dāng)k-flods中k參數(shù)的取值分別為3、5、8時(shí),得到的各個(gè)標(biāo)簽的預(yù)測(cè)結(jié)果準(zhǔn)確率如圖4~圖7所示。
圖4 認(rèn)罪伏法態(tài)度標(biāo)簽預(yù)測(cè)準(zhǔn)確度
圖5 對(duì)社會(huì)的心態(tài)標(biāo)簽預(yù)測(cè)準(zhǔn)確度
圖6 心理健康狀況標(biāo)簽預(yù)測(cè)準(zhǔn)確度
圖7 矯正懲戒情況標(biāo)簽預(yù)測(cè)準(zhǔn)確度
由以上結(jié)果可知,本文實(shí)驗(yàn)基于經(jīng)典Stacking融合算法建立的改進(jìn)模型,預(yù)測(cè)4類社區(qū)矯正人員標(biāo)簽的準(zhǔn)確率均在90%~95%之間,與經(jīng)典的Stacking模型相比,預(yù)測(cè)的準(zhǔn)確率提升了10%~15%。故本文中建立的改進(jìn)的Stacking模型,對(duì)社區(qū)矯正人員用戶標(biāo)簽生成具有較好的預(yù)測(cè)準(zhǔn)確性和有效性。
將機(jī)器學(xué)習(xí)算法運(yùn)用于社區(qū)矯正人員用戶標(biāo)簽的預(yù)測(cè)具有實(shí)踐意義。對(duì)社區(qū)矯正人員進(jìn)行標(biāo)簽預(yù)測(cè),可以用于建立社區(qū)矯正人員用戶畫像,進(jìn)而完善社區(qū)矯正人員的規(guī)范管理技術(shù)平臺(tái)。由于社區(qū)矯正人員及服刑人員數(shù)據(jù)的特殊性和保密性,導(dǎo)致其數(shù)據(jù)存在一定缺失情況,對(duì)模型的建立存在一定影響。
為了服務(wù)于社區(qū)矯正人員用戶畫像的建立,本文建立了改進(jìn)的Stacking模型融合模型。在對(duì)某市司法局?jǐn)?shù)據(jù)進(jìn)行清洗和整理后,得到了4500條有效數(shù)據(jù),建立了有效的標(biāo)簽生成模型。經(jīng)過(guò)反復(fù)調(diào)參多次實(shí)驗(yàn),改進(jìn)的Stacking算法模型標(biāo)簽預(yù)測(cè)準(zhǔn)確率控制在90%~95%之間,驗(yàn)證了本文中基于Stacking算法建立的模型具有有效性和準(zhǔn)確性,對(duì)今后社區(qū)矯正人員用戶畫像的生成以及社區(qū)矯正人員規(guī)范管理平臺(tái)的完善具有實(shí)踐價(jià)值。