高廣銀 曹紅根 沈 楊
(1.南京理工大學泰州科技學院 泰州 225300)(2.興化市電子政務中心 泰州 225300)
公安巡防保證了社會治安穩(wěn)定良好,基層公安部門治安管理和警務工作的一項重要內容即警情研判和預測分析,對案件發(fā)生轄區(qū)內的所有案件發(fā)生數量進行預測,根據預測結果分析出哪些轄區(qū)的警情會增加,及時調配警力適當增加這些轄區(qū)的警力配置,從而降低轄區(qū)內警情。為克服當前公安警情預測分析主要依靠經驗分析的不足,引入數據分析技術進行量化研究,挖掘出社會安全狀態(tài)的變化及其規(guī)律,為未來特定階段可能出現的警情數量進行預測,使得相關部門能做好預案準備[1]。
將現代數據分析手段應用于警情研判和預測分析正在不斷發(fā)展,并取得了一定成果。黃超等(2011)提出了應用平均值分析、回歸分析等簡單統(tǒng)計方法,描述治安警情的一些周期性外在特征,但對于警情時間序列本身所隱含的內在信息如波動性等難以挖掘[2]。盧睿(2015)將灰色系統(tǒng)理論應用于網絡犯罪研究,通過三角函數變換對不確定因素建模,在缺乏大量數據支撐的條件下提高了預測精度[3]。陳鵬等(2015)應用ARIMA模型和指數平滑模型對某市警情數據分別建模,并得出ARIMA模型更適用于警情分析的短期預測的結論,因為指數平滑模型對治安案件變化的短期趨勢和隨機波動性表現不夠[4]。宋兆銘等(2018)將ARIMA模型應用于某市刑事類警情預測,對2015年1月至2017年12月刑事類警情數據進行建模,對2018年1月進行預測,結果認為該模型在一定條件下有效,即針對刑事類警情[5]。現有方法有一定局限性,即假定未來的條件與現在的條件是相似的,但警情并不是一個穩(wěn)定的狀態(tài),警情的產生是一個復雜的非線性動態(tài)系統(tǒng),比如警務活動的主體及對象、外在環(huán)境本身及其變化,這些因素都可能改變時間序列的趨勢。對于復雜非線性問題可以使用神經網絡模型描述,神經網絡模型基于歷史數據樣本自動學習,通過優(yōu)化參數擬合描述樣本數據規(guī)律的最佳隱函數,并且隱函數越復雜,神經網絡的應用效果就越好[6~8]。因而,神經網絡已經成為目前非線性預測中較為常用的方法。
建立神經網絡模型包括確定網絡的輸入變量、網絡層數、選擇傳遞函數、設置學習速率等。通過對警情影響因素進行分析和表示確定輸入變量,結合問題復雜度設置網絡層數并選擇傳遞函數。最后對模型進行訓練、預測以及誤差分析。
單純地應用時間序列法對巡防警情進行預測的實際效果還不夠理想,是因為僅通過時間這一個維度刻畫對警情的影響,忽略了其非線性動態(tài)特征,即影響警情的其他因素,如轄區(qū)地理位置、有效接處警、警情同比環(huán)比變化和是否節(jié)假日等。本文分析巡防相關因素,如轄區(qū)地理位置、特殊節(jié)假日、警情環(huán)比變化等,進行歸一化表示,具體如下:轄區(qū)在非商業(yè)中心區(qū)用“1”表示,商業(yè)中心區(qū)用“0.75”表示;特殊節(jié)假日用“1”表示,非節(jié)假日用“0.5”表示;同比警情數變化,上升用“1”表示,持平用“0.5”表示,下降用“0”表示。通過對這些警情影響因素的分析可以確定神經網絡輸入變量。
1)確定網絡層數
神經網絡通過設置多個隱含層表征問題的非線性,亦可針對單層網絡增加隱含層的神經元個數實現對非線性的映射,本文根據警務系統(tǒng)要求采用單隱層的神經網絡,即包含三層:輸入層、單隱層和輸出層。設置時間窗口,即t-5、t-4、t-3、t-2、t-1、t時刻來預測t+1時刻的警情數,其中t可以指一天、一周、一月或一季度等,同時考慮3.1中警情影響因素,最終確定輸入層的神經元數為9,即6個時刻的警情數及3個影響因素。根據Kolmogorov定理計算得出隱藏層的神經元數為19。預測t+1時刻的警情數,輸出層的神經元數為1。
2)選擇傳遞函數
傳遞函數通常選擇Log-Sigmoid函數及Purelin函數。
本文隱藏層選擇Log-Sigmoid函數作為傳遞函數,輸出層選擇Purelin函數作為傳遞函數。
3)調整學習速率
本文構建的神經網絡輸入變量包含兩類:時間序列上警情數、警情影響因素,不同類的變量增加了網絡復雜性,因而采用自適應的學習速率,提高訓練效率,在不同的階段網絡的訓練將相應地被設置不同學習速率。
式中:η(k)表示學習速率,e(k)表示誤差函數。
4)改進權值更新
權值調整量為Δwji(n),學習速率為η,學習速率的選擇與確定通過動量項α解決,具體地,實際權值調整量Δwji(n)定義為將前一次權值調整量Δwji(n-1)與本次誤差計進行疊加計算,得到權值調整量 ηδjxji。
動量項α的取值為(0,1)之間的常數,根據經驗α通常設置為0.1。加入了動量項的神經網絡將會降低誤差曲面局部敏感性,減少局部收斂帶來的網絡訓練過程震蕩,從而增強網絡的全局收斂性。
1)實驗數據
本文實驗數據來源于某市公安局2015年1月至2017年12月巡防系統(tǒng)中接處警記錄,共有8735條。統(tǒng)計并歸一化處理t時刻、t-1時刻、t-2時刻、t-3時刻、t-4時刻、t-5時刻警情數,記錄3個影響因素的值,給網絡的輸入變量賦值,以2016年1月~12月為例,如表1所示。神經網絡的訓練樣本選自2015、2016年共6013個,測試樣本選自2017年共2722個。對原始數據歸一化處理及對預測數據還原處理的公式為
式中:x為原始數據,x'為歸一化后數據,xmax為原始最大值,xmin為原始最小值。
表1 警情數及轄區(qū)位置、節(jié)假日、同比變化
2)神經網絡建模與訓練
本實驗環(huán)境基于Matlab,創(chuàng)建和訓練神經網絡的代碼如下:
datain=importdata(‘datain.txt’);
dataout=importdata(‘dataout.txt’);
Threshold=[0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;];
net=newff(threshold,[19 1],{‘logsig’‘purelin’},‘traingdx’);
net.trainparam.show=50
net.trainparam.goal=0.01
net.trainparam.epochs=500
net.trainparam.lr=0.1
net=train(net,datain,dataout)
神經網絡在訓練100次數左右達到收斂,訓練曲線如圖1所示。
圖1 訓練誤差變化曲線圖
1)真值與預測值
真值表示實際警情數,預測值是對測試樣本應用訓練好的網絡進行預測得到的值,比較這兩個值可評價網絡的通用性。預測結果如圖2所示,展示數據為2017年10月。
圖2 預測值與實際警情數比較圖
2)本方法與傳統(tǒng)時間序列法
傳統(tǒng)時間序列預測法假定歷史趨勢延續(xù)不變,僅利用實際警情歷史數據構造模型,通常認為平均誤差在5%左右為預測效果良好。本文優(yōu)化了神經網絡輸入變量,即確定轄區(qū)位置、同比警情變化及節(jié)假日等非時序輸入變量,構建非線性網絡,如表2所示,在增強網絡的表達能力的同時,也提高了預測的精度,平均相對誤差為4.3%,預測結果相對誤差小于5%的比例達到94.6%。
表2 與傳統(tǒng)時間序列預測法比較
3)誤差分析
本文方法相比較傳統(tǒng)方法預測的平均相對誤差改進較少,是因為存在少量的奇值,其預測結果偏差較大,這是由于警情動態(tài)變化以及警務工作的特點使得接處警原始數據未能客觀反映警情狀態(tài),導致輸入變量值存在一定誤差,例如,在整理實驗數據過程中發(fā)現,某日某執(zhí)勤民警在處理當前警情時,現場發(fā)生另一起警情,處理完成后在執(zhí)勤日志中進行了記錄,但大平臺數據庫中未記錄。
本文將神經網絡應用于巡防警情預測研究,根據影響警情的因素優(yōu)化了網絡輸入變量,建立了用于巡防警情預測的神經網絡。在實驗部分,將某市公安局提供的真實數據分成訓練樣本及測試樣本,首先訓練模型,其次應用模型進行預測,最后對實驗結果進行分析,并得出結論,即神經網絡法比傳統(tǒng)時間序列預測法得到更好的預測結果,且預測精度有較大提高,但預測平均誤差無明顯改進。進一步的研究將完善數據的預處理,建立公安大平臺統(tǒng)一數據格式,考慮網絡采用多隱含層,從而提高網絡的泛化能力。