朱小波 栗赫遙
(上海公安學(xué)院治安系 上海 200137)
犯罪活動具有復(fù)雜性和多樣性的特點(diǎn),直接影響著社會安定和人民安全。目前,大量研究成果表明犯罪活動雖復(fù)雜多變,但基于犯罪行為發(fā)生的條件限制,必然與犯罪時間、犯罪空間、犯罪人等因素產(chǎn)生特定關(guān)系,通過對相關(guān)因素進(jìn)行分析,不但可以總結(jié)犯罪規(guī)律,而且可以通過建立數(shù)據(jù)模型預(yù)測犯罪發(fā)生,達(dá)到主動響應(yīng)、提早預(yù)防的效果?,F(xiàn)如今,隨著海量犯罪數(shù)據(jù)的“歷史積淀”,對其進(jìn)行深度挖掘和推理,已然成為公安機(jī)關(guān)在大數(shù)據(jù)時代的必然選擇。作為最常見的侵犯財(cái)產(chǎn)類犯罪形式之一,盜竊犯罪不僅案發(fā)量高而且極易演變至其他類型的犯罪,社會危害性較大,人民群眾對此深惡痛絕。因此,對盜竊犯罪特征因素分析以及預(yù)測模型的建模研究,不僅有助于發(fā)掘該類犯罪的特征向量,盡早采取措施進(jìn)行有效預(yù)防,同時對間接降低其他類型案件的犯罪率,提升社會面整體治安水平都有所裨益。
早在19世紀(jì)30年代,美國紐約市警察局就采用數(shù)據(jù)分析方法預(yù)測犯罪問題。警察局的分析人員通過將犯罪的地理空間等信息用圖釘分別標(biāo)注于地圖上,運(yùn)用歸納分析、關(guān)聯(lián)分析和邏輯推理的方法找出犯罪發(fā)生的規(guī)律,并結(jié)合多年從業(yè)經(jīng)驗(yàn),最終進(jìn)行犯罪數(shù)量和易發(fā)案區(qū)域進(jìn)行預(yù)測。時至今日,隨著信息技術(shù)和人工智能的不斷發(fā)展和應(yīng)用,越來越多的學(xué)者通過地理信息系統(tǒng)、機(jī)器學(xué)習(xí)與數(shù)據(jù)挖掘等技術(shù)方法的結(jié)合,對犯罪數(shù)據(jù)進(jìn)行綜合分析與預(yù)測。基于大數(shù)據(jù)的犯罪預(yù)測不僅能夠擺脫個人經(jīng)驗(yàn)的偏見影響,還有助于優(yōu)化警力配置,實(shí)現(xiàn)多維度預(yù)防犯罪。例如,決策樹算法就可以多條件向下劃分針對復(fù)雜分類問題給出有預(yù)見性的分類結(jié)果,從而達(dá)到預(yù)測犯罪趨勢的效果[1]。金光等[2]運(yùn)用決策樹算法構(gòu)建預(yù)測模型,探索出了適用于犯罪預(yù)測領(lǐng)域的數(shù)據(jù)挖掘方法。李衛(wèi)紅等[3]通過對某市犯罪歷史數(shù)據(jù)的學(xué)習(xí)及訓(xùn)練建立改進(jìn)后的GA-BP神經(jīng)網(wǎng)絡(luò)模型。國外也有學(xué)者將研究區(qū)域劃分成一個個單元格,通過logistic回歸和神經(jīng)網(wǎng)絡(luò)兩種犯罪預(yù)測模型相互結(jié)合的方式對研究地理區(qū)域的單元格進(jìn)行犯罪預(yù)測[4]。還有學(xué)者從原始犯罪數(shù)據(jù)當(dāng)中提取數(shù)據(jù)集,通過數(shù)據(jù)挖掘構(gòu)建不同分類器模型,從而達(dá)到犯罪預(yù)測的目的[5-7]。
犯罪數(shù)據(jù)往往具有樣本信息復(fù)雜多變、樣本量大等特點(diǎn),對其進(jìn)行精確預(yù)測具有一定的難度。本文為實(shí)現(xiàn)此目的,將引入主成分分析(PCA)法和XGBoost法,即:將多變量數(shù)據(jù)降維與極端梯度提升分類算法相結(jié)合,使用迭代運(yùn)算方法將大量的弱分類器組合成強(qiáng)分類器,能夠有效地構(gòu)建增強(qiáng)樹并實(shí)現(xiàn)并行運(yùn)行。
由于國內(nèi)犯罪數(shù)據(jù)的涉密性,本文選取2017年美國芝加哥市的盜竊犯罪的911報(bào)警數(shù)據(jù)集,依次進(jìn)行數(shù)據(jù)概況描述、數(shù)據(jù)篩選和數(shù)據(jù)清洗等預(yù)處理工作。最終在原始樣本中獲取了分組聚合成48 126個有效數(shù)據(jù),數(shù)據(jù)集字段包括案件ID、犯罪日期分段標(biāo)注、所屬街區(qū)、案件描述、所屬分局、所屬社區(qū)、犯罪所在經(jīng)緯、維度和聚合計(jì)數(shù)后的案件發(fā)生次數(shù)等。數(shù)據(jù)集主要字段信息如表1所示。
表1 數(shù)據(jù)集字段表
基于PCA-XGBoost算法的盜竊犯罪數(shù)量預(yù)測模型可以概括為以下幾個步驟:首先,利用盜竊犯罪報(bào)警數(shù)據(jù)集的PCA處理,形成犯罪數(shù)量的特征矩陣;然后,構(gòu)建犯罪數(shù)量預(yù)測模型,包括預(yù)測模型優(yōu)化和定模;最后,基于統(tǒng)計(jì)數(shù)據(jù)進(jìn)行犯罪數(shù)量預(yù)測。如圖1所示。
圖1 基于PCA-XGBoost算法的盜竊犯罪數(shù)量預(yù)測模型框架
PCA是一種無監(jiān)督學(xué)習(xí)、多元統(tǒng)計(jì)分析方法,用于發(fā)現(xiàn)數(shù)據(jù)基本結(jié)構(gòu),實(shí)現(xiàn)多變量數(shù)據(jù)降維,其主要實(shí)現(xiàn)步驟如下:
(1) 樣本數(shù)據(jù)規(guī)范化處理。
(1)
(2) 樣本協(xié)方差矩陣的特征值分解。
求解s的特征值方程:
|s-λI|=0
(2)
得到s的m個特征值λ1≥λ2≥…≥λm,與之相對應(yīng)的特征向量為(ξ1,ξ2,…,ξm)。
(3) 主成分計(jì)算。
(3)
(4) 計(jì)算主成分的方差貢獻(xiàn)率。
(4)
式中:ρi表示第i個主成分的方差貢獻(xiàn)率。
XGBoost(eXtreme Gradient Boosting)是基于梯度提升迭代決策樹算法優(yōu)化而來的極端梯度增強(qiáng)分類算法,具有高效、并行、精確和魯棒性好等優(yōu)點(diǎn)。在同樣條件下,XGBoost算法的運(yùn)算能力、訓(xùn)練速度以及預(yù)測速度比其他算法更著優(yōu)勢。由于XGboost具有自動分裂學(xué)習(xí)能力,其目標(biāo)函數(shù)考慮了二階導(dǎo)數(shù)的影響,使損失更精確,極大提高了算法的效率。因此,XGBoost非常適合應(yīng)用于在時間不連續(xù)、空間間隔性下的盜竊犯罪數(shù)量預(yù)測。
XGBoost目標(biāo)函數(shù)和優(yōu)化推導(dǎo)如下:
1) XGBoost考慮正則化項(xiàng),目標(biāo)函數(shù)定義如下:
(5)
依據(jù)上述模型框架,可以優(yōu)化出樹的建模函數(shù)ft(x):
(6)
2) 每次建樹優(yōu)化以下目標(biāo):
(7)
3) 假設(shè)已知樹結(jié)構(gòu)q,即每個樣本xi能通過該結(jié)構(gòu)q找到相對應(yīng)的樹葉子節(jié)點(diǎn)j,可以定義Ij={i|q(xi)=j}為在樹結(jié)構(gòu)q下,落入葉子節(jié)點(diǎn)j所有樣本序號的集合。對上述表達(dá)式進(jìn)行展開并通過配方法,就可以得到:
(8)
最終得到葉子權(quán)重值為:
(9)
4) 最終的目標(biāo)值為:
(10)
本文利用經(jīng)過清洗后的2017年芝加哥的盜竊犯罪的911報(bào)警數(shù)據(jù)集的80%作為模型的訓(xùn)練集,將剩余的20%作為測試數(shù)據(jù)集用來驗(yàn)證模型精度。
數(shù)據(jù)中考慮到大量日期上的分散性,對日期數(shù)據(jù)進(jìn)行步長處理,每月按照上中下三類作區(qū)分,對日期步長、街區(qū)、區(qū)域和經(jīng)緯度等,按犯罪發(fā)生次數(shù)分組聚集計(jì)數(shù)。因案件類型、街區(qū)和案件描述字段是屬性變量,需要進(jìn)一步進(jìn)行類別數(shù)值劃分,本文采用獨(dú)熱編碼(One-Hot)),把屬性變量轉(zhuǎn)化為數(shù)值型變量,可以認(rèn)為和統(tǒng)計(jì)學(xué)中單位標(biāo)準(zhǔn)向量相同,向量元素只有0和1,即N種屬性類型變量對應(yīng)N種狀態(tài)列,如有兩個屬性變量,其中兩個變量去重值數(shù)量對應(yīng)為n×m(N),由獨(dú)熱編碼方式映射的向量矩陣就是m×n型的不嚴(yán)格的標(biāo)準(zhǔn)單位矩陣,如此把屬性類變量歸一到二進(jìn)制向量上,將出現(xiàn)狀態(tài)對應(yīng)的視為整數(shù)索引標(biāo)記為1,其他的空缺情況標(biāo)記為0。此編碼方式可將離散的序列擴(kuò)展到歐氏空間,編碼之后,一方面在計(jì)算和刻畫特征之間的距離和離散化程度刻畫上更加便捷,另一方面也方便對特征向量進(jìn)一步實(shí)現(xiàn)特征工程和模型構(gòu)建,達(dá)到預(yù)測的目的。
本文數(shù)據(jù)列中的兩列犯罪描述和犯罪類型可以形成3×2的向量矩陣,可以表示為“RETAIL THEFT”=>[1,0,0,0,0,0],“ATTEMPT THEFT”=>[0,1,0,0,0,0],“OVER $500”=>[0,0,1,0,0,0]等。
結(jié)合先驗(yàn)經(jīng)驗(yàn)與數(shù)據(jù)可得性,本文從時間、空間經(jīng)緯度、所屬街區(qū)等方面分裂出15個維度指標(biāo)作為模型特征向量,然后采用PCA方法提取特征成分,具體各特征的重要性程度如圖2所示。
圖2 特征重要性圖
在所選擇的訓(xùn)練集下訓(xùn)練出的模型仍需進(jìn)一步驗(yàn)證模型的精確性和準(zhǔn)確性。
本文選擇了三種方法:
(1) 從測試集和預(yù)測數(shù)據(jù)集真實(shí)數(shù)值出發(fā),計(jì)算預(yù)測集和實(shí)際測試集的差值,選擇均方根誤差(RMSE)作為第一個模型評估的方法。
(2) 采用分類正確率(AUC),即:ROC曲線覆蓋面積大小,該指標(biāo)考慮了正例和負(fù)例排序得分問題。
對于XGboost.train參數(shù)進(jìn)行調(diào)優(yōu):
& early_stopping_rounds=10
& eval_metric=′mlogloss′
& eval_set=eval_set
& verbose=True
& learn_rate=0.01
& early_stopping_rounds:早期停止次數(shù),本模型設(shè)為10。
& evals:用于對訓(xùn)練過程中進(jìn)行評估列表中的元素列表。形式是evals=[(dtrain,′train′),(dval,′val′)]或者是evals=[(dtrain,′train′)],用于訓(xùn)練過程中觀察驗(yàn)證集的效果。
& learning_rates:每一次提升的學(xué)習(xí)率的列表。
& eval_metric:選擇的損失函數(shù)類型。
均方根誤差的公式如下:
(11)
式中:n代表犯罪指標(biāo)的樣本數(shù)。
犯罪數(shù)量預(yù)測誤差分布直方圖情況來看,如圖3所示,在各測試值加上均方誤差值(1.60)變化情況,85.6%以上的犯罪數(shù)量誤差率在30%以內(nèi),平均準(zhǔn)確率達(dá)到80.6%。
圖3 犯罪數(shù)量預(yù)測誤差分布直方圖
本文采用的另一種衡量指標(biāo)AUC作為本次犯罪預(yù)測模型的精準(zhǔn)度判定。AUC即為ROC曲線下的面積大小,AUC一般對應(yīng)于二分類邏輯回歸中衡量分類模型的精準(zhǔn)度,表示得到的正例預(yù)測排在負(fù)例前面的概率,可以理解為在本文選擇的正、負(fù)兩個樣本中分別賦予的得分的對比情況,每一個分類器對應(yīng)給出正樣本得分高于負(fù)樣本的概率大小。具體方法為:首先對樣本得分進(jìn)行降序排列,得分最高的樣本對應(yīng)為n,依次向下排列,最終得到的是n-1,…,1序列形式,可以算出正例樣本的數(shù)量(減去兩個正例樣本交叉重復(fù)出現(xiàn)的情況)和正樣本得分大于負(fù)樣本得分?jǐn)?shù)值,與總數(shù)的比值即為所求,即:
(12)
最后采用的另外一種評價(jià)方法:F1分?jǐn)?shù)。與AUC模型相同,F(xiàn)1分?jǐn)?shù)同時考慮了準(zhǔn)確率以及召回率的影響。但是從模型優(yōu)化角度來看,AUC的優(yōu)化目標(biāo)是訓(xùn)練一個偏保守的不誤報(bào)的模型,而F1分?jǐn)?shù)的優(yōu)化目標(biāo)是訓(xùn)練一個偏激進(jìn)的不放過任何可能的模型。綜合兩者考慮,能夠綜合兩者各自的優(yōu)點(diǎn)。F1分?jǐn)?shù)的計(jì)算公式如下所示:
(13)
式中:P代表Precision,即準(zhǔn)確率;R代表Recall,即召回率。
考慮到在實(shí)驗(yàn)中選出的訓(xùn)練集訓(xùn)練出來的模型在實(shí)際使用測試和模型預(yù)測中可能出現(xiàn)參數(shù)擬合欠佳和過擬合,為了提高模型的泛化能力和其對應(yīng)的最優(yōu)超參值,本文選擇利用K折交叉驗(yàn)證方法對參數(shù)進(jìn)行迭代調(diào)優(yōu),找到一個更具說服力的最優(yōu)超參值,并運(yùn)用到訓(xùn)練集上重新訓(xùn)練模型,之后的步驟也就是上述的評價(jià)標(biāo)準(zhǔn)值問題。
(1) 在樣本數(shù)據(jù)集篩選過程中先將全部訓(xùn)練數(shù)據(jù)集在統(tǒng)計(jì)學(xué)的概念上分成k個互不相交和相互獨(dú)立的子集,全部訓(xùn)練數(shù)據(jù)集用S表示,并且假設(shè)S中的訓(xùn)練樣例個數(shù)為n,那么每一個子集對應(yīng)為n/k個訓(xùn)練樣本比例,相應(yīng)的子集稱作{s1,s2,…,sk}。
(2) 每次從已經(jīng)分好的互不相交的分子集中里面,隨機(jī)取出一個作為測試數(shù)據(jù)集,其他的k-1個視為訓(xùn)練集使用。
(3) 利用工具包函數(shù)對k-1個訓(xùn)練集訓(xùn)練學(xué)習(xí)器模型,隨后進(jìn)行模型輸出和假設(shè)函數(shù)系數(shù)輸出。
(4) 將得出的模型放到測試數(shù)據(jù)集上進(jìn)一步驗(yàn)證,得到分類率。
(5) 通過計(jì)算k次,將求得的分類率的平均值,作為該模型或者假設(shè)函數(shù)的真實(shí)分類率。
K折交叉驗(yàn)證能很好地起到參數(shù)預(yù)測模型的欠擬合和過擬合的平衡作用,可以更好地解釋和說明參數(shù)模型結(jié)果。在Python XGBoost庫里,通過CV函數(shù)實(shí)現(xiàn)交叉驗(yàn)證技術(shù)實(shí)現(xiàn)。
前文從檢驗(yàn)方法的角度,選用了均方根誤差、AUC、F1分?jǐn)?shù)和K折交叉驗(yàn)證對預(yù)測模型學(xué)習(xí)效果進(jìn)行評估和調(diào)優(yōu)。為證實(shí)本文選擇的該機(jī)器學(xué)習(xí)的優(yōu)勢,選擇了兩種對隨機(jī)擾動項(xiàng)不太靈敏的算法NB、LR、兩種對異常數(shù)據(jù)擾動性比較靈敏的算法CART、RF及單一的XGBoost算法作為模型實(shí)驗(yàn)的對照。采用鮮明的可視化變現(xiàn)方式,即給出各個算法對應(yīng)的ROC曲線,在一幅圖中可以清晰地看到每個算法的“高下之分”,當(dāng)一個算法的ROC曲線全部路徑在另一條ROC曲線上,基本可以認(rèn)定前者算法是更優(yōu)的選擇。
圖4為XGBoost、NB、LR、CART和RF各分類算法針對本文的犯罪數(shù)據(jù)集建立的預(yù)測模型進(jìn)行預(yù)測結(jié)果的ROC曲線路徑情況,其中:橫坐標(biāo)為False Positive Rate(反向概率),縱坐標(biāo)為True Positive Rate(正向概率)。ROC曲線以越快的速度傾向于坐標(biāo)的左上角位置,可以認(rèn)為該算法的分類和回歸效果越好。
圖4 各算法預(yù)測結(jié)果的ROC曲線對比圖
從圖4所示各算法ROC曲線路徑分布和走勢可以明顯看出PCA-XGBoost算法的預(yù)測精確度效果優(yōu)于其他各種分類預(yù)測算法。
為了進(jìn)一步驗(yàn)證和比較各個算法的預(yù)測平均準(zhǔn)確度以及平均F1分?jǐn)?shù),對聚合成的48 126個有效數(shù)據(jù)集進(jìn)行5次5折交叉驗(yàn)證,分別對應(yīng)各模型算法建立預(yù)測驗(yàn)證和對比。表2可以看到PCA-XGBoost預(yù)測準(zhǔn)確度明顯優(yōu)于其他四種算法,從各個算法5折平均準(zhǔn)確度來看,PCA-XGBoost算法的平均準(zhǔn)確率達(dá)到88.21%,要優(yōu)于單一的XGBoost算法(86.53%),亦遠(yuǎn)高于其他算法(平均準(zhǔn)確率均在80%以下)。如表3所示,從5折F1分?jǐn)?shù)來看,PCA-XGBoost算法的平均F1分?jǐn)?shù)達(dá)到85.03%,要優(yōu)于單一的XGBoost算法(84.23%),亦遠(yuǎn)高于其他算法。因此,可以得出PCA-XGBoost算法在預(yù)測盜竊類犯罪數(shù)量的應(yīng)用場景之下,將會展現(xiàn)出較大的優(yōu)勢。
表2 各算法預(yù)測準(zhǔn)確度對比表(%)
表3 各算法預(yù)測F1分?jǐn)?shù)對比表(%)
經(jīng)與測試集數(shù)據(jù)的對比驗(yàn)證情況來看,基于PCA-XGBoost算法的盜竊犯罪預(yù)測模型,不僅在計(jì)算效率和速度上有明顯優(yōu)勢,而且其預(yù)測準(zhǔn)確率達(dá)到88.21%,其預(yù)測F1值為85.03%,高于XGBoost、LR和NB等其他一些常用的分類模型。因此,該預(yù)測模型能夠有效地揭示盜竊犯罪在相應(yīng)時間和空間下的數(shù)量及其變化情況,其預(yù)測準(zhǔn)確度是非常具有實(shí)際指導(dǎo)意義的,在實(shí)際警務(wù)工作中有較大的推廣價(jià)值。
本文以2017年美國芝加哥市的盜竊犯罪的911報(bào)警數(shù)據(jù)集作為樣本數(shù)據(jù),建立了具有較佳性能且適用于芝加哥市盜竊類犯罪的犯罪預(yù)測模型。通過多種檢驗(yàn)方法得出該P(yáng)CA-XGBoost算法模型具有較高的準(zhǔn)確率。另一方面,通過與其他分類算法模型進(jìn)行橫向?qū)Ρ葘?shí)驗(yàn)表明:PCA-XGBoost模型對樣本市的盜竊犯罪發(fā)生數(shù)量的預(yù)測準(zhǔn)確度明顯高于其他類型的分類預(yù)測模型,其預(yù)測準(zhǔn)確率達(dá)到88.21%,其F1分?jǐn)?shù)可達(dá)85.03%??梢灶A(yù)見,該算法模型將在當(dāng)?shù)鼐结槍ΡI竊犯罪的防控和打擊工作中發(fā)揮重要作用。
需要注意的是,本文研究的是盜竊犯罪只是諸多犯罪類型的一種。不同地域、不同犯罪類型在時間和空間上都可能大相徑庭。因此,在未來針對不同類型犯罪預(yù)測模型的構(gòu)建中,不僅要結(jié)合報(bào)警數(shù)據(jù),還有必要考慮當(dāng)?shù)貙?shí)際的犯罪數(shù)據(jù)進(jìn)行深度學(xué)習(xí),尤其是要在特征向量的提取方面,將與犯罪人、被侵害人(地)有關(guān)復(fù)雜特征數(shù)據(jù)一并考慮。這樣開發(fā)的預(yù)測模型才能更準(zhǔn)確和快捷,這也必然是犯罪預(yù)測研究未來的熱門研究方向之一。