新四季網

一種數據檢測方法及系統與流程

2024-04-15 20:11:05 1



1.本發明涉及數據檢測領域,具體涉及一種數據檢測方法及系統。


背景技術:

2.目前工業界基於流數據的智能異常檢測系統主要有:美團的horae和亞馬遜的opensearch等。其各有自己的特點,但是也存在一些不足。
3.美團horae使用有監督的機器學習模型。先使用異常自動注入算法對時序數據注入足夠的異常,得到標註好的樣本數據集,進而訓練出異常分類器模型。在把待檢測的流數據輸入異常分類器進行檢測,判斷數據點是否異常。然而有監督的學習模型也存在一些缺點:一是有監督學習需要標註樣本,而標註樣本需要耗費大量人力成本;二是標註樣本需要滿足準確性和種類豐富性,若標註的不準確、正負樣本比例失衡或負樣本不能包含各種場景的異常,將會影響模型的檢測效果。
4.亞馬遜opensearch中的異常檢測通過使用random cut forest(rcf)算法,幾乎實時地自動檢測opensearch數據中的異常。rcf是一種無監督的機器學習算法,可對傳入數據流進行建模。該算法用於計算每個傳入數據點的異常評分值,異常檢測使用這些評分值來區分數據中的異常與正常變化。但是rcf算法只能檢測出剛開始出現的異常和結束時出現的異常,無法檢測出異常開始後和結束前之間的異常,這會導致算法漏檢出一部分異常,從而降低算法的準確率和召回率。


技術實現要素:

5.本發明實施例提供一種數據檢測方法及系統,能夠解決現有技術中數據檢測模型訓練成本高、對數據檢測有遺漏的問題。
6.為達上述目的,一方面,本發明實施例提供一種數據檢測方法,包括:
7.根據每個業務的至少一個指標的原始數據得到每個指標對應的持續的觀測值數據,將持續的觀測值數據形成流式時序數據並寫入消息隊列;每個指標的觀測值數據包括:多個觀測值;
8.針對每個指標,通過實時計算引擎自消息隊列依次獲取流式時序數據內的當前觀測值,將所述當前觀測值與歷史值序列按時序數據方式進行合併形成觀測值序列;
9.將所述觀測值序列輸入實時預測模型對所述當前觀測值與所述歷史值序列進行計算,輸出與所述觀測值序列相對應的預測值序列;以及,
10.通過實時計算引擎對所述觀測值序列和所述預測值序列進行計算,得到各觀測值的絕對誤差,將各觀測值的絕對誤差形成當前的絕對誤差值序列;將當前的絕對誤差值序列輸入實時檢測模型進行檢測,當存在異常觀測值時,輸出當前的異常觀測值序列;
11.其中,所述實時預測模型、所述實時檢測模型均運行於實時計算引擎框架下、且均為無監督學習模型。
12.另一方面,本發明實施例提供一種數據檢測系統,包括:數據接入單元、實時計算
引擎框架,所述實時計算引擎框架包括實時計算引擎、實時預測模型和實時檢測模型,所述實時預測模型、所述實時檢測模型均運行於實時計算引擎框架下、且均為無監督學習模型,其中:
13.所述數據接入單元,用於根據每個業務的至少一個指標的原始數據得到每個指標對應的持續的觀測值數據,將持續的觀測值數據形成流式時序數據並寫入消息隊列;每個指標的觀測值數據包括:多個觀測值;
14.所述實時計算引擎,用於針對每個指標,自消息隊列依次獲取流式時序數據內的當前觀測值,將所述當前觀測值與歷史值序列按時序數據方式進行合併形成觀測值序列;將觀測值序列輸入實時預測模型;
15.所述實時預測模型,用於對所述當前觀測值與所述歷史值序列進行計算,輸出與所述觀測值序列相對應的預測值序列;
16.所述實時計算引擎,還用於對所述觀測值序列和所述預測值序列進行計算,得到各觀測值的絕對誤差,將各觀測值的絕對誤差形成當前的絕對誤差值序列;將當前的絕對誤差值序列輸入實時檢測模型;
17.所述實時檢測模型,用於對當前的絕對誤差值序列進行檢測,當存在異常觀測值時,輸出當前的異常觀測值序列。
18.上述技術方案具有如下有益效果:針對業務的每個指標,通過實時計算引擎自消息隊列依次獲取流式時序數據內的當前觀測值,將當前觀測值與歷史值序列按時序數據方式進行合併形成觀測值序列;將觀測值序列輸入無監督模型形式的實時預測模型對當前觀測值與歷史值序列進行計算,輸出預測值序列。再通過實時計算引擎對觀測值序列和預測值序列進行計算得到各觀測值的絕對誤差,將絕對誤差形成當前的絕對誤差值序列;將當前的絕對誤差值序列輸入無監督模型形式的實時檢測模型進行檢測,當存在異常觀測值時,輸出當前的異常觀測值序列。採用無監督模型,模型訓練成本小,並且可以檢測出數據流中從異常開始一直到異常結束之間出現的所有異常觀測值,進而有效提高檢測模型的召回率和準確率。
附圖說明
19.為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
20.圖1是本發明實施例的一種數據檢測方法的流程圖;
21.圖2是本發明實施例的一種數據檢測系統的結構圖;
22.圖3是本發明實施例的另一數據檢測系統架構圖;
23.圖4是本發明實施例的實時計算引擎的無監督學習模型架構圖;
24.圖5是本發明實施例的二級緩存的數據保存處理流程圖。
具體實施方式
25.下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完
整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
26.縮略語和關鍵術語定義
27.流數據:它是一組順序、大量、快速、連續到達的數據序列,一般情況下,流數據可被視為一個隨時間延續而無限增長的動態數據集合。
28.aiops:artificial intelligence for it operations——人工智慧運維,將人工智慧應用於運維領域,基於已有的運維數據(日誌、監控信息、應用信息等),通過機器學習的方式來進一步解決傳統運維無法解決的問題。
29.有監督學習:從給定的有標註的訓練數據集中學習出一個模型,當新的數據到來時可以根據這個模型預測結果。
30.無監督學習:沒有標註的訓練數據集,需要根據樣本間的統計規律對樣本集進行分析。
31.etl:extract-transform-load,用來描述將數據從來源端經過抽取(extract)、轉換(transform)、加載(load)至目的端的過程。
32.冪等:冪等操作的特點是其任意多次執行所產生的影響均與一次執行的影響相同,不會因為多次執行而產生副作用。
33.如圖1所示,結合本發明的實施例,提供一種數據檢測方法,包括:
34.s101:根據每個業務的至少一個指標的原始數據得到每個指標對應的持續的觀測值數據,將持續的觀測值數據形成流式時序數據並寫入消息隊列;每個指標的觀測值數據包括:多個觀測值;
35.s102:針對每個指標,通過實時計算引擎自消息隊列依次獲取流式時序數據內的當前觀測值,將所述當前觀測值與歷史值序列按時序數據方式進行合併形成觀測值序列;其中,是指與相鄰的預設時間段內的歷史值序列按時序數據方式進行合併形成觀測值序列;
36.s103:將所述觀測值序列輸入實時預測模型對所述當前觀測值與所述歷史值序列進行計算,輸出與所述觀測值序列相對應的預測值序列;以及,
37.s104:通過實時計算引擎對所述觀測值序列和所述預測值序列進行計算,得到各觀測值的絕對誤差,將各觀測值的絕對誤差形成當前的絕對誤差值序列;將當前的絕對誤差值序列輸入實時檢測模型進行檢測,當存在異常觀測值時,輸出當前的異常觀測值序列;
38.其中,所述實時預測模型、所述實時檢測模型均運行於實時計算引擎框架下、且均為無監督學習模型。
39.優選地,所述歷史值序列包括:與所述當前觀測值相鄰的歷史時間段內的觀測值序列或者修正值序列;當不存在實時修正模型的情況下,將所述觀測值序列作為所述歷史值序列;當存在實時修正模型的情況下,將所述修正值序列作為所述歷史值序列;
40.所述的數據檢測方法,還包括:
41.s105:當存在實時修正模型的情況下,將當前的異常觀測值序列和觀測值序列輸入所述實時修正模型,採用修復策略對當前的異常觀測值進行修復,得到對應的修正值,將修正值覆蓋當前的觀測值序列內對應的觀測值,輸出與當前的觀測值序列對應的修正值序
列;其中,所述實時修正模型為運行於實時計算引擎框架下的無監督學習模型。
42.優選地,s105中,所述採用修復策略對當前的異常觀測值進行修復,得到對應的修正值,具體包括:
43.s1051:將當前的異常觀測值序列輸入實時修正模型;
44.s1052:針對每個異常觀測值,實時修正模型採用同比方法自修正值序列獲取歷史同期的各觀測值,並計算出歷史同期的各觀測值的平均值,得到同比平均值;以及
45.s1053:採用環比修複方法自修正值序列獲取相鄰的預設數量的各觀測值,並計算所述預設數量的各觀測值的平均值,得到環比平均值;
46.s1054:將與所述異常觀測值最接近的同比平均值或者環比平均值作為異常觀測值對應的修正值。
47.優選地,s104中,所述將當前的絕對誤差值序列輸入實時檢測模型進行檢測,當存在異常觀測值時,輸出當前的異常觀測值序列,具體包括:
48.s1041:將當前的絕對誤差值序列輸入實時檢測模型進行檢測,所述實時檢測模型計算當前的絕對誤差值序列均值、以及計算當前的絕對誤差值序列的標準差,將當前的絕對誤差值序列均值與預設倍數的當前的絕對誤差值序列的標準差之和作為比對閾值;
49.s1042:判斷各絕對誤差值是否超過所述比對閾值,若絕對誤差值超過所述比對閾值,則判定絕對誤差值對應的觀測值為異常觀測值,否則,判定絕對誤差值對應的觀測值為正常觀測值;
50.s1043:當存在異常觀測值時,輸出當前的異常觀測值序列,所述當前的異常觀測值序列包括異常觀測值以及相應的異常時間戳。
51.優選地,還包括s106:修正實時預測模型,s106:修正實時預測模具體包括:
52.s106-1:在修正實時預測模型時,通過離線處理引擎按照預設周期從時序資料庫中讀取修正值序列;
53.s106-2:通過固定間隔的網格搜索法確定實時預測模型的每組參數的參數值,將每組參數值分別代入實時預測模型形成相應的實時預測修正模型;
54.s106-3:針對每個實時預測修正模型,將所讀取的修正值序列輸入所述實時預測修正模型得到修正用預測值序列;
55.s106-4:通過實時計算引擎對所述修正值序列和所述修正用預測值序列計算,輸出相應的修正用絕對誤差序列;
56.s106-5:計算各所述修正用絕對誤差序列的絕對誤差的累加值;
57.s106-6:將所述絕對誤差的累加值最小的實時預測修正模型內的參數作為最優參數;
58.s106-7:將所述最優參數保存在遠程緩存中,用於實時預測模型預測時進行讀取。
59.優選地,還包括:
60.s107:設置時序資料庫,所述時序資料庫用於對產生的觀測值序列、預測值序列、絕對誤差值序列、異常值序列、修正值序列分別進行全量的保存;
61.s108:設置二級緩存,所述二級緩存包括:遠程緩存、實時計算引擎框架的本地緩存;其中:
62.所述遠程緩存接收與當前時間相鄰的歷史時間段內的修正值序列和預測值序列,
對其內的修正值序列和預測值序列進行更新並保存;
63.所述實時計算引擎框架的本地緩存自所述遠程緩存內實時拉取與當前時間相鄰的歷史時間段內的修正值序列和預測值序列更新實時計算引擎框架的本地緩存,使得所述實時計算引擎框架的本地緩存的修正值序列和預測值序列與所述遠程緩存保存的同步;其中,與當前時間相鄰的歷史時間段包括至少兩個時間周期;
64.在實時檢測模型實時檢測觀測值序列是否存在異常觀測值的過程中,出現對實時計算引擎框架進行重啟的情況時,在實時計算引擎框架重啟後,自所述遠程緩存拉取與當前時間相鄰的歷史時間段的修正值序列和預測值序列到實時計算引擎框架的本地緩存,以用於繼續對當前觀測值序列的觀測值進行檢測,輸出預測值序列;並將所輸出的觀測值序列和預測值序列分別保存在實時計算引擎框架的本地緩存、遠程緩存和時序資料庫;
65.以及當輸出當前的異常值序列後,將當前的異常值序列對應的修正值序列保存實時計算引擎框架的在本地緩存、遠程緩存和時序資料庫。
66.優選地,還包括:
67.s109:針對業務的每個指標,採用可視化工具獲取時序資料庫中的各指標的觀測值序列、預測值序列、異常值序列和修正值序列,將各指標的觀測值序列、預測值序列、異常值序列和修正值序列分別採用配圖形式進行展示;
68.s110:當存在異常觀測值時,根據所述指標在指定時間段內異常觀測值的數量,確認所述指標滿足報警規則的情況下,發出報警。
69.如圖2所示,結合本發明的實施例,提供一種數據檢測系統,包括數據接入單元21、實時計算引擎框架22,所述實時計算引擎框架22包括實時計算引擎221、實時預測模型222和實時檢測模型223,所述實時預測模型222、所述實時檢測模型223均運行於實時計算引擎框架22下、且均為無監督學習模型,其中:
70.所述數據接入單元21,用於根據每個業務的至少一個指標的原始數據得到每個指標對應的持續的觀測值數據,將持續的觀測值數據形成流式時序數據並寫入消息隊列;每個指標的觀測值數據包括:多個觀測值;
71.所述實時計算引擎221,用於針對每個指標,自消息隊列依次獲取流式時序數據內的當前觀測值,將所述當前觀測值與歷史值序列按時序數據方式進行合併形成觀測值序列;將觀測值序列輸入實時預測模型;
72.所述實時預測模型222,用於對所述當前觀測值與所述歷史值序列進行計算,輸出與所述觀測值序列相對應的預測值序列;
73.所述實時計算引擎221,還用於對所述觀測值序列和所述預測值序列進行計算,得到各觀測值的絕對誤差,將各觀測值的絕對誤差形成當前的絕對誤差值序列;將當前的絕對誤差值序列輸入實時檢測模型;
74.所述實時檢測模型223,用於對當前的絕對誤差值序列輸入進行檢測,當存在異常觀測值時,輸出當前的異常觀測值序列;
75.優選地,所述實時計算引擎框架22還包括實時修正模型224,所述實時修正模型為運行於實時計算引擎框架下的無監督學習模型所述歷史值序列包括:與所述當前觀測值相鄰的歷史時間段內的觀測值序列或者修正值序列;當不存在實時修正模型的情況下,將所述觀測值序列作為所述歷史值序列;當存在實時修正模型的情況下,將所述修正值序列作
為所述歷史值序列;其中:
76.所述實時計算引擎,還用於當存在實時修正模型的情況下,將當前的異常觀測值序列和觀測值序列輸入所述實時修正模型;
77.所述實時修正模型,用於採用修復策略對當前的異常觀測值進行修復,得到對應的修正值,將修正值覆蓋當前的觀測值序列內對應的觀測值,輸出與當前的觀測值序列對應的修正值序列。
78.優選地,所述實時修正模型224,具體用於:
79.針對每個異常觀測值,採用同比方法自修正值序列獲取歷史同期的各觀測值,並計算出歷史同期的各觀測值的平均值,得到同比平均值;以及
80.採用環比修複方法自修正值序列獲取相鄰的預設數量的各觀測值,並計算所述預設數量的各觀測值的平均值,得到環比平均值;
81.將與所述異常觀測值最接近的同比平均值或者環比平均值作為異常觀測值對應的修正值。
82.優選地,所述實時檢測模型223,具體用於:
83.在當前的絕對誤差值序列輸入本實時檢測模型後,計算當前的絕對誤差值序列均值、以及計算當前的絕對誤差值序列的標準差,將當前的絕對誤差值序列均值與預設倍數的當前的絕對誤差值序列的標準差之和作為比對閾值;
84.判斷各絕對誤差值是否超過所述比對閾值,若絕對誤差值超過所述比對閾值,則判定絕對誤差值對應的觀測值為異常觀測值,否則,判定絕對誤差值對應的觀測值為正常觀測值;
85.當存在異常觀測值時,輸出當前的異常觀測值序列,所述當前的異常觀測值序列包括異常觀測值以及相應的異常時間戳。
86.優選地,還包括實時預測模型修正單元,其中:
87.所述實時預測模型修正單元,用於在修正實時預測模型時,通過離線處理引擎按照預設周期從時序資料庫中讀取修正值序列;
88.通過固定間隔的網格搜索法確定實時預測模型的每組參數的參數值,將每組參數值分別代入實時預測模型形成相應的實時預測修正模型;
89.針對每個實時預測修正模型,將所讀取的修正值序列輸入所述實時預測修正模型得到修正用預測值序列;
90.所述實時計算引擎221,用於對所述修正值序列和所述修正用預測值序列計算,輸出相應的修正用絕對誤差序列;
91.所述實時預測模型修正單元,還用於計算各所述修正用絕對誤差序列的絕對誤差的累加值;
92.將所述絕對誤差的累加值最小的實時預測修正模型內的參數作為最優參數;
93.將所述最優參數保存在遠程緩存中,用於實時預測模型預測時進行讀取。
94.優選地,還包括時序資料庫、二級緩存,所述二級緩存包括:本地緩存和遠程緩存,其中:
95.所述時序資料庫,用於對產生的觀測值序列、預測值序列、絕對誤差值序列、異常值序列、修正值序列分別進行全量的保存;
96.所述遠程緩存,用於接收與當前時間相鄰的歷史時間段內的修正值序列和預測值序列,對其內的修正值序列和預測值序列進行更新並保存;
97.所述實時計算引擎框架的本地緩存,用自於所述遠程緩存內實時拉取與當前時間相鄰的歷史時間段內的修正值序列和預測值序列更新實時計算引擎框架的本地緩存,使得所述實時計算引擎框架的本地緩存的修正值序列和預測值序列與所述遠程緩存保存的同步;其中,與當前時間相鄰的歷史時間段包括至少兩個時間周期;以及
98.所述實時計算引擎框架的本地緩存,還用於在實時檢測模型實時檢測觀測值序列是否存在異常觀測值的過程中,出現對實時計算引擎框架進行重啟的情況時,在實時計算引擎框架重啟後,自所述遠程緩存拉取與當前時間相鄰的歷史時間段的修正值序列和預測值序列;以及
99.在實時計算引擎框架重啟,繼續對當前觀測值序列的觀測值進行檢測,輸出預測值序列後,將所輸出的觀測值序列和預測值序列進行保存;以及當輸出當前的異常值序列後,對當前的異常值序列對應的修正值序列進行保存;
100.所述遠程緩存,還用於實時計算引擎框架重啟,繼續對當前觀測值序列的觀測值進行檢測,輸出預測值序列後,將所輸出的觀測值序列和預測值序列進行保存;以及當輸出當前的異常值序列後,將當前的異常值序列對應的修正值序列進行保存。
101.優選地,還包括:
102.可視化單元,用於針對業務的每個指標,採用可視化工具獲取時序資料庫中的各指標的觀測值序列、預測值序列、異常值序列和修正值序列,將各指標的觀測值序列、預測值序列、異常值序列和修正值序列分別採用配圖形式進行展示;
103.報警單元,用於當存在異常觀測值時,根據所述指標在指定時間段內異常觀測值的數量,確認所述指標滿足報警規則的情況下,發出報警。
104.下面結合具體的應用實例對本發明實施例上述技術方案進行詳細說明,實施過程中沒有介紹到的技術細節,可以參考前文的相關描述。
105.本發明實施例為一種數據檢測方法及系統,具體為基於流數據的異常數據的智能檢測方法及系統;如圖3所示,基於流數據的異常數據智能檢測系統包括數據接入、實時檢測(實時計算引擎框架)、異常報警與可視化和模型訓練。實時計算引擎框架包括實時計算引擎、實時預測模型和實時檢測模型,所述實時預測模型、所述實時檢測模型均運行於實時計算引擎框架下、且均為無監督學習模型,具體如下:
106.一、數據接入單元。主要包含兩部分:指標註冊和數據etl清洗。通過指標註冊記錄業務內的每個指標代表的含義、記錄報警規則採用的相關參數,指標名稱具有唯一性。每組時間序列數據即流式時序數據採用指標名稱來表示,比如:視頻播放量、視頻卡頓率、視頻播放時長。報警規則的相關參數有:報警閾值、報警接收人、報警時間間隔等。
107.根據每個業務的至少一個指標的原始數據得到每個指標對應的持續的觀測值數據,將持續的觀測值數據形成流式時序數據並寫入消息隊列;每個指標的觀測值數據包括:多個觀測值;具體為:將指標的原始數據存儲在消息隊列kafka中,通過數據etl清洗是指將標原始數據通過聚合、過濾、轉化等過程,轉化為流式時序數據並寫入消息隊列kafka。每條流式時序數據包含如下欄位:業務名稱、業務包含的至少指標、每個業務對應的一組報警規則;指標名稱、指標值、指標值發生對應的時間戳(即事件發生的時間);通過業務名稱和指
標名稱聯合起來保證了指標唯一性;
108.二、實時計算引擎框架用於實時檢測,包含:實時預測模型、實時檢測模型和實時模型修正,實時預測模型、實時檢測模型和實時模型修正分別為無監督學習模型。原始數據通過etl清洗後得到流式時序數據,把流式時序數據寫入消息隊列kafka中。通過實時計算引擎flink應用來消費kafka中的流式時序數據,在通過無監督學習模型實時處理流式時序數據,當存在異常值時能夠最終從流式時序數據中檢測出異常值。實時計算引擎框架flink下的無監督學習模型的架構圖如圖4所示。
109.針對每個指標,通過實時計算引擎自消息隊列依次獲取流式時序數據內的當前觀測值,將所述當前觀測值與相鄰的預設時間段內的歷史值序列按時序數據方式進行合併形成觀測值序列。
110.無監督學習模型處理流數據的主要流程:
111.(一)、把觀測值序列輸入holt-winters實時預測模型,對當前觀測值與歷史值序列進行計算,得到與觀測值序列相對應的預測值序列。
112.實時預測模型採用了holt-winters算法,該方法適合預測趨勢線性且周期固定的時間序列,算法的基本原理是給予最近的觀測值更多的權重,而越早的觀察值越少的權重,它已被證明在許多預測場景下是非常有效的。另外,預測模型可根據實際業務場景採用其他算法,如:arma算法、移動平均算法、指數平滑算法、多元線性回歸算法等。holt-winters算法模型的基本方程為:
[0113][0114]
其中:y是觀測值,s是預測值,b是趨勢因子,i是季節指數,f是m個階段後的預測值,t表示某個時間段的索引。α、β和γ是常數,這三個參數可通過模型訓練得到,l表示周期,如分鐘粒度以天為周期的時序數據,l數值為1440。通過輸入至少2個周期的觀測值序列,使用holt-winters算法模型,即上述方程式進行計算,得到相應時間段的預測值序列。
[0115]
(二)、通過實時計算引擎對觀測值序列和預測值序列進行計算,得到各觀測值的絕對誤差值,將各觀測值的絕對誤差形成當前的絕對誤差值序列。
[0116]
將當前的絕對誤差值序列輸入實時檢測模型進行檢測,所述實時檢測模型計算當前的絕對誤差值序列均值、以及計算當前的絕對誤差值序列的標準差,將當前的絕對誤差值序列均值與預設倍數的當前的絕對誤差值序列的標準差之和作為比對閾值;
[0117]
判斷各絕對誤差值是否超過所述比對閾值,若絕對誤差值超過所述比對閾值,則判定絕對誤差值對應的觀測值為異常觀測值,否則,判定絕對誤差值對應的觀測值為正常觀測值;
[0118]
當存在異常觀測值時,輸出當前的異常觀測值序列,所述當前的異常觀測值序列包括異常觀測值以及相應的異常時間戳。
[0119]
(三)、將絕對誤差值序列輸入ksigma實時檢測模型進行檢測,當存在異常觀測值時,輸出當前的異常觀測值序列,以及得到異常值對應的時間點。
[0120]
實時檢測模型使用ksigma算法和切比雪夫不等式,切比雪夫不等式規定了超過多少比例的數值一定會落在平均值的k個標準差內,因此認為在平均值的k個標準差範圍外的數值為異常值。由於絕對誤差值序列的概率分布不確定,因此可根據切比雪夫不等式原理選取相應的k值,再通過ksigma算法判斷當前觀測值是否異常。另外,實時檢測模型根據實際業務場景選用其他算法,如:簡單閾值算法、基於密度的聚類算法、基於劃分的聚類算法、基於層次的聚類算法等。ksigma算法判斷異常點的基本公式為:
[0121][0122]
其中,y是觀測值,s是預測值,e是絕對誤差值,μ是平均值,σ是標準差,n是觀測值個數,至少需要2個周期。k是常數,可根據切比雪夫不等式原理選取合適的k值。通過輸入至少2個周期的歷史觀測值序列和預測值序列,計算出絕對誤差值序列,判斷當前絕對誤差值(至少2個周期)是否超過絕對誤差值序列均值和k個標準差之和,若超過那麼判定當前觀測值為異常值,否則當前觀測值為正常值,最後輸出觀測值序列、預測值序列和異常值序列。其中,均值是絕對誤差值序列的平均值,標準差是絕對誤差值序列的標準差,k是常數。
[0123]
(四)將當前的異常觀測值序列和觀測值序列輸入實時修正模型,採用修復策略對當前的異常觀測值進行修復,得到對應的修正值,將修正值覆蓋當前的觀測值序列內對應的觀測值,輸出與當前的觀測值序列對應的修正值序列。其中:採用修復策略對當前的異常觀測值進行修復,得到對應的修正值,具體包括:將當前的異常觀測值序列輸入實時修正模型;針對每個異常觀測值,實時修正模型採用同比方法自修正值序列獲取歷史同期的各觀測值,並計算出歷史同期的各觀測值的平均值,得到同比平均值;以及採用環比修複方法自修正值序列獲取相鄰的預設數量的各觀測值,並計算所述預設數量的各觀測值的平均值,得到環比平均值;將與所述異常觀測值最接近的同比平均值或者環比平均值作為異常觀測值對應的修正值。歷史值序列包括:歷史觀測值序列或者修正值序列;當不存在實時修正模型的情況下,將歷史觀測值序列作為所述歷史值序列;當存在實時修正模型的情況下,將所述修正值序列作為所述歷史值序列。
[0124]
採用同環比修復策略修復異常時間點對應的觀測值,最後把修復後的觀測值覆蓋原始觀測值(當前觀測值)。如此循環,通過修復異常值保證了歷史值序列的正確性,歷史值序列的正確性保證了預測值序列內的當前預測值的正確性,同時觀測值序列和預測值序列的正確性保證了檢測結果的正確性。通過實時預測模型、實時檢測模型和實時修正模型的良性循環,最終保證了無監督學習模型良好的檢測效果。
[0125]
實時修正模型採用了同環比修複方法,對於判定為異常的觀測值,計算出歷史同期數據的平均值和環比近期數據的平均值,在兩者之中選擇與當前觀測值最接近的數值,作為當前觀測值的修正值。可根據模型的時間粒度,設置同比數據的數目和環比數據的數目。其中,歷史同期,比如:實時的異常發生在10:10,歷史同期可以是昨天的10:10,前天的10:10,大前天的10:10,然後求這3個時間點對應的觀測值的平均值。具體多少個歷史同期
的數據可以根據業務情況配置。其中,環比近期,比如:實時的異常發生在10:10,環比近期的10:00,10:01...,10:09,求這10個時間點對應的觀測值的平均值。具體多少個環比近期的數據可以根據業務情況配置。
[0126]
三、實時檢測模塊是以流數據的方式進行處理,而實時預測模型和實時檢測模型需要足夠的歷史數據才能進行預測和檢測,因此需要在實時計算引擎框架的本地內存積累足夠的歷史觀測值序列和歷史預測值序列。流數據處理引擎flink是無狀態的,當flink應用重啟後或者出現異常退出,實時計算引擎框架的本地內存積累的歷史數據就不存在了,這樣還需再次積累足夠的歷史數據才能開始預測和檢測,而積累歷史數據的過程會非常耗時。因此設有實時計算引擎框架的本地緩存和遠程緩存二級緩存方案:實時計算引擎框架的本地緩存和遠程緩存存儲內容一致,均存儲了最近產生的若干周期的修正值序列和預測值序列,其中修正值序列包含對異常的觀測值修正後的修正值和正常的觀測值。應用啟動時,會檢查遠程緩存是否包含修正值序列和預測值序列,若包含那麼拉取遠程緩存的修正值序列和預測值序列到本地,若不包含那麼實時計算引擎框架的本地緩存和遠程緩存開始累積修正值序列和預測值序列;實時預測模型根據修正值序列計算出當前觀測值的預測值,實時檢測模型根據修正值序列和預測值序列判斷當前觀測值是否異常,若當前觀測值正常,那麼把觀測值和預測值存入本地緩存和遠程緩存,或當前觀測值異常,那麼把修正後的觀測值和預測值存入實時計算引擎框架的本地緩存和遠程緩存。若flink應用重啟,會從遠程緩存拉取歷史觀測值序列和歷史預測值序列到本地緩存,無需再次積累預設周期的歷史數據,如果在應用重啟前已經積累足夠,那麼從流流數據序列內的下個數據點就可以開始預測和檢測。通過實時計算引擎框架的本地緩存結合遠程緩存,並藉助flink checkpoint機制,可實現消費kafka業務上的冪等性,也就是重複消費kafka不會對檢測結果造成影響。實時計算引擎框架的本地緩存和遠程緩存二級緩存的數據保存處理流程如圖5所示。
[0127]
綜上,時序資料庫elasticsearch存儲全量的下列數據:歷史觀測值序列、歷史預測值序列、歷史修正值序列、歷史異常值序列、歷史絕對誤差值序列、閾值序列。
[0128]
設置二級緩存,所述二級緩存包括:遠程緩存、實時計算引擎框架的本地緩存;其中:
[0129]
設置二級緩存,所述二級緩存包括:遠程緩存、實時計算引擎框架的本地緩存;其中:
[0130]
所述遠程緩存接收與當前時間相鄰的歷史時間段內的修正值序列和預測值序列,對其內的修正值序列和預測值序列進行更新並保存;
[0131]
所述實時計算引擎框架的本地緩存自所述遠程緩存內實時拉取與當前時間相鄰的歷史時間段內的修正值序列和預測值序列更新實時計算引擎框架的本地緩存,使得所述實時計算引擎框架的本地緩存的修正值序列和預測值序列與所述遠程緩存保存的同步;其中,與當前時間相鄰的歷史時間段包括至少兩個時間周期;
[0132]
在實時檢測模型實時檢測觀測值序列是否存在異常觀測值的過程中,出現對實時計算引擎框架進行重啟的情況時,在實時計算引擎框架重啟後,自所述遠程緩存拉取與當前時間相鄰的歷史時間段的修正值序列和預測值序列到實時計算引擎框架的本地緩存,以用於繼續對當前觀測值序列的觀測值進行檢測,輸出預測值序列;並將所輸出的觀測值序
列和預測值序列分別保存在實時計算引擎框架的本地緩存、遠程緩存和時序資料庫;
[0133]
以及當輸出當前的異常值序列後,將當前的異常值序列對應的修正值序列保存實時計算引擎框架的在本地緩存、遠程緩存和時序資料庫。
[0134]
四、異常報警單元和可視化單元。主要包含兩部分:異常報警和可視化。實時計算引擎框架內的各組件、模型會實時把最終計算出來的歷史觀測值序列、歷史預測值序列、歷史異常值序列和歷史修正值序列寫入時序資料庫elasticsearch之中。異常報警單元會定時讀取時序資料庫中的異常值序列,針對每個指標,判斷該指標在限定時間內的異常值數目是否滿足報警規則,若滿足報警規則,通過報警觸發器可通過多種方式發送報警,如郵件、微博私信、微信、簡訊和電話報警方式等。可視化單元使用可視化工具grafana獲取時序資料庫中的指標,通過配圖可以展示觀測值、預測值、異常值和修正值序列,便於直觀地查看指標的異常情況。
[0135]
五、模型訓練,通過實時預測模型修正單元和實時計算引擎共同實現。
[0136]
在修正實時預測模型時,通過離線處理引擎按照預設周期從時序資料庫中讀取修正值序列;通過固定間隔的網格搜索法確定實時預測模型的每組參數的參數值,將每組參數值分別代入實時預測模型形成相應的實時預測修正模型;針對每個實時預測修正模型,將所讀取的修正值序列輸入所述實時預測修正模型得到修正用預測值序列;通過實時計算引擎對所述修正值序列和修正用預測值序列計算,輸出相應的修正用絕對誤差序列;計算各修正用絕對誤差序列的絕對誤差的累加值;將所述絕對誤差的累加值最小的實時預測修正模型內的參數作為最優參數;將所述最優參數保存在遠程緩存中,用於實時預測模型預測時進行讀取。
[0137]
具體地,模型訓練主要用於訓練holt-winters實時預測模型的最優參數,即最優的α、β和γ,而ksigma模型的參數k可根據切比雪夫不等式原理直接選取。其主要包含兩部分:定時訓練模型和存儲最優模型。其中,定時訓練模型(只有預測模型需要定時訓練),在固定的時間間隔,使用離線計算處理引擎spark從時序資料庫elasticsearch中讀取修正值序列,計算出每個修正值序列對應的每組α、β和γ參數訓練出的holt-winters預測模型,其中α、β和γ參數的選取可通過固定間隔的網格搜索法實現,計算出每組參數訓練出的預測模型對應的預測值序列,與修正值序列的絕對誤差序列,選擇絕對誤差序列累加值最小的模型作為最優模型,其對應的參數就是最優參數。存儲最優模型是將每個指標訓練出來的最優模型對應的α、β和γ參數存儲在遠程緩存redis當中,供holt-winters實時預測模型定時調度時讀取並使用,從而持續保證實時預測模型的可靠性。其中,網格搜索法舉例如下:α取值0、0.1、0.2、0.3、...、1.0,β取值0、0.1、0.2、0.3、...、1.0,γ取值0、0.1、0.2、0.3、...、1.0,一組參數可用(α,β,γ)表示,那麼(α,β,γ)可能取值的總組數:11*11*11,在這些組的參數中選擇一組最優參數。除了網格搜索法,還包括優化計算的技巧、以及迭代次數和最優解的權衡等。
[0138]
本發明實施例所取得的有益效果如下:
[0139]
相對於美團horae使用的有監督學習模型,本發明實施例使用了無監督學習模型,因而無需標註樣本和幹預,從而無需考慮標註是否準確、正負樣本的比例是否合理,通過機器學習算法實現了智能化處理,省去了人力標註的成本,增加了系統處理各種類型流數據的通用性。使用同環比方法修正觀測值數據。通過模型內部模塊的良性循環,保證了模型良
好的準確率和召回率。
[0140]
相對於亞馬遜opensearch中使用random cut forest(rcf)異常檢測算法,雖然兩者都是無監督學習模型,但是rcf算法只能檢測出剛開始出現的異常和結束時出現的異常,本發明實施例所採用的無監督學習模型,使用了holt-winters算法和ksigma算法,可以檢測出從異常開始一直到異常結束之間出現的所有異常,進而有效提高檢測模型的召回率和準確率。能夠實時、智能、準確地檢測出流數據中出現的異常,並向業務人員發出告警,供業務人員快速發現並及時解決問題。從而降低服務故障發生率,提高服務的穩定性。
[0141]
採用流處理引擎實時接入流式時序數據,流處理引擎實時檢測出異常數據,流數據存儲、可視化與異常報警,離線處理引擎訓練最優模型。單實例可實現每秒檢測成百上千個業務指標,同時藉助分布式的大數據集群,理論上可以無限橫向擴展,從而極大地提高系統處理指標的吞吐量。
[0142]
採用本地緩存和遠程緩存的二級緩存方案,通過把歷史數據緩存在本地內存和遠程緩存,當應用重啟後,無需再次積累足夠的歷史數據,即可開始檢測下個數據點,解決了流處理引擎無狀態的缺點。同時本地緩存結合遠程緩存,並藉助流式處理引擎flink的checkpoint機制,可實現消費kafka業務上的冪等性,也就是重複消費kafka不會對檢測結果造成影響。
[0143]
應該明白,公開的過程中的步驟的特定順序或層次是示例性方法的實例。基於設計偏好,應該理解,過程中的步驟的特定順序或層次可以在不脫離本公開的保護範圍的情況下得到重新安排。所附的方法權利要求以示例性的順序給出了各種步驟的要素,並且不是要限於所述的特定順序或層次。
[0144]
在上述的詳細描述中,各種特徵一起組合在單個的實施方案中,以簡化本公開。不應該將這種公開方法解釋為反映了這樣的意圖,即,所要求保護的主題的實施方案需要比清楚地在每個權利要求中所陳述的特徵更多的特徵。相反,如所附的權利要求書所反映的那樣,本發明處於比所公開的單個實施方案的全部特徵少的狀態。因此,所附的權利要求書特此清楚地被併入詳細描述中,其中每項權利要求獨自作為本發明單獨的優選實施方案。
[0145]
為使本領域內的任何技術人員能夠實現或者使用本發明,上面對所公開實施例進行了描述。對於本領域技術人員來說;這些實施例的各種修改方式都是顯而易見的,並且本文定義的一般原理也可以在不脫離本公開的精神和保護範圍的基礎上適用於其它實施例。因此,本公開並不限於本文給出的實施例,而是與本技術公開的原理和新穎性特徵的最廣範圍相一致。
[0146]
上文的描述包括一個或多個實施例的舉例。當然,為了描述上述實施例而描述部件或方法的所有可能的結合是不可能的,但是本領域普通技術人員應該認識到,各個實施例可以做進一步的組合和排列。因此,本文中描述的實施例旨在涵蓋落入所附權利要求書的保護範圍內的所有這樣的改變、修改和變型。此外,就說明書或權利要求書中使用的術語「包含」,該詞的涵蓋方式類似於術語「包括」,就如同「包括,」在權利要求中用作銜接詞所解釋的那樣。此外,使用在權利要求書的說明書中的任何一個術語「或者」是要表示「非排它性的或者」。
[0147]
本領域技術人員還可以了解到本發明實施例列出的各種說明性邏輯塊(illustrative logical block),單元,和步驟可以通過電子硬體、電腦軟體,或兩者的結
合進行實現。為清楚展示硬體和軟體的可替換性(interchangeability),上述的各種說明性部件(illustrative components),單元和步驟已經通用地描述了它們的功能。這樣的功能是通過硬體還是軟體來實現取決於特定的應用和整個系統的設計要求。本領域技術人員可以對於每種特定的應用,可以使用各種方法實現所述的功能,但這種實現不應被理解為超出本發明實施例保護的範圍。
[0148]
本發明實施例中所描述的各種說明性的邏輯塊,或單元都可以通過通用處理器,數位訊號處理器,專用集成電路(asic),現場可編程門陣列或其它可編程邏輯裝置,離散門或電晶體邏輯,離散硬體部件,或上述任何組合的設計來實現或操作所描述的功能。通用處理器可以為微處理器,可選地,該通用處理器也可以為任何傳統的處理器、控制器、微控制器或狀態機。處理器也可以通過計算裝置的組合來實現,例如數位訊號處理器和微處理器,多個微處理器,一個或多個微處理器聯合一個數位訊號處理器核,或任何其它類似的配置來實現。
[0149]
本發明實施例中所描述的方法或算法的步驟可以直接嵌入硬體、處理器執行的軟體模塊、或者這兩者的結合。軟體模塊可以存儲於ram存儲器、快閃記憶體、rom存儲器、eprom存儲器、eeprom存儲器、寄存器、硬碟、可移動磁碟、cd-rom或本領域中其它任意形式的存儲媒介中。示例性地,存儲媒介可以與處理器連接,以使得處理器可以從存儲媒介中讀取信息,並可以向存儲媒介存寫信息。可選地,存儲媒介還可以集成到處理器中。處理器和存儲媒介可以設置於asic中,asic可以設置於用戶終端中。可選地,處理器和存儲媒介也可以設置於用戶終端中的不同的部件中。
[0150]
在一個或多個示例性的設計中,本發明實施例所描述的上述功能可以在硬體、軟體、固件或這三者的任意組合來實現。如果在軟體中實現,這些功能可以存儲與電腦可讀的媒介上,或以一個或多個指令或代碼形式傳輸於電腦可讀的媒介上。電腦可讀媒介包括電腦存儲媒介和便於使得讓電腦程式從一個地方轉移到其它地方的通信媒介。存儲媒介可以是任何通用或特殊電腦可以接入訪問的可用媒體。例如,這樣的電腦可讀媒體可以包括但不限於ram、rom、eeprom、cd-rom或其它光碟存儲、磁碟存儲或其它磁性存儲裝置,或其它任何可以用於承載或存儲以指令或數據結構和其它可被通用或特殊電腦、或通用或特殊處理器讀取形式的程序代碼的媒介。此外,任何連接都可以被適當地定義為電腦可讀媒介,例如,如果軟體是從一個網站站點、伺服器或其它遠程資源通過一個同軸電纜、光纖電纜、雙絞線、數字用戶線(dsl)或以例如紅外、無線和微波等無線方式傳輸的也被包含在所定義的電腦可讀媒介中。所述的碟片(disk)和磁碟(disc)包括壓縮磁碟、鐳射盤、光碟、dvd、軟盤和藍光光碟,磁碟通常以磁性複製數據,而碟片通常以雷射進行光學複製數據。上述的組合也可以包含在電腦可讀媒介中。
[0151]
以上所述的具體實施方式,對本發明的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發明的具體實施方式而已,並不用於限定本發明的保護範圍,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀