1.本發(fā)明涉及一種智能運(yùn)維異常檢測系統(tǒng),具體地說是基于混合機(jī)器學(xué)習(xí)的運(yùn)維時(shí)序數(shù)據(jù)異常檢測方法及系統(tǒng),屬于智能運(yùn)維異常檢測領(lǐng)域。
背景技術(shù):2.當(dāng)今全球信息化飛速發(fā)展,網(wǎng)絡(luò)設(shè)備數(shù)量日益龐大,各個(gè)領(lǐng)域?yàn)榱吮U暇W(wǎng)絡(luò)服務(wù)的穩(wěn)定,需要專業(yè)人員來實(shí)時(shí)監(jiān)測運(yùn)維數(shù)據(jù)進(jìn)行系統(tǒng)的運(yùn)行維護(hù)。運(yùn)維系統(tǒng)中最常見的數(shù)據(jù)是關(guān)鍵性能指標(biāo)(key performance indicator,kpi)數(shù)據(jù),如網(wǎng)頁響應(yīng)時(shí)間、網(wǎng)頁訪問量、內(nèi)存使用率等。kpi數(shù)據(jù)需要專業(yè)人員標(biāo)注相關(guān)閾值,進(jìn)行實(shí)時(shí)監(jiān)測。kpi一旦發(fā)生異常,往往意味著與這個(gè)kpi相關(guān)的應(yīng)用出現(xiàn)了問題。隨著系統(tǒng)規(guī)模不斷變大、復(fù)雜性提高,監(jiān)控?cái)?shù)據(jù)量越來越大,靠人工從數(shù)據(jù)中發(fā)現(xiàn)異常不太現(xiàn)實(shí),智能化運(yùn)維數(shù)據(jù)異常檢測愈發(fā)重要。
3.現(xiàn)有的運(yùn)維時(shí)序數(shù)據(jù)異常檢測方法包括基于固定配置的檢測、基于統(tǒng)計(jì)的檢測和基于機(jī)器學(xué)習(xí)的檢測三大類?;诠潭ㄅ渲玫臋z測方法是目前工業(yè)界最普遍的運(yùn)維方式,這種方法明確、容易理解。常見的配置方式有閾值劃定法、環(huán)比方法、同比方法等。基于固定配置的異常檢測方式需要運(yùn)維人員依據(jù)經(jīng)驗(yàn)分別對(duì)每項(xiàng)運(yùn)維指標(biāo)進(jìn)行配置和設(shè)定,并選用合適的配置方式,容易造成時(shí)間和資源的極大浪費(fèi),而且指標(biāo)數(shù)據(jù)處于持續(xù)的變化中,需要進(jìn)行反復(fù)配置,單一的基于固定配置的方法已經(jīng)不能滿足智能運(yùn)維異常檢測的需要。
4.基于統(tǒng)計(jì)的檢測方法是通過對(duì)收集的監(jiān)測數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,假設(shè)數(shù)據(jù)遵循某種分布規(guī)律,再根據(jù)數(shù)據(jù)的分布規(guī)律選定合適的概率模型,根據(jù)分布的不一致性做異常檢測。常用的基于統(tǒng)計(jì)的檢測方法有holt-winters模型、arima模型、pca模型等?;诮y(tǒng)計(jì)的異常檢測方式需要觀察數(shù)據(jù)分布得出其所遵循的規(guī)律,找到合適的檢測模型,需要耗費(fèi)大量時(shí)間找到不同指標(biāo)適合的模型,因此單一的基于統(tǒng)計(jì)的方法不能滿足智能運(yùn)維異常檢測的需要。
5.基于機(jī)器學(xué)習(xí)的檢測方法將運(yùn)維時(shí)序數(shù)據(jù)異常檢測問題看做是一個(gè)二分類問題,通過對(duì)歷史數(shù)據(jù)進(jìn)行學(xué)習(xí)和建模來進(jìn)行異常檢測?;跈C(jī)器學(xué)習(xí)的檢測方法包括監(jiān)督學(xué)習(xí)檢測方法和無監(jiān)督學(xué)習(xí)檢測方法。監(jiān)督學(xué)習(xí)檢測方法需要結(jié)合有標(biāo)簽的數(shù)據(jù)來建立模型,在實(shí)際運(yùn)維場景中,標(biāo)簽數(shù)據(jù)極少,需要運(yùn)維人員手動(dòng)標(biāo)注來獲取,同時(shí)監(jiān)督學(xué)習(xí)方法訓(xùn)練時(shí)間長,檢測效率低;無監(jiān)督學(xué)習(xí)檢測方法無需標(biāo)記數(shù)據(jù),通過對(duì)監(jiān)測原始數(shù)據(jù)建模,生成數(shù)據(jù)點(diǎn)的異常分?jǐn)?shù),完成異常檢測,但是無監(jiān)督學(xué)習(xí)方法準(zhǔn)確度不高,容易產(chǎn)生大量的誤報(bào)漏報(bào)。
技術(shù)實(shí)現(xiàn)要素:6.本發(fā)明的目的在于,設(shè)計(jì)了基于混合機(jī)器學(xué)習(xí)的運(yùn)維時(shí)序數(shù)據(jù)異常檢測方法及系統(tǒng),依靠歷史數(shù)據(jù),結(jié)合離線預(yù)測、離線訓(xùn)練和在線檢測三大部分,構(gòu)建無監(jiān)督模型,能夠在保證準(zhǔn)確性和時(shí)效性的前提下完成智能運(yùn)維時(shí)序數(shù)據(jù)的異常檢測,解決了當(dāng)前運(yùn)維場景下時(shí)序數(shù)據(jù)異常檢測缺少標(biāo)記數(shù)據(jù)、效率低下、需要依據(jù)經(jīng)驗(yàn)劃定閾值、存在大量誤報(bào)漏報(bào)的
問題。
7.本發(fā)明的技術(shù)方案為:一種基于混合機(jī)器學(xué)習(xí)的運(yùn)維時(shí)序數(shù)據(jù)異常檢測方法,所述方法包括如下步驟:步驟一、提取數(shù)據(jù),將數(shù)據(jù)庫中的運(yùn)維數(shù)據(jù)按分鐘級(jí)取數(shù),并返回所需的數(shù)據(jù)格式。由于運(yùn)維數(shù)據(jù)是周期型時(shí)間序列數(shù)據(jù),提取當(dāng)前時(shí)刻數(shù)據(jù)作為運(yùn)維時(shí)序數(shù)據(jù),提取當(dāng)前時(shí)刻前30天內(nèi)所有數(shù)據(jù)作為運(yùn)維歷史數(shù)據(jù),所述數(shù)據(jù)格式至少包含運(yùn)維監(jiān)控指標(biāo)名稱、時(shí)間戳、運(yùn)維監(jiān)控指標(biāo)數(shù)值。
8.步驟二、數(shù)據(jù)預(yù)處理,對(duì)步驟一所述的運(yùn)維歷史數(shù)據(jù)和運(yùn)維時(shí)序數(shù)據(jù)進(jìn)行預(yù)處理操作,均衡正負(fù)樣本、填充缺失值,歸一化時(shí)間戳,完成數(shù)據(jù)分割,得到干凈的歷史數(shù)據(jù)和干凈的時(shí)序數(shù)據(jù)。
9.步驟三、離線預(yù)測,利用基于機(jī)器學(xué)習(xí)的時(shí)序數(shù)據(jù)預(yù)測算法隨機(jī)森林算法對(duì)步驟二所述干凈的歷史數(shù)據(jù)進(jìn)行短期擬合,利用預(yù)測值與真實(shí)值的差值構(gòu)建差值序列作為3-sigma判定的原始序列,采用間接檢測思路,擬合得到當(dāng)前時(shí)刻的預(yù)測值,將預(yù)測值與該時(shí)刻真實(shí)數(shù)值對(duì)比,一旦超過3-sigma的偏差就判定為“異?!薄?br/>10.步驟301、將步驟二所述干凈的歷史數(shù)據(jù)分為前29天的數(shù)據(jù)和最后1天的數(shù)據(jù),利用基于機(jī)器學(xué)習(xí)的時(shí)序數(shù)據(jù)預(yù)測算法對(duì)前29天的數(shù)據(jù)進(jìn)行短期擬合,得到擬合模型。所述時(shí)序數(shù)據(jù)預(yù)測算法為隨機(jī)森林算法,隨機(jī)森林是基于機(jī)器學(xué)習(xí)的分類方法,利用前29天的數(shù)據(jù)構(gòu)建若干棵決策樹,對(duì)每棵決策樹輸出結(jié)果進(jìn)行統(tǒng)計(jì),采用投票方法決定當(dāng)前點(diǎn)的異常判定;步驟302、利用步驟301所述擬合模型對(duì)最后1天的數(shù)據(jù)進(jìn)行擬合預(yù)測,得到最后1天數(shù)據(jù)的預(yù)測值,計(jì)算最后1天數(shù)據(jù)的預(yù)測值與真實(shí)值的差值序列;步驟303、利用步驟301所述擬合模型預(yù)測得到當(dāng)前時(shí)刻運(yùn)維監(jiān)控時(shí)序數(shù)據(jù)的預(yù)測值,計(jì)算預(yù)測值與該時(shí)刻運(yùn)維監(jiān)控指標(biāo)數(shù)值的當(dāng)前差值,利用步驟302所述差值序列對(duì)當(dāng)前差值進(jìn)行3-sigma判定,若當(dāng)前差值超過3-sigma范圍,即輸出判斷結(jié)果為“異常”;若未超過,則輸出判斷結(jié)果為“正常”;所述3-sigma在假設(shè)原始數(shù)據(jù)為正態(tài)分布序列的前提下,計(jì)算差值序列的均值與標(biāo)準(zhǔn)差,數(shù)據(jù)有99.74%的概率落在均值上下3個(gè)標(biāo)準(zhǔn)差的范圍內(nèi),如果數(shù)據(jù)超過了這個(gè)范圍,即判定為“異?!睌?shù)據(jù)。
11.步驟四、離線訓(xùn)練,利用步驟二所述干凈的歷史數(shù)據(jù),對(duì)訓(xùn)練所需時(shí)間長的機(jī)器學(xué)習(xí)模型進(jìn)行定期提前訓(xùn)練,存儲(chǔ)訓(xùn)練好的模型,以備在線檢測調(diào)用。
12.步驟五、在線檢測,對(duì)步驟二所述干凈的時(shí)序數(shù)據(jù)進(jìn)行異常檢測,從三個(gè)角度提取數(shù)據(jù)特征,利用基于混合機(jī)器學(xué)習(xí)的“點(diǎn)線面”時(shí)序數(shù)據(jù)異常檢測算法過濾篩選異常數(shù)據(jù),采用硬投票方式得到判斷結(jié)果;步驟501、對(duì)步驟二所述干凈的時(shí)序數(shù)據(jù)進(jìn)行異常檢測,從三個(gè)角度提取數(shù)據(jù)信息,利用包含多種機(jī)器學(xué)習(xí)方法的“點(diǎn)線面”時(shí)序數(shù)據(jù)異常檢測算法過濾篩選異常數(shù)據(jù),所述“點(diǎn)線面”時(shí)序數(shù)據(jù)異常檢測算法包括“點(diǎn)”方法、“線”方法、“面”方法,其特征在于包含如下三種具體方法:“點(diǎn)”方法:孤立森林方法,孤立森林是基于機(jī)器學(xué)習(xí)的異常檢測方法,通過隨機(jī)構(gòu)建一棵棵決策樹,利用樣本落在所有樹的深度的平均值來構(gòu)建統(tǒng)計(jì)量,進(jìn)行異常判斷;“線”方法:同比振幅方法,同比振幅是基于統(tǒng)計(jì)的異常檢測方法,通過對(duì)比當(dāng)前點(diǎn)
的振幅值與過去一段時(shí)間的同比振幅最大值,來進(jìn)行異常判斷;“面”方法:sr-cnn方法,sr-cnn是基于機(jī)器學(xué)習(xí)的異常檢測方法,將時(shí)序數(shù)據(jù)異常檢測轉(zhuǎn)化為圖像顯著性檢測,利用圖像整體信息進(jìn)行異常判斷;步驟502、對(duì)步驟501中所述三個(gè)檢測結(jié)果,采用硬投票方法輸出判斷結(jié)果,所述硬投票方法為“少數(shù)服從多數(shù)”原則,若有兩個(gè)及以上結(jié)果為“異常”,則輸出判斷結(jié)果為“異?!?;反之,則輸出為“正?!薄?br/>13.步驟六、輸出判斷結(jié)果,結(jié)合離線預(yù)測、離線訓(xùn)練和在線檢測三個(gè)模塊的檢測結(jié)果,若步驟三和步驟五中所述判斷結(jié)果均為“異?!?,則輸出最終判斷結(jié)果為“異?!保环駝t,輸出最終判斷結(jié)果為“正常”。
14.一種基于混合機(jī)器學(xué)習(xí)的運(yùn)維時(shí)序數(shù)據(jù)異常檢測系統(tǒng),所述系統(tǒng)包括數(shù)據(jù)提取模塊、數(shù)據(jù)預(yù)處理模塊、離線預(yù)測模塊、離線訓(xùn)練模塊、在線檢測模塊、判斷模塊、模型評(píng)價(jià)模塊;其中,所述數(shù)據(jù)提取模塊與所述數(shù)據(jù)庫連接,用于從數(shù)據(jù)庫中提取運(yùn)維監(jiān)控時(shí)間序列數(shù)據(jù),返回需所需的數(shù)據(jù)格式;所述數(shù)據(jù)預(yù)處理模塊與所述數(shù)據(jù)提取模塊連接,用于對(duì)提取的數(shù)據(jù)進(jìn)行預(yù)處理操作,均衡數(shù)據(jù)的正負(fù)樣本,填充缺失值,歸一化數(shù)據(jù)時(shí)間戳,完成數(shù)據(jù)分割,輸出干凈的歷史數(shù)據(jù)和干凈的時(shí)序數(shù)據(jù);所述離線預(yù)測模塊與所述數(shù)據(jù)預(yù)處理模塊連接,用于對(duì)干凈的歷史數(shù)據(jù)進(jìn)行短期擬合和預(yù)測操作,采用間接檢測思路,將預(yù)測值與該時(shí)刻真實(shí)數(shù)值對(duì)比,得到判斷結(jié)果;所述離線訓(xùn)練模塊與所述數(shù)據(jù)預(yù)處理模塊連接,利用干凈的歷史數(shù)據(jù),對(duì)訓(xùn)練所需時(shí)間長的機(jī)器學(xué)習(xí)模型進(jìn)行定期提前訓(xùn)練,存儲(chǔ)訓(xùn)練好的模型,以備在線檢測調(diào)用;所述在線檢測模塊與所述數(shù)據(jù)預(yù)處理模塊連接,用于對(duì)干凈的時(shí)序數(shù)據(jù)進(jìn)行異常檢測,利用包含多種機(jī)器學(xué)習(xí)方法的“點(diǎn)線面”時(shí)序數(shù)據(jù)異常檢測算法過濾篩選異常數(shù)據(jù),采用硬投票方式得到判斷結(jié)果;所述判斷模塊與所述離線預(yù)測模塊和所述在線檢測模塊連接,用于綜合兩個(gè)模塊的判斷結(jié)果,當(dāng)兩個(gè)模塊判斷結(jié)果均為“異?!保瑒t輸出最終判斷結(jié)果為“異?!保环駝t,輸出最終判斷結(jié)果為“正?!薄?br/>15.所述模型評(píng)價(jià)模塊與所述判斷模塊連接,用于對(duì)模型的異常檢測結(jié)果進(jìn)行評(píng)價(jià),在時(shí)效窗口評(píng)價(jià)體系下,采用查準(zhǔn)率和查全率來評(píng)價(jià)模型結(jié)果,所述時(shí)效窗口評(píng)價(jià)體系為在實(shí)際工業(yè)生產(chǎn)中,只需要在時(shí)效窗口內(nèi)檢測出異常,就代表檢測成功。
16.本發(fā)明的有益效果為:結(jié)合離線預(yù)測、離線訓(xùn)練、在線檢測三個(gè)模塊,利用離線訓(xùn)練模塊對(duì)訓(xùn)練所需時(shí)間長的模型進(jìn)行定期提前訓(xùn)練,并存儲(chǔ)訓(xùn)練好的模型,以備實(shí)時(shí)檢測調(diào)用,保證了檢測的時(shí)效性;利用離線預(yù)測和在線檢測做兩層篩選,只有當(dāng)這兩次檢測的結(jié)果都異常,才判定當(dāng)前點(diǎn)為異常點(diǎn),提升了檢測準(zhǔn)確率,減少了誤報(bào)和漏報(bào)。另外,本發(fā)明提出了“點(diǎn)線面”時(shí)序數(shù)據(jù)異常檢測算法,結(jié)合運(yùn)維數(shù)據(jù)三個(gè)方面的特征完成異常檢測,提升了檢測的準(zhǔn)確度。
17.下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明。
附圖說明
18.圖1為本發(fā)明實(shí)施例一種基于混合機(jī)器學(xué)習(xí)的運(yùn)維時(shí)序數(shù)據(jù)異常檢測方法及系統(tǒng)的整體結(jié)構(gòu)圖;圖2為本發(fā)明實(shí)施例離線預(yù)測模塊流程圖;圖3為本發(fā)明實(shí)施例離線訓(xùn)練模塊流程圖;圖4為本發(fā)明實(shí)施例在線檢測模塊流程圖。
具體實(shí)施方式
19.以下對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行說明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實(shí)施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
20.實(shí)施例1如圖1-4所示,一種基于混合機(jī)器學(xué)習(xí)的運(yùn)維時(shí)序數(shù)據(jù)異常檢測方法,包括以下步驟:步驟一、提取數(shù)據(jù),如表1所示,將數(shù)據(jù)庫中的數(shù)據(jù)按分鐘級(jí)取數(shù),返回所需數(shù)據(jù)格式,所述所需數(shù)據(jù)格式至少包含運(yùn)維監(jiān)控指標(biāo)名稱(kpi id)、時(shí)間戳(timestamp)、運(yùn)維監(jiān)控指標(biāo)數(shù)值(value),其中value就是本發(fā)明實(shí)例中關(guān)心的單指標(biāo)序列。為了檢測最終判斷結(jié)果,本發(fā)明實(shí)例增加當(dāng)前時(shí)刻標(biāo)簽(label),為方便后續(xù)計(jì)算檢測結(jié)果的查全率(recall)和查準(zhǔn)率(precision)。將提取的數(shù)據(jù)按照8:2劃分訓(xùn)練集和測試集,其中訓(xùn)練集用作歷史數(shù)據(jù),是模型訓(xùn)練的樣本;測試集用作時(shí)序數(shù)據(jù),進(jìn)行整體模型構(gòu)建準(zhǔn)確性和時(shí)效性的測試。這一步驟的python實(shí)現(xiàn)方法封裝在1-getdata.py文件中。
21.表1 數(shù)據(jù)結(jié)構(gòu)表步驟二、數(shù)據(jù)預(yù)處理,首先對(duì)步驟一中劃分的訓(xùn)練數(shù)據(jù)進(jìn)行預(yù)處理,將將訓(xùn)練數(shù)據(jù)按照kpi id聚類,本發(fā)明實(shí)例中共有28個(gè)聚類簇,使用csv文件將聚類簇分開存儲(chǔ);將每個(gè)聚類簇的timestamp值歸一化,更改為“年-月-日-時(shí)-分-秒”格式;對(duì)每個(gè)聚類簇進(jìn)行缺失值檢測,按照線性插值法填充缺失值,得到干凈數(shù)據(jù)。這一部分的python實(shí)現(xiàn)方法封裝在3-gettime.py文件中。對(duì)干凈數(shù)據(jù)做均衡處理,由于異常數(shù)據(jù)非常少,原始數(shù)據(jù)存在極大類不平衡,需要利用borderline-smote方法均衡數(shù)據(jù)集,獲得正負(fù)樣本比例達(dá)到均衡的可用的訓(xùn)練數(shù)據(jù)。這一部分的python實(shí)現(xiàn)方法封裝在2-datasplit.py文件中。
22.接著對(duì)步驟一中劃分的時(shí)序數(shù)據(jù)進(jìn)行預(yù)處理,按照kpi id尋找每個(gè)時(shí)序數(shù)據(jù)對(duì)應(yīng)的聚類簇,將時(shí)序數(shù)據(jù)的時(shí)間戳格式更改為“年-月-日-時(shí)-分-秒”格式,得到可用的時(shí)序數(shù)據(jù);這一部分的python實(shí)現(xiàn)方法封裝在3-gettime.py文件中。
23.步驟三、離線預(yù)測,本步驟遵循的流程結(jié)構(gòu)如圖2所示。將步驟二所述可用的訓(xùn)練
數(shù)據(jù)分為前29天的數(shù)據(jù)和最后1天的數(shù)據(jù),利用基于機(jī)器學(xué)習(xí)的時(shí)序數(shù)據(jù)預(yù)測算法對(duì)前29天的數(shù)據(jù)進(jìn)行短期擬合,得到擬合模型。所述時(shí)序數(shù)據(jù)預(yù)測算法為隨機(jī)森林算法,隨機(jī)森林是基于機(jī)器學(xué)習(xí)的分類方法,利用前29天的數(shù)據(jù)構(gòu)建若干棵決策樹,對(duì)每棵決策樹輸出結(jié)果進(jìn)行統(tǒng)計(jì),采用投票方法決定當(dāng)前點(diǎn)的異常判定。這一部分的python實(shí)現(xiàn)方法封裝在rfr.py文件中。
24.接著利用擬合模型對(duì)最后1天的數(shù)據(jù)進(jìn)行擬合預(yù)測,得到最后1天數(shù)據(jù)的預(yù)測值,計(jì)算最后1天數(shù)據(jù)的預(yù)測值與真實(shí)值的差值序列;利用擬合模型預(yù)測得到當(dāng)前時(shí)刻運(yùn)維監(jiān)控時(shí)序數(shù)據(jù)的預(yù)測值,計(jì)算預(yù)測值與該時(shí)刻運(yùn)維監(jiān)控指標(biāo)數(shù)值的當(dāng)前差值,利用差值序列對(duì)當(dāng)前差值進(jìn)行3-sigma判定,若當(dāng)前差值超過3-sigma范圍,即輸出判斷結(jié)果為“異?!?;若未超過,則輸出判斷結(jié)果為“正?!?;所述3-sigma在假設(shè)原始數(shù)據(jù)為正態(tài)分布序列的前提下,計(jì)算差值序列的均值與標(biāo)準(zhǔn)差,數(shù)據(jù)有99.74%的概率落在均值上下3個(gè)標(biāo)準(zhǔn)差的范圍內(nèi),如果數(shù)據(jù)超過了這個(gè)范圍,即判定為“異常”數(shù)據(jù)。這一部分的python實(shí)現(xiàn)方法封裝在rfr.py文件中。
25.步驟四、離線訓(xùn)練,本步驟遵循的流程結(jié)構(gòu)如圖3所示。利用步驟二中所述可用的訓(xùn)練數(shù)據(jù)訓(xùn)練深度學(xué)習(xí)模型,所述深度學(xué)習(xí)模型為sr-cnn模型,將時(shí)序數(shù)據(jù)異常檢測轉(zhuǎn)化為圖像顯著性檢測,利用圖像整體信息進(jìn)行異常判斷,將每個(gè)聚類簇訓(xùn)練好的模型存儲(chǔ)為pkl文件,分別存放進(jìn)數(shù)據(jù)庫里。這一部分的python實(shí)現(xiàn)方法封裝在srcnn.py文件中。
26.步驟五、在線檢測,本步驟遵循的流程結(jié)構(gòu)如圖4所示。對(duì)步驟二中所述可用的時(shí)序數(shù)據(jù)進(jìn)行“點(diǎn)線面”時(shí)序數(shù)據(jù)異常檢測算法處理,分別得到三個(gè)檢測結(jié)果,所述“點(diǎn)線面”時(shí)序數(shù)據(jù)異常檢測算法包括“點(diǎn)”方法、“線”方法、“面”方法,其特征在于包含如下三種具體方法:“點(diǎn)”方法:孤立森林方法,孤立森林是基于機(jī)器學(xué)習(xí)的異常檢測方法,通過隨機(jī)構(gòu)建一棵棵決策樹,利用樣本落在所有樹的深度的平均值來構(gòu)建統(tǒng)計(jì)量,進(jìn)行異常判斷;“線”方法:同比振幅方法,同比振幅是基于統(tǒng)計(jì)的異常檢測方法,通過對(duì)比當(dāng)前點(diǎn)的振幅值與過去一段時(shí)間的同比振幅最大值,來進(jìn)行異常判斷;“面”方法:sr-cnn方法,sr-cnn是基于深度學(xué)習(xí)的異常檢測方法,將時(shí)序數(shù)據(jù)異常檢測轉(zhuǎn)化為圖像顯著性檢測,利用圖像整體信息進(jìn)行異常判斷。這一部分的python實(shí)現(xiàn)方法分別封裝在iforest.py、statistics.py、srcnn.py文件中。
27.接著對(duì)三個(gè)檢測結(jié)果采用硬投票方法輸出判斷結(jié)果。所述硬投票方法為“少數(shù)服從多數(shù)”原則,若有兩個(gè)及以上結(jié)果為“異常”,則輸出判斷結(jié)果為“異常”;反之,則輸出為“正常”。這一部分的python實(shí)現(xiàn)方法封裝在vote.py文件中。
28.步驟六、輸出判斷結(jié)果,若步驟三和步驟五中所述判斷結(jié)果均為“異?!?,則輸出最終判斷結(jié)果為“異?!?;否則,輸出最終判斷結(jié)果為“正?!?。
29.異常檢測本質(zhì)是二分類問題,因此異常檢測結(jié)果可由查準(zhǔn)率(precision)和查全率(recall)來判定,這一部分的python實(shí)現(xiàn)方法封裝在evalue.py文件中。precision和recall有如下算法公式:
查準(zhǔn)率與漏報(bào)的負(fù)樣本數(shù)量相關(guān),查全率與誤報(bào)的正樣本數(shù)量相關(guān),這兩個(gè)指標(biāo)越高,代表模型的檢測效果越好。同時(shí)在實(shí)際工業(yè)生產(chǎn)中,公司傾向于增強(qiáng)發(fā)現(xiàn)異常的能力,即減少漏報(bào)的數(shù)量,因此查準(zhǔn)率的評(píng)價(jià)結(jié)果更為重要。
30.現(xiàn)實(shí)中異??偸窃殉霈F(xiàn),在實(shí)際工業(yè)生產(chǎn)中,只需要在時(shí)效窗口內(nèi)檢測出異常,就代表檢測成功。時(shí)效窗口=某異常段首次檢出時(shí)間-某異常段首次發(fā)生時(shí)間。在本發(fā)明實(shí)例中,設(shè)置時(shí)效窗口大小為10分鐘。在時(shí)效窗口評(píng)價(jià)體系下,本發(fā)明和目前常用的各機(jī)器學(xué)習(xí)基線方法的查準(zhǔn)率、查全率如表2所示。三種基線方法孤立森林、同比振幅、sr-cnn中檢測效果最好的是sr-cnn方法,查準(zhǔn)率和查全率分別為0.80、0.90。本發(fā)明的檢測效果進(jìn)一步提升,相對(duì)于sr-cnn方法,查準(zhǔn)率提升了12.5%,查全率提升了1%。
31.將本發(fā)明的檢測結(jié)果與真實(shí)標(biāo)簽對(duì)比,可發(fā)現(xiàn)在48個(gè)負(fù)樣本中有8個(gè)負(fù)樣本未成功檢出,均為同一個(gè)kpi id的連續(xù)異常,即有一次漏報(bào)。在2272個(gè)正樣本中有10個(gè)正樣本被檢測錯(cuò)誤,為三個(gè)kpi id的連續(xù)數(shù)據(jù)檢測錯(cuò)誤,即有三次誤報(bào)。整體上看,相對(duì)于目前實(shí)際生產(chǎn)中存在的大量誤報(bào)漏報(bào)的運(yùn)維情況,模型效果非常好,有很好的應(yīng)用價(jià)值。
32.表2 各模型效果對(duì)比評(píng)價(jià)指標(biāo)孤立森林同比振幅sr-cnn本發(fā)明查準(zhǔn)率precision0.670.730.800.90查全率recall0.900.800.900.91