陸萬萬,王維芳,馬煜敏
(上海計算機軟件技術開發中心,上海 201112)
在以前的警務工作中,犯罪線索多來源于線下舉報,隨著大數據技術的發展,警務信息化程度不斷提高,為線上數據實時犯罪線索預警提供了可能性。犯罪預警基于對“五要素”進行研判分析,即人、事、地、物、組,從已有的歷史警務數據中挖掘出潛在風險的犯罪人員,實現對犯罪活動的預知、預警、可防、可控[1-3]。
當今大數據時代下,警務數據資源豐富,數據資源采集、處理及存儲技術為犯罪預警提供了技術支撐。隨著大數據技術在警務工作中的深入應用,相關領域研究者在電信詐騙偵察、社會治安治理、預警恐怖犯罪活動等方面開展了大量大數據警務應用研究,以提高警務治理能力[4-8]。例如,中國人民公安大學的陳鵬等人引入機器學習識別風險人員身份特征,通過該模型以及二項邏輯回歸算法實現對風險人員的預測預警[9]。山東省科學院情報研究所的魏墨濟等人提出基于網絡社交媒體大數據,構建社會立場主題庫,通過觀點挖掘技術及分類算法判斷社會敏感話題事件危險觀點持有者的傾向性,實現了一種新型網絡實時犯罪防控預警機制[10]。為提高公安機關打擊涉毒犯罪活動的能力,中國人民公安大學的石一婷采用Logistic 回歸分析提取涉毒犯罪影響因素,構建涉毒犯罪預警模型[11]。陜西警官職業學院華艷紅,采用麥克勞林公式以及泰勒公式來降低傳統C4.5 算法信息增益率計算過程量,對傳統決策樹進行剪枝修改,得到了精確度較高的預警模型[12]。對此,基于以上研究以及警務工作的現實需求,以警務大數據為基礎,該文研究一種基于RF-SMOTEXGBoost 的風險人員預警模型,為犯罪預警防控工作提供技術手段支持。
人們在生產生活過程中,會產生豐富的社會基礎數據信息。因此,在智慧警務建設過程中,建立建全以人員數據為核心且覆蓋到社會各層面的社會情報資源數據庫,通過對數據信息進行分析和研判,建立數據模型,可實現提前預警的目標。
該文主要從人員的自然屬性、社會屬性、活動情況、關聯事件案、財務情況、社會關系等情況,并細分維度進行人員數據信息的分析和處理。人員數據信息表如表1 所示。

表1 人員數據信息表
分析上述四個維度的數據可知,人員數據具有多源異構性,且不同的數據層面存在結構化數據和非結構化數據,因此,需采用不同的數據處理方式進行警務數據特征提取。進而,將結構化與非結構化數據處理所得的特征數據進行歸一化處理,形成特征文件。警務數據特征提取流程如圖1所示。

圖1 警務數據特征提取流程
1)人員基本信息
人員身份證號碼、電話號碼(手機、固話)、網絡賬號(即時通信、社交網絡、網絡論壇、網絡郵箱、網盤、網購賬號)等結構化數據便于特征提取,但對于職業、地址等非結構化數據需先分類處理再進行one-hot 編碼。分類處理方式如下:
①所有職業歸至20 個職業類別中,使用相應職業類別的one-hot 編碼作為特征向量。
②樣本的地理位置信息,例如,戶籍地址、工作地點等,均采用行政區劃代碼來表示。
2)動態軌跡信息
該部分的數據主要包括三部分:民航、鐵路等訂票數據;網吧、旅館登記數據;前往重點管控區域的記錄數據。
①針對民航、鐵路等訂票數據:統計風險人員三年內民航、鐵路訂票次數及日期分布等相關特征。此外,統計風險人員前往重點管控區域的次數及日期等相關特征。
②針對住宿登記數據:統計風險人員三年內賓館住宿或上網等相關特征。除此之外,統計前往重點管控區域住宿或上網等相關特征。
3)犯罪記錄
犯罪記錄主要包括該人員涉案次數等結構化數據以及犯罪描述等非結構化數據[13]。其中,犯罪描述通過歸至相應犯罪類型,并對類型進行one-hot編碼來量化。
4)風險行為記錄
風險行為記錄包括風險物品購買記錄、與高危風險人員異常轉賬記錄、與風險人員或境外異常人員通聯記錄三部分。
針對風險物品購買記錄數據:購買風險物品危險等級采用one-hot 編碼來量化,統計購買風險物品次數;異常轉賬記錄進行one-hot 編碼,并統計該樣本與高危風險人員異常轉賬次數;統計樣本與風險人員或境外異常人員的通聯次數。
完成以上特征量化工作后,得到原始特征向量,再進行歸一化處理。該文采用標準差標準化(zeromean)數據歸一化方式,處理所得數據為標準的正態分布,歸一化計算公式如式(1)所示:

式中,X*為歸一化所得結果值,x為樣本數據,μ為樣本數據均值,σ為樣本數據標準差。
表2 為原始樣本特征數據示例。

表2 人員數據信息表
風險人員原始樣本歸一化后,其數據無單位如表3 所示。表3 中,風險人員原始樣本通過歸一化處理后,可以盡可能消除數據不同屬性對數據建模的消極影響,加快收斂速率,提高模型研判精度。

表3 風險人員原始樣本歸一化數據示例
基于以上警務數據綜合分析,該文提出一種基于隨機森林(Random Forest,RF)、SMOTE 過采樣、粒子群算法(Particle Swarm Optimization,PSO)優化的極端梯度提升算法(Extreme Gradient Boosting,XGBoost),構建風險人員預警模型。
預警模型建立初期需對高維稀疏的警務數據特征進行篩選過濾,因此,采用隨機森林算法對警務數據特征指標的重要性進行排序,以便篩選出更具代表性的警務特征指標[14,17]。隨機森林算法基于決策樹理論,每次隨機抽取含k個特征指標的數據子集,然后篩選其中一個最優特征指標進行劃分。一般設定特征指標抽取個數k值為:

其中,d為特征指標數。隨機森林算法計算流程如下:
1)通過n組袋外數據測試每棵決策樹性能,計算得到決策樹子模型的誤差值errori(i=1,2,…,n)。
2)對n組袋外數據的第i組特征添加噪聲干擾,計算得到添加噪聲干擾后每棵樹的誤差值Errori(i=1,2,...,n)。
3)由以上步驟,計算可得前后兩次添加噪聲干擾后的誤差變化平均值。
4)由于特征指標重要性與計算所得誤差變化平均值呈正相關。因此,可得特征重要性公式為:

5)基于特征指標重要性數值對特征指標進行重要性排序并篩選出其中重要特征指標。
以上通過隨機森林算法篩選得到警務特征數據集,仍存在正負樣本比例失衡問題,易導致預警模型過擬合,模型泛化能力差。因此,從數據的采樣方法入手,將以上篩選得到的警務特征數據集通過SMOTE 過采樣方法,生成少量樣本來控制正負樣本的數量以實現樣本平衡[15-17]。
少量樣本集定義為xi(i=1,2,…,n),xi的第j個屬性定義為xij(j=1,2,…,m)。同理,若負樣本集為yi(i=1,2,…,N),則yi的第j個屬性定義為yij(j=1,2,…,m)。
xi的同類K-近鄰定義為NE_Pi={ne_pik|k=1,2,…,K},異類K-近鄰樣本集為NE_Ni={ne_nik|k=1,2,…,K},近鄰候選集合為CANDi={candik|k=1,2,…,K}。此外,當少量樣本滿足屬于近鄰候選集的條件下,允許生成新樣本,同類K-近鄰樣本ne_pik與xi的距離定義為d(i,k)。
令少量樣本x1∈NE_Pi,則生成定義新的少量樣本為e1=[e11,e12,…,e1m],則第j個屬性計算公式如下:

直至達到過采樣率,重復計算式(4),得到m個樣本子集,合成新的少量樣本e1。
該研究預警模型基于XGBoost 算法實現風險樣本數據的分類提取。對經隨機森林算法和SMOTE過采樣算法優化后的樣本數據集采用基于XGBoost的預警模型進行訓練。該文集成樹模型XGBoost 算法通過目標函數項中含有的正則化項可有效避免算法過擬合問題[18-19]。此外,XGBoost 算法對具有稀疏特征的警務數據處理效果良好,通過殘差擬合多次計算得到預警結果,提高分類精度。
該文建立的XGBoost算法將各類樣本集定義如下:
設樣本數據集為:

式(5)中,xi為第i個樣本的屬性集,yi為第i個樣本所屬類別。因此,可得第l棵樹的預測結果為:

式(6)中,fk(xi)為第k棵樹的預測結果,得到:



通過泰勒展開式,取其前三項并且移除最小項,可將目標函數轉化為:

此時,將葉節點的最優值代入式(13),計算得到目標函數如下:

模型訓練過程中,采用粒子群算法(Particle Swarm Optimization,PSO)對基于XGBoost 算法的預警模型進行參數優化,提高模型分類精度。粒子具有速度和位置兩類屬性,粒子在空間中運動的快慢用速度來表示,位置的三維向量為XGBoost 模型的三個超參數,即學習率、樹深度以及最小葉節點權重。選定基于XGBoost 算法的預警模型的AUC 值作為優化目標,通過每個粒子單獨追隨當前搜索到的最優值來尋找全局最優。
其算法流程如下:
1)在初始化范圍內,對粒子群進行隨機初始化,包括隨機位置和速度。
2)根據適應度函數(Fitness Function),計算每個粒子的適應值。
3)對每個粒子,將其當前適應值與其個體歷史最佳位置對應的適應值作比較,如果當前的適應值更高,則用當前位置更新粒子個體的歷史最優位置Pbesti;對每個粒子,將其當前適應值與歷史最佳位置對應的適應值作比較,如果當前的適應值更高,則用當前位置更新粒子群的全局最優位置Gbesti;算法的迭代公式如下:

式(15)中,xi為該粒子當前的位置;vi為第i個粒子速度;c1、c2為學習因子;w為慣性權重,用于平衡搜索速度和搜索精度。w值較大,全局尋優能力強,局部尋優能力弱;反之同理。
4)若未達到終止條件,則轉步驟2)。
粒子通過上述步驟對位置和速度實現迭代,逐步搜索得到最優點。
該文所建立的預警模型算法流程如下:
1)首先,將樣本集歸一化處理。此外,考慮到警務數據高維稀疏特性,先去除其中缺失數據以及易導致過擬合的特征。然后通過隨機森林算法對預警特征值重要性排序,并篩選得到特征數據集S′。
2)設置訓練集、驗證集、測試集比例為8∶1∶1?;跀祿摌颖颈壤ㄟ^SMOTE 過采樣算法平衡樣本集,生成訓練集和驗證集的新樣本集合S′。

4)隨機產生N組解,每組解為XGBoost 的三個超參數,即學習率、樹的最大深度以及最小葉子節點樣本權重。
5)XGBoost 模型的AUC 值作為本預警模型的適應度函數f,通過粒子群算法優化,得到最小誤差fmin以及相應的最優解。
6)將測試集數據代入訓練完成的預警模型加以檢驗,并對比其他分類算法的預測精度。
該文預警模型驗證實驗中所使用到的20 000 個人員信息樣本均來源于公安系統,且針對其中的業務敏感信息進行了脫敏處理,以保證數據安全性。
為驗證該文所建立預警模型性能,分別以該文預警模型與模型未經過特征提取、模型未經過SMOTE 處理、模型未經過PSO 粒子群算法做參數調優三種狀態進行性能對比。通過ROC 曲線以及AUC 值評價該文模型算法性能,AUC 值為ROC 曲線所覆蓋的區域面積,AUC 越大,分類器分類效果越好,即模型預警效果越好。上述模型ROC 曲線圖如圖2-4 所示。(TPR:在實際中為陽性的樣本被判斷為陽性的比例;FPR:在實際中是陰性的樣本,但是判斷為陽性的比例,該曲線如果是一條45°斜線時,證明模型擬合得特別準確)

圖2 未經特征提取的預警模型ROC曲線

圖3 未經SMOTE處理的預警模型ROC曲線

圖4 未經過粒子群算法參數調優的預警模型ROC曲線
從圖2-4 可知,該文預警模型,即經過隨機森林算法、SMOTE 過采樣算法、粒子群算法優化的XGBoost 模型AUC 值為0.792 0。未經過隨機森林算法特征提取AUC 值為0.645 0,隨機森林特征提取后AUC 值同比提高23%。未經過SMOTE 過采樣算法平衡樣本數據AUC 值為0.655 4,經過SMOTE 過采樣處理后模型AUC值0.792 0同比提高21%。未經過粒子群算法優化的模型AUC 值為0.688 9,經過粒子群優化后的XGBoost 模型的AUC 值0.792 0 同比提高15%。因此,可得隨機森林算法、SMOTE 過采樣算法、粒子群算法優化均可提高預警模型精度。
由于實際警務系統數據中正負樣本比例失衡嚴重,為便于驗證預警模型在不均衡數據集上的精確度,設置幾組不同正負樣本比例的對照實驗,比例分別為:10∶1,5∶1,2∶1,1∶1。在每組不同正負樣本比例的基礎上,再設置四組測試集樣本比例為10%、20%、30%和40%。在以上四組測試集樣本比例下測得的結果取平均值作為最終結果。
此外,為驗證該文基于XGBoost 的預警模型精確度,設置了五組經典的機器學習算法進行結果對比,即梯度提升決策樹GBDT(Gradient Boost Decision Tree)、支持向量機SVM(Support Vector Machine)、K-近鄰分類器KNN(K-Nearest Neighbor)、高斯樸素貝葉斯分類器GNB(Gaussian Naive Bayes)、邏輯回歸LR(Logistic Regression)。
各模型在不同正負樣本比例下的準確度如表4。

表4 風險人員原始樣本歸一化數據示例
從表中可以看到,在四組不同正負樣本比例的實驗中,該文基于RF-SMOTE-PSO-XGBoost 算法的預警模型準確度最高。且正負樣本比例越大,準確度越高。因此,該文模型在實際警務業務域中,即高度不均衡數據集下平均準確度可達到90%以上。該文基于RF-SMOTE-PSO-XGBoost 算法的預警模型構建過程中使用到的隨機采樣過程很大程度上提高了模型的泛化能力,使得模型在不同數據比例下均保持相對穩定的表現。
該文建立了一種基于XGBoost 算法的預警模型。針對警務大數據樣本集,采用隨機森林算法進行冗余度篩選以及SMOTE 算法平衡正負樣本比例。另外,通過粒子群算法優化基于XGBoost 的預警模型。通過設置對照實驗,該文預警模型所采用算法均提高了模型預警精度。同時,該文基于XGBoost 的預警模型相較于大部分同類型算法計算速度快、準確性高且模型的泛化能力較好。因此,該文預警模型對今后公安系統潛在風險人員的數據挖掘研究具有一定的借鑒意義。