竇梓豪 陳俊霖
(重慶郵電大學先進制造工程學院 重慶市 400065)
銀行ATM 機器在處理業務請求時,前端與客戶交互,采集請求信息,后端接收信息,通過網絡傳輸到總行數據中心處理系統。商業總行數據中心監控系統每分鐘對各分行的交易業務量、交易成功率、交易響應時間三個指標進行匯總統計,用于捕捉前端和后端整體應用系統運行情況并及時發現異常或故障。
根據某商業銀行所給出的部分數據進行分析,數據分為日期、時刻、交易量、成功率、響應時間五種數據,其中針對日期、時刻又構成了時間序列數據[1],由于存在數據較多且關聯性不明顯,故進行數據預處理:利用SPSS 軟件將四位日期、時刻數據創建虛擬變量得到以天數和分鐘數升序等差排列后的時間序列;通過缺失值分析選取1月11日到4月10日共計90 天,每天共計1440 個有效數據。
運用SPSS 軟件的相關性分析功能,得出五種數據分別對應的皮爾遜相關系數和顯著性統計值。根據相關性統計表,可以得出時刻與交易量之間相關性較大達0.3703,根據顯著性統計,可以得出在99%的置信區間上可以拒絕原假設,即在99%的置信區間上認為皮爾遜相關系數顯著的異于0,即時刻與交易量兩個指標相關性顯著,將交易量與時刻的關系反映到每天的時間序列數據中可得日期-時刻-交易量三維時間序列圖如圖1 所示,其中每日交易量與時刻間呈雙峰正態分布關系[2]。
通過MATLAB 將同一日的交易量數據進行累加求得日總交易量,由圖2 觀察可得第10 天至第20 天部分幾日的日總交易量數據明顯與其他日的交易量數據相差較大,且不同日交易量間存在較大落差,通過對原始數據對應的日期進行查詢可得,圖中高峰日期對應時間在2017年為農歷春節期間左右,實際情況中存在春節前夕大量存取錢高峰,導致ATM 機交易記錄劇增劇降。

圖1:日期-時刻-交易量三維時間序列圖

圖2:日總交易量統計圖

圖3:指標-故障映射圖

圖4:故障檢測流程圖
為了方便后面的研究不受影響,采用系統層次聚類分析更準確的將日期進行分段處理,根據系統聚類圖譜分析可以分為:

圖5:可達距離示意圖

圖6:離群值
(1)第1~12 天,即1月11日~1月22日;
(2)第13~16 天,即1月23日~1月26日;
(3)第17~90 天,即1月27日~4月10日。此聚類結果將交易日期分為三段進而進行研究ATM 機交易狀態的特征參數。
由背景資料可得,四種常見的故障場景又對應于總行數據中心監控系統統計的業務量、交易成功率、交易響應時間三個指標,由機理分析可得其映射圖如圖3 所示。
針對四種故障和三種數據指標,首先提取ATM 交易狀態的特征參數,進而代入故障檢測模型中逐級進行故障判斷。
對交易量數據采用的特征參數為離群因子[3]。利用離群因子對同一天不同時刻以及不同天同一時刻的交易量隨時間變化的數據點進行刻畫,將達到LOF 閾值的數據判定為一次異常值,然后進行拉伊達3σ 原則判斷,不滿足的列為二次異常值。

表1:二次異常值數據

表2:三段聚類中心坐標表

圖7:春節前、中、后各段聚類圖
對成功率和響應時間數據,利用K-means 聚類與決策樹提取聚類區間閾值作為特征參數[4]。利用80%數據聚類與決策樹劃分的閾值作為指標,同時用20%數據對決策樹結果進行檢驗。將一次、二次異常值帶入分段聚類中心再次判斷成功率與響應時間是否異常。
通過LOF檢測出的一次、二次異常值和聚類中心劃分的正常點、疑似異常點、異常點進行對應,最終按照故障檢測標準符合兩類判斷條件情況得出低風險、高風險、急需維修,實現故障情況以及對應的預警等級的判斷。故障預警流程圖如圖4。
LOF(Local Outlier Factor,對象的局部異常因子)算法中每個數據都被分配一個局部異常因子,局部異常因子愈大,就認為它更可能是一種異常;反之則可能性小。計算局部異常因子,先產生所有數據點的k-鄰域(同時得到k-距離),并計算到其中每個點的距離。算法流程如下:
(1)計算對象p 的k-距離。
對任意的自然數k,定義p 的k-距離(k-dis(p)),為p 和某個對象o 之間的距離,此時o 滿足:至少存在k 個對象使得并且至多存在k-1 個對象使得

(3)計算對象p 相對于對象o 的可達距離。
給定自然數k,對象p 相對于對象o 的可達距離為:

(4)計算對象p 的局部可達密度(Local Reachable Distance)。
對象p 的局部可達密度為對象p 與它的k-鄰域的平均可達距離的倒數。

(5)計算對象p 的局部異常因子:

利用MATLAB 依次將每一天每個時刻的交易量數據進行LOF處理,LOF 檢驗離群點需要確定k 值,k 值取太小會使得平緩部分的一部分疑似異常點被當成正常點,k 值取太大又會使得上升下降階段時 LOF 值較敏感,經過k 取值的分析對比,采用k=5 作為鄰近對象。一般情況下,認為異常因子接近 1 的點,說明它和周圍點的密度一致,判定為正常;異常因子越小說明它和周圍點的密度相差越大,因此,成為異常點的可能性也就越大。

表3:故障檢測標準

表4:最終故障維修點
根據本題日交易量的數據分布特點,將 LOF 閾值設定為2,即滿足:

視為一次異常值,分別選取每段日期內的一天離群因子觀察情況,即以第10 天(1月21日)、第15 天(1月25日)、第50 天(3月1日)為例,作出其每一時刻的離群值圖像如圖6 所示。
找到對應一次異常值的日期和時刻,按照三個分段日期,對90 天數據中與一次異常值在同一時間段的每天對應時刻數據進行統計,計算其標準差和均值,再將達到離群值閾值的數據進行拉依達3σ 檢驗,采用數值分布在(μ-σ,μ+σ)中的概率為 0.6826 作為正常情況,如果LOF 檢驗出來的一次異常值在(μ-σ,μ+σ)區間內,則仍然可以作為正常點來處理,如果不符合拉伊達σ 檢驗的異常點則被認為是二次異常值,用于下一步成功率與響應時間的檢驗。其中,考慮到實際情況中每臺ATM 機在每日凌晨左右會進行一定的設備升級或者定期維修,也存在有加鈔時機的影響,所以將每日異常數據屬于23:50—00:10 的數據直接進行剔除,避免實際情況影響到模型分析。
最終二次異常值檢驗結果如表1 所示。
由指標-故障映射圖可直觀得出:故障三數據中心后端處理系統異常(如操作系統CPU 負荷過大)引起交易處理緩慢,影響交易響應時間指標,以及故障四數據中心后端處理系統應用進程異常,導致交易失敗或響應緩慢均能夠直接或間接影響到交易成功率和響應時間,通過SPSS 軟件對每一時刻的交易成功率與響應時間進行K-means 聚類分析。
傳統 K-Means 算法的基本思想是初始隨機給定K 個簇中心,按照最鄰近原則把待分類樣本點分到各個簇。然后按平均法重新計算各個簇的質心(這個點可以不是樣本點),從而確定新的簇心。迭代到到簇心的移動距離小于某個給定的值。因此下文根據點的分布來確定其聚類中心,增加其穩定性。按照時間分段分別作出春節前、春節期間、春節后三段時間每一時刻下的交易成功率和響應時間聚類分析圖(圖7)。
圖7 中綠色、黃色、藍色分別對應各自時間段內的正常點、疑似點、異常點。春節前階段1月11日-1月22日。取12 天數據作為訓練集交易成功率整體較高,響應時間整體較低,聚類之后可得第一類與第二類都屬于正常點,第三類作為疑似異常點進行下一步的判斷;春節階段1月23日-1月26日取了4 天的數據作為訓練集。數據特點是平均交易量偏高,從成功率與響應時間來看,第一類與第二類都屬于正常點范圍,第三類屬于異常點。春節后階段1月27日-4月10日一共有64 天數據是較為明顯分為了三類,將其歸納為正常點、疑似異常點、異常點。如表2 所示。
通過回溯表1 中的57 個二次異常值尋找同時又滿足落在對應聚類中心區間內的值,結合離群值特征參數和聚類中心參數進行線性加權并判斷原始數據點處其異常值情況是否連續,可以得出最終的交易故障檢測標準如表3 所示。
當滿足交易量是LOF 二次異常值,并且該時刻的交易成功率和響應時間滿足聚類中心異常點范圍內,該時刻ATM 交易狀態的特征為:前后幾分鐘交易量驟降,交易成功率較低并且交易響應時間較長,存在暫緩性異常而非即刻性異常,與實際情況相符。最終統計所有急需維修結果,得出最終故障維修點如表4 所示。
本文針對ATM 機交易故障情況與三種交易指標間建立起映射關系,并將日期時間按照實際春節前后進行分段提取特征參數,通過二重故障檢測模型逐步篩選異常值、故障點,最終得出故障風險等級,通過驗證,模型檢測結果符合實際情況,模型可供后續故障預警運用。