TWI725543B - 預測造成系統異常之稀有事件的方法 - Google Patents
預測造成系統異常之稀有事件的方法 Download PDFInfo
- Publication number
- TWI725543B TWI725543B TW108132773A TW108132773A TWI725543B TW I725543 B TWI725543 B TW I725543B TW 108132773 A TW108132773 A TW 108132773A TW 108132773 A TW108132773 A TW 108132773A TW I725543 B TWI725543 B TW I725543B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- monitoring data
- original monitoring
- parameter
- original
- Prior art date
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Testing And Monitoring For Control Systems (AREA)
Abstract
本發明為一種預測造成系統異常之稀有事件的方法,係結合機器學習與從系統中收集的各種數據,預測未來是否即將發生系統異常,其中,本發明提出資料前處理、資料特徵選擇與處理技術,使得原始監控資料有更好的表示方法,在無須改動現有的系統下,資料的處理技術能進一步提升預測模型的準確度與降低訓練模型的時間,另外,透過融合機器學習技術與整套的模型訓練機制,可以大量減少人為的參與,整個機制可自動化完成,藉此找出最有可能造成系統異常的原因,以快速且有效地達到提前預防異常發生的目標。
Description
本發明係關於預測系統異常之技術,詳而言之,係關於一種預測造成系統異常之稀有事件的方法。
對於一般營運系統來說,出現系統異常的機率非常低,但是一旦出現系統異常,通常要持續很久才能夠排除,簡單來說,透過觀察長期蒐集的系統監控資料以及分析系統異常特性,將發現此類異常會持續很久但幾乎沒發生過,換言之,此類預測之困難點在於資料的極不平衡(highly-imbalanced),也就是系統異常的量極為稀少,相對於沒有異常的情況,對於系統管理者而言,從極少量資料預測出系統異常是困難的,除了須資料蒐集與整併、擷取資料特徵以及數據預測,將成為系統管理者重要課題。
綜上,若能找出一種快速且有效地預測系統異常之技術,特別是針對極稀有系統異常之預測,在不變動現有系統以及減少人為參與下,能讓整個預測機制完全自動化完成,此將成為本技術領域人員急欲追求解決方案之目標。
本發明之目的係提出一種預測系統異常之方法,主要技術包含三個面向,分別為資料前處理、資料特徵選擇與處理以及機器學習,透過對系統監控資料進行整合、數值化和正規化以生成可供系統異常預測之模型,藉以成功預測出系統異常。
為達到上述目的與其他目的,本發明係提出一種預測造成系統異常之稀有事件的方法,係包括:自各伺服器蒐集原始監控資料,再以時間為主鍵進行該原始監控資料之整合,以將該原始監控資料整合成一筆資料;填補該原始監控資料中之缺漏部分;將該原始監控資料中之文字部分進行數值化,以令該原始監控資料皆成為數值資料;將該原始監控資料中所有數值進行正規化;以該原始監控資料中之一段時間內的連續資料為基礎,將該原始監控資料分群並離散化,以統計該段時間內之連續資料數量總數,俾做為表示該原始監控資料之參數,再對表示該原始監控資料之參數進行訓練,以建立異常分類預測模型;以及利用該異常分類預測模型之模型特性取得造成異常發生的至少一個參數,以由該至少一個參數以及關聯性高的參數預測出系統異常之可能發生原因。
於前述方法中,該填補該原始監控資料中之缺漏部分之步驟係包括以特定數值填補該缺漏部分,以及對於連續的數值填補上平均值或特定數值,且該將該原始監控資料中之文字部分進行數值化之步驟係將原本以該特定數值填補該缺漏部分者採用編號取代。
於前述方法中,該將該原始監控資料中之文字部分進行數值化之步驟係將不同種類之文字資料內容以從0開始之數值序列循序編排。
於前述方法中,該將該原始監控資料分群之步驟係採用k-means分群演算法以將該原始監控資料進行分群。
於前述方法中,該對表示該原始監控資料之參數進行訓練之步驟係包括使用隨機森林演算法將該隨機森林演算法之超參數設定出一個範圍,再利用網格搜尋方式,於該範圍內以一定間隔進行參數搜尋。
於前述方法中,該訓練表示該原始監控資料之參數,以建立該異常分類預測模型之步驟復包括使用欠抽樣(under-sampling)方式以減低該原始監控資料之數量。
於前述方法中,該對表示該原始監控資料之參數進行訓練之步驟係包括使用隨機森林演算法以對於連續異常的資料僅判定第一個時間點為異常,其餘時間點視為正常。
於前述方法中,該利用該異常分類預測模型之模型特性取得造成異常發生的至少一個參數之步驟係指利用信息增益(Information Gain)演算法進行特徵選取,以將對系統異常影響較大者之參數作為該至少一個參數。
於前述方法中,該利用該異常分類預測模型之模型特性取得造成異常發生的至少一個參數之步驟復包括利用線性門閥單元控制前一個預測資料對結果的影響程度,並使用殘差網路將該結果反饋至當前要預測的結果。
綜上可知,本發明將從系統中收集的各種數據與機器學習結合,預測未來是否即將發生系統異常,藉由本發明所述之資料前處理以及資料特徵選擇與處理,讓原始資料有更好的表示方法,且對系統環境沒有
特別要求,亦不須要改動現有的系統,資料的處理技術能夠進一步的提升異常分類預測模型的準確度與降低訓練模型的時間,且透過融合機器學習技術與整套的模型訓練機制,可以大量減少人為的參與,整個機制可完全自動化完成,找出最有可能造成系統異常的原因,以達到提前預防異常發生的目標,因此,本發明所述的預測造成系統異常之稀有事件的方法能改善現有機制,特別是在系統異常極為稀少的情況下,仍能快速且有效地成功預測出大部分的錯誤。
S11~S17‧‧‧步驟
S30~S39‧‧‧流程
第1圖為本發明之預測造成系統異常之稀有事件的方法的步驟圖。
第2圖說明本發明資料前處理考量分類問題的示意圖。
第3圖為本發明預測造成系統異常之稀有事件的流程圖。
第4圖說明本發明判斷是否需要更新模型的示意圖。
第5圖說明本發明之資料選擇與整併的示意圖。
第6圖說明本發明之遺失資料處理的示意圖。
第7圖說明本發明一實施例中系統正常與即將異常之CPU使用率的示意圖。
第8圖說明本發明之連續資料離散化的示意圖。
第9A和9B圖說明本發明之預測目標項目資料處理的示意圖。
第10圖說明本發明之使用線性門閥單元建立殘差網路的示
意圖。
以下藉由特定的具體實施形態說明本發明之技術內容,熟悉此技藝之人士可由本說明書所揭示之內容輕易地瞭解本發明之優點與功效。然本發明亦可藉由其他不同的具體實施形態加以施行或應用。
第1圖為本發明之預測造成系統異常之稀有事件的方法的步驟圖。於步驟S11中,自各伺服器蒐集原始監控資料,再以時間為主鍵進行該原始監控資料之整合,以將該原始監控資料整合成一筆資料。於此步驟中,可設定一個資料時效,以使預測模型只使用此時效內的資料進行模型訓練,舉例來說,以狀態表紀錄一小時內的預測結果並訂定重新訓練模型的門檻值,快速判斷現在的預測模型是否仍能正確預測,因而將所有資料中的時間戳章對齊,接著,將來自各個監控單元從各伺服器所收集到之原始監控資料以時間戳章為結合參照鍵值,以將該原始監控資料整合成同一筆資料。
於步驟S12中,填補該原始監控資料中之缺漏部分。詳言之,該原始監控資料中有時會因為不可預期的原因,出現缺漏資料,因而此步驟係對該原始監控資料中之缺漏部分進行填補。
於一實施例中,填補該原始監控資料中之缺漏部分係包括以特定數值(如-1)填補該缺漏部分,以及對於連續的數值填補上平均值或特定數值(如-1)。簡言之,針對缺漏部分可以用特定數值(如-1)進行填補,又或者對於連續的數值填補上平均值或特定數值(如-1),而不填入數值0的原
因主要是要與實際數值0有所區隔。
於步驟S13中,將該原始監控資料中之文字部分進行數值化,以令該原始監控資料皆成為數值資料。此步驟即是說明預測模型之建立須為數值資料,假設該原始監控資料本來就是數值,則無須處理,可直接使用,假若該原始監控資料為文字資料,則要以數值來表示,故要對該原始監控資料中之文字部分進行數值化。
於一實施例中,將該原始監控資料中之文字部分進行數值化係將不同種類之文字資料內容以從0開始之數值序列循序編排,易言之,將該原始監控資料依照不同種的文字資料內容數值化,亦即可將文字資料改以數字0、1、2、…的數值序列編排而成為離散的數值資料。
另外,假若在前述步驟S12中,用特定數值(如-1)對缺漏部分進行填補,則於本步驟中,將原本以特定數值(如-1)填補該缺漏部分者採用編號取代。
於步驟S14中,將該原始監控資料中所有數值進行正規化。具體來說,由於每一種監控項目都有不同的數值大小特性,如果這些資料不經處理而直接使用進行異常分類預測模型之訓練,則有數值較大特性的項目對異常分類預測模型的影響力會較大,但預期中各個項目的重要性應該都要是一樣的,因此會導致異常分類預測模型無法達到預期的效果,故本步驟即是要將所有數值正規化。
關於數值正規化,可例如將各資料減掉其平均後除以標準差,使得數值調整至0~1的區間,另外,針對以序列編號紀錄的離散資料,則可選擇以獨熱編碼(one-hot encoding),例如原始資料有三個數值0、1和2,
則會使用三維向量,即(1,0,0)、(0,1,0)、(0,0,1)來記錄。
於步驟S15中,以該原始監控資料中之一段時間內的連續資料為基礎,將該原始監控資料分群並離散化,以統計該段時間內之連續資料數量總數,俾做為表示該原始監控資料之參數。於此步驟中,係將該原始監控資料分群採用k-means分群演算法進行分群,包括統計分類後各項資料數量總數,並使用此總數作為該各項資料的表現方式。
於步驟S16中,再對表示該原始監控資料之參數進行訓練,以建立異常分類預測模型。於本步驟中,於異常分類預測模型建立時要先對訓練資料進行平衡處理,例如將數量較多的事件使用欠抽樣(under-sampling)方式以減低資料數量,進而建立出異常分類預測模型。
於一實施例中,可利用隨機森林演算法來對該原始監控資料之參數進行訓練,亦即於異常分類預測模型建立時,透過對該隨機森林演算法的超參數設定一個範圍並進行網格搜尋,將該範圍內以一定間隔來進行參數搜尋,接著可使用驗證資料篩選出比較好的模型,最後的預測會使用前述該些比較好的模型一起進行預測,並透過多數決之方式加上通過門檻得出最後的結果。
於步驟S17中,利用該異常分類預測模型之模型特性取得造成異常發生的重要的至少一個參數,以由該重要的至少一個參數以及關聯性高的參數預測出系統異常之可能發生原因。具體來說,可利用該異常分類預測模型之模型特性取得造成異常發生的重要的至少一個參數係指利用信息增益(Information Gain,InfoGain)演算法進行特徵選取,以將對系統異常影響較大者之參數作為該重要的至少一個參數,亦即使用InfoGain演算
法對訓練完的異常分類預測模型進行特徵判讀,藉此找出該異常分類預測模型中那些參數對於系統異常的成因影響較大。
於一實施例中,前述使用隨機森林演算法以對表示該原始監控資料之參數進行訓練,係包括對於連續異常的資料僅判定第一個時間點為異常,其餘時間點視為正常,也就是說,由於系統異常發生後再預測異常意義不大,又因為系統異常發生後通常會持續一段時間,故在進行測試時,本發明設計要預測的是連續異常的發生之前的時間點,因而對於連續異常,只判定第一個時間點是異常,其餘的時間點則視為正常。
另外,於步驟S17中,復包括利用線性門閥單元控制前一個預測資料對結果的影響程度,並使用殘差網路將該結果反饋至當前要預測的結果,簡言之,由於時間序列資料的前後資料有關連性,考慮當前時間點之前的結果有助於當前的預測,故本發明提出利用線性門閥單元控制前一個預測資料對結果的影響程度,並使用該殘差網路以使該結果反饋到當前要預測的結果。
另外,本發明之預測造成系統異常之稀有事件的方法復包括該異常分類預測模型的再訓練,具體來說,在監控資料持續蒐集一段時間後,由於環境與系統上部屬的程式可能已有許多變化,因而舊的異常分類預測模型可能已無法預測出新的環境的系統異常狀況,因而可回到步驟S11,重新再訓練新的預測模型。
具體來說,本發明所用技術可分為三種技術面向,包括資料前處理、資料特徵選擇與處理以及機器學習。首先,關於本發明極稀有系統異常之預測之困難處在於資料的極不平衡(highly-imbalanced),也就是系
統異常的量極為稀少,因而本發明的三種技術面向包括資料前處理、資料特徵選擇與處理以及機器學習,下面先說明三種技術面向所要考量技術問題以及所選擇處理方式進行說明。
第一面向為資料前處理,其對應本案第1圖中步驟S11-S14,第一面向須考慮有以下幾點:(1)要預測的問題是個分類問題,也就是說可以把很多種的系統異常視為同一種,最終目的是預測出系統異常,故可視為二元分類問題或是多元分類問題,經實驗顯示,視為多元分類問題能更有效的抓出各種錯誤;(2)類似上述觀念,異常偵測問題可視為監督式學習的分類問題或是非監督式學習,經實驗結果,監督式學習的方式會比非監督式學習效果好,因此能將此問題視為監督式的多元分類問題,例如第2圖所示;(3)因為系統異常時常是持續一段時間的,當要預測時,若已有系統異常發生了,那再預測的意義就不大了,故本發明僅預測連續系統異常的最開頭;(4)資料中常有一些遺失的部分,一般遺失的資料會用前一的時間點的資料填補或是前後時間點的資料做線性內差,惟上述兩種處理方法經實驗後都不合適,原因在於這些資料的遺失常是一些其他伺服器的當機所引起的,故本名會將這些空缺以一個新的狀態來填補。
由上可知,資料前處理技術主要目標是要處理原始監控資料,讓該原始監控資料與預測目標能夠有更好的表示方法,簡言之,與一般報表上呈現的資料不同,機器學習模型(例如本發明之異常分類預測模型)對於原始資料有不同的要求,最常見例如要將數值標準化,如此一來,來自不同監控項目的數據就不會因為數據本來的數值分布而對機器學習模型造成不同程度的影響,違反了每個項目都對預測目標一樣重要的假設。
第二面向為資料特徵選擇與處理,其對應本案第1圖中步驟S15,第二面向須考慮有以下幾點:(1)資料的特徵往往是很一般的數據,例如最多允許的連線數及使用中的連線,可將這些資料特徵合併成連線的使用率(即使用率=使用中的連線/最多允許的連線數);(2)對於一個資料特徵的數值而言,可將這些數值分群,藉以產生一個新的資料特徵,例如CPU使用率的等級能分為低、中、高三級,此程序即為離散化;(3)另外,更進一步須對離散化的資料做統計,例如在10個時間區段中CPU使用率等級是低、中、高,假設高的比率超過一定的門檻,即代表錯誤很有可能會發生;(4)另外,重要資料特徵的選擇亦是不可或缺的部分,首先須將類似的資料特徵合併,找出資料的真實維度,例如透過主成分分析(Principal Component Analysis,PCA)的統計分析、簡化數據集的方法,藉此進一步做資料特徵的選取。
由上可知,資料特徵選擇與處理技術主要目標是透過對原始監控資料的觀察以知悉該原始監控資料的分布與特性,俾設計其它種較簡化的描述方法,相較直接使用原始資料來訓練機器學習預測模型,本發明透過較簡化的描述方法可減低預測模型要學習的項目,因較重要的部分已經用簡化的描述方法強調,進而讓預測模型學習更多可能影響到預測標籤的原因,提升最後預測模型預測的準確性。另外,關於預測標籤的處理也是很重要的,在實施例中有時系統可能出現短暫的異常,原因可能來自於系統規則的重新設定、新版程式的上線或是機器的重新啟動等等不同原因,但這些狀況都不應該被歸類為系統異常,因而預測標籤可選擇採用發生連續異常事件的情形,才不會預測到應該是正常的系統情形,影響到預測模
型的準確度。
第三面向為機器學習,其對應本案第1圖中步驟S16-S17。在極為不平衡(highly-imbalanced)的資料中要抓出錯誤,通常只靠一個機器學習的模型是難以達成的,本發明選擇隨機森林(random forest)演算法,並且透過網格搜尋(grid search)的方式來刷參數,找出最好的參數,並利用時間序列交叉檢驗(time-series cross validation)的方式,在考慮時間先後順序的條件下,驗證模型的好壞。另外,由於前一次的預測與當前預測的關聯性很高,因此我們導入了殘差網路技術,並透過簡單線性門閥單元,將前一次的預測結果納入當前預測的分析做出預測,接著,再對模型的結果設門檻,把不適當的預測濾掉,以達到在可接受的誤報率下,可以偵測出大部分的錯誤,最後,利用模型的結果以及信息增益(Information Gain)演算法及基尼不纯度(Gini Impurity)等演算法得出最可能造成異常的原因(資料特徵),以供參考而預防系統異常的發生。
由上可知,機器學習技術主要目標是選擇出適合的演算法與適合的超參數。本發明係選擇隨機森林演算法,且對於隨機森林演算法的超參數選擇,本發明採用了網格搜尋的方式,不斷的透過驗證資料進行驗證,最後選出了較佳的超參數組合,接著,使用組合預測的方式同時對較佳的超參數組合之預測模型進行預測,利用多數決的方式加上通過門檻得出最後的結果。我們在上述模型的外層還加上了殘差網路,讓模型能夠將前一次的預測結果運用到此次的分析。再者,除了系統異常預測,本發明還使用信息增益(InfoGain)演算法對訓練完的預測模型進行特徵判讀,找出預測模型中哪些參數對於系統異常的成因影響較大。
另外,由於系統環境或是其上部屬的程式是會變動的,因此經過一段長時間後,舊的預測模型可能已經無法預測出新的環境的系統異常狀況,故於其他實施例中,可於一段時間,例如每半年,使用新蒐集到的監控資料,重新再訓練出新的預測模型。
綜上可知,資料前處理之技術面向包含資料選擇與整併、遺失資料處理、資料數值化處理以及資料正規化處理等程序,該資料特徵選擇與處理之技術面向包含連續資料離散化以及預測目標項目資料處理等程序,而機器學習之技術面向則包含使用演算法建立模型、異常項目之判定以及預測模型的再訓練等程序。
將前述各程序進行整合,可得到第3圖所述之流程圖,其中,資料前處理面向包括流程S30-S34,資料特徵選擇與處理面向包括流程S35-S36,機器學習面向包含流程S37-S39,更具體來說,整個流程圖包括流程S30為資料選擇與整併,流程S31為遺失資料處理,流程S32為資料數值化處理,流程S33為資料正規化處理,流程S34為連續資料離散化,流程S35為預測目標項目資料處理,流程S36為使用隨機森林演算法建立模型的方法,流程S37為使用線性門閥單元建立殘差網路,流程S38為異常項目的判定,流程S39為預測模型的再訓練。後續將搭配具體實施範例進一步說明。
本發明從系統收集資料來訓練機器學習的模型,惟太久以前的資料並不適合拿來訓練,因為系統問題會慢慢被修復,太久以前的錯誤很可能不再發生,所以資料有時效性,而訓練出來的模型也有時效性,所以要一直不停地以新的資料重新訓練。一般來說,在沒有大幅度系統改動
的情況下,收集的資料時效大約半年,假設有大幅度的系統改動,那很可能系統異常類型會完全不同,所以可能需要重新收集資料並訓練才可以維持準確度。
流程S30為資料選擇與整併。本發明設計一個簡單的判斷模型來判斷是否需要更新模型,如第4圖所示並參考下列表一,可使用一個小表紀錄一小時內的預測情形,每一個項目代表著時間分除以5的時間,例如18分的預測結果就屬於項目3。由於模型是要預測10分後的結果,因此10分後就可以解讀出此項目是否正確,正確就填入T,否則填F,而第一次填表時所有欄位都是空值ψ。
此範例中是在0~4分時啟動預測模型,因此是從欄位0開始填值,透過第4圖的簡單狀態轉換圖來描述填表的邏輯,每個欄位的狀態是獨立的,但S與V值是共用的。每次填完表後同時也會更新表中的總和(S)與非空值(V),當V=12時代表表格中已經不存在空值,此時我們就可以計算模型的準確度S/V,當準確度低於設定的門檻值時(例如本實施例為50%),就要考慮是否要重新訓練模型。由於此判斷是會一直被呼叫的,此種判斷方式將額外的系統負擔減到最小。
接下來設定一個資料時效,本實施例為半年,預測模型只使用此時效內的資料進行模型訓練,接著,將所有資料中的時間戳章對
齊,以5分為對齊單位,即向下對齊,例如0分0秒~4分59秒都會被歸類到0分0秒的時間戳章,最後,再將來自各個監控單元收集到的監控資料以時間戳章為結合參照鍵值,整合成同一筆資料,如第5圖所示,資料包含網頁伺服器(web server)、資料庫伺服器(database server)、系統底層的資料(其中,Ok表示沒問題,Failure表示失敗),以時間為主鍵,整合所有資料。
流程S31為遺失資料處理。資料中常有很多失蹤(missing)的資料,失蹤的資料有幾種處理方式,可以直接補數值0,如果是連續的數值(例如記憶體(Memory)使用率),也可以補平均值,又或是可以補一個完全沒出現過的值,例如數值-1,考量系統有時資料遺失是因為伺服器當機,此時應該補一個完全沒出現過的值來表示這種異常狀態,如第6圖所示。
具體來說,有時可能因為系統過於繁忙,使得系統無法回應探針程式的偵測,此時的資料遺失就比較適合使用內插補平均值的方式。,因此對於該補平均值還是補沒出現過的值,本發明使用抽樣方法補值,亦即分析1個月內的資料,計算出該補數值-1或平均值的數量分別為N與A,計算出應該補數值-1的比率為(N/N+A),而應該補平均值的比率則為(A/N+A),假定系統未來蒐集資料的缺漏資料也會符合這1個月中的缺漏資料的分布,故未來在資料碰到缺漏資料的時候,就會進行一次隨機過程判定,使用前面的比率做為機率,去決定該補數值-1或補平均值。
流程S32為資料數值化處理。資料中的特徵(feature)種類主要有兩種,一種是連續的數值,例如CPU使用率、Memory使用率等,另一種是離散的數值,例如伺服器的狀態(state)。如本案前述說明,要訓練模
型需要全部是數值,故將狀態轉成數字,例如OK轉成0、Failure轉成1;另外,本實施例中離散數值不取負數,因而原本是缺值補的數值-1會用最後的編號取代,在本例是2,如第7圖所示。
流程S33為資料正規化處理。由於原始資料中的數值常大小不一,對於支援向量機(support vector machine,SVM)或神經網路(Neural Network,NN)等使用權重(weight)類型的演算法,如果將數值做正規化之後,讓數值介於0和1之間(max-min normalization),或是減掉平均除以標準差(zero-mean normalization),可以讓模型更容易訓練起來。上述的標準正規化流程處理資料方法,使得各個特徵項目重要性相同,最終由模型決定特徵項目的重要性。
對於這些使用權重類型的演算法,因為數值都有大小關係,但有些離散的數值其實是沒有大小關係,例如剛剛把文字轉成數字的伺服器狀態(state),為了讓每種狀態都是公平的,可以做獨熱編碼(one-hot encoding),所以原本的三種數值0、1、2會分別變成三維向量[1,0,0]、[0,1,0]、[0,0,1],如此等於分別給三種狀態一個獨立的權重來做訓練,以達到公平訓練。另外,如果是像決策樹(decision tree、random forest)演算法,可使用相等運算子,而模擬退火(adaboost、gradient boosting)類型的演算法,可訓練的彈性比較大,就不一定要做這些處理,可以選擇性的使用。
流程S34為連續資料離散化。本流程係將一些連續的特徵(feature)離散化,例如CPU使用率,首先,將連續的CPU使用率數值利用k-means演算法分群後,再作離散化,如第8圖所示,設定k-means演算法要把資料分成三類,因而CPU使用率的資料能被分群成三類,分別是
0%~30%、30%~70%及70%~100%,上述將資料分成此三類,即代表如果要對CPU資料的分布找出三個資料分布質心,那麼切割方式就會是切成這三類的資料,此亦代表使用這三類資料就可以描述出原本資料的特性,而不用使用原本複雜的數據,如此可簡化機器學習模型的訓練負擔。在統計一長段時間之前(例如一小時前到現在),這三類分別發生幾次變成三個特徵(feature),如圖所示,系統保持正常的那筆資料的三個數值分別為[7,1,2],系統即將異常的那筆資料則為[3,2,5]。
上述紀錄方式就猶如將系統指標製作成指紋,在不同的系統狀態就會傾向出現不同類型的指紋,而相同或類似的系統狀態,系統指紋彼此之間也會比較相似甚至完全相同,而使用這個方法具有下列優點:(1)可以考慮更長時間以前的狀態;(2)可以讓特徵(feature)的數量不會增加太多;(3)考慮狀態發生的頻率,不考慮狀態發生的時間點。因此,這些特別的特徵(feature)可幫助模型更進一步的獲取長時間以前的各種資訊,以增加預測準確度。
流程S35為預測目標項目資料處理。本流程係將想預測的伺服器未來(例如10分鐘)的狀態取出,並且當成預測的label(predict_status),如第9A圖所示。基於系統異常通常是發生連續一段時間的,因此,當異常已經發生時,我們再預測以後的異常就意義不大了,正常應該是要在連續的異常發生之前預測出來,換言之,我們只須考慮我們預測第一次的系統異常的準確度,所以我們將連續的異常資料只保留第一筆資料,如第9B圖所示。如果是連續的異常之間有其他正常的資料,則計算正常的資料的數量與前後連續異常資料的比例,如果正常的資料只占這三種資料的總和的
10%以下,那麼可將這整個整體視為一個單一的連續資料事件。
流程S35的資料處理會分兩階段執行,第一階段會先掃一遍所有資料,確認哪些部分的異常要認定為連續異常,第二階段才會真的對資料進行刪減的動作。要注意的是,第一階段有可能會碰到兩個以上的連續異常區間重疊的可能,例如連續-正常-連續-正常-連續,此種狀況有可能前三組資料被視為連續異常,後三組資料也被視為連續異常,由於中間的連續異常重複出現在前後異常區間,因此這五組資料將會被視為同一組連續異常,在第二階段會被一起進行資料刪減。
流程S36為使用隨機森林演算法建立模型的方法。本流程係用資料來訓練隨機森林模型(random forest model),為了處理異常極少的不平衡(imbalance)問題,class_weight參數須設成balanced,並且在訓練時做欠抽樣(under-sampling),即將過多的正常資料減少,讓模型可更專心訓練異常的資料。利用網格搜尋(grid search)的方式,掃過隨機森林(random forest)中所有重要的參數,設定特定的參數範圍,例如n_estimators從1~20並且間隔1,所以此參數會有20種組合,可將所有好的參數組合都找過一遍,大約幾萬種組合,找完後選出所有好的模型通常不會超過200個,再將這些模型一起用來做預測,並將預測的結果合起來(ensemble),合起來的方式是閥值投票(threshold voting),類似多數決的投票方式,但只要有超過閥值數量以上的模型才是異常,故將其預測成異常。
流程S37為使用線性門閥單元建立殘差網路。由於時間序列資料的前後資料有關連性,考慮當前時間點之前的結果有助於當前的預測下,本發明提出使用線性門閥單元建立殘差網路來將過去的預測結果反饋
到當前要預測的結果,如第10圖。具體來說,殘差網路會先將主預測模型中使用的效能參數(X)與前一次的預測結果(Y’)串聯起來,形成(X+Y’)的維度的向量,接著使用一個簡單的線性轉換,透過(X+Y’)*2個參數,將此向量轉化為2維向量(a,b),最後,計算殘差R=a*σ(b),其中σ(x)是sigmoid函數(1/(1+exp(-x))),能將輸入轉化到(0,1)的範圍內,因而σ(b)能夠控制多少a能夠成為最後的殘差。綜上,當前的預測最終結果Yfinal會由主預測模型的預測Y與殘差R相加得出,而殘差網路中的(X+Y’)*2個參數的調整一樣會透過反向傳播算法,使用損失函數計算出的損失值進行調整。
流程S38為異常項目的判定。本流程係將訓練完的模型,利用信息增益(InfoGain)演算法做特徵選擇(feature selection),藉以選出較重要的特徵,也就是容易造成系統異常的因素,如此在模型預測出系統很可能即將發生異常時,優先檢查這些造成系統異常的因素,藉以達到在系統異常發生前預防之目的。另外,此分析預測模型的方法,可自動找出影響系統異常較大的監控項目,進而自動建立規則。
流程S39為預測模型的再訓練。如同一開始所述,當時間過越久或系統大幅度改動時就需要重複流程S30到流程S37,重新將舊的資料移除並加入新的資料,重新訓練模型。
綜上所述,本發明所提出之預測造成系統異常之稀有事件的方法,可在系統異常極為稀少以及可接受誤報率下偵測出系統異常,並且不須要改動現有的系統,便可以做出預測,預測出可能發生錯誤後,再利用機器學習演算法的結果,產生最可能發生錯誤的原因,藉此預防錯誤的
發生。
上述實施形態僅例示性說明本發明之原理及其功效,而非用於限制本發明。任何熟習此項技藝之人士均可在不違背本發明之精神及範疇下,對上述實施形態進行修飾與改變。因此,本發明之權利保護範圍,應如後述之申請專利範圍所列。
S11~S17‧‧‧步驟
Claims (9)
- 一種預測造成系統異常之稀有事件的方法,係包括:自各伺服器蒐集原始監控資料,再以時間為主鍵進行該原始監控資料之整合,以將該原始監控資料整合成一筆資料;填補該原始監控資料中之缺漏部分;將該原始監控資料中之文字部分進行數值化,係將不同種類之文字資料內容以從0開始之數值序列循序編排,以令該原始監控資料皆成為數值資料;將該原始監控資料中所有數值進行正規化;以該原始監控資料中之一段時間內的連續資料為基礎,將該原始監控資料分群並離散化,以統計該段時間內之連續資料數量總數,俾做為表示該原始監控資料之參數,再對表示該原始監控資料之參數進行訓練,以建立異常分類預測模型;以及利用該異常分類預測模型之模型特性取得造成異常發生的至少一個參數,以由該至少一個參數以及關聯性高的參數預測出系統異常之可能發生原因。
- 如申請專利範圍第1項所述之預測造成系統異常之稀有事件的方法,其中,該填補該原始監控資料中之缺漏部分之步驟係包括以特定數值填補該缺漏部分,以及對於連續的數值填補上平均值或特定數值。
- 如申請專利範圍第2項所述之預測造成系統異常之稀有事件的方法,其中,該將該原始監控資料中之文字部分進行數值化之步驟係將原本以特定數值填補該缺漏部分者採用編號取代。
- 如申請專利範圍第1項所述之預測造成系統異常之稀有事件的方法,其中,該將該原始監控資料分群之步驟係採用k-means分群演算法以將該原始監控資料進行分群。
- 如申請專利範圍第1項所述之預測造成系統異常之稀有事件的方法,其中,該對表示該原始監控資料之參數進行訓練之步驟係包括使用隨機森林演算法將該隨機森林演算法之超參數設定出一個範圍,再利用網格搜尋方式,於該範圍內以一定間隔進行參數搜尋。
- 如申請專利範圍第1項所述之預測造成系統異常之稀有事件的方法,其中,該對表示該原始監控資料之參數進行訓練,以建立異常分類預測模型之步驟復包括使用欠抽樣(under-sampling)方式以減低該原始監控資料之數量。
- 一種預測造成系統異常之稀有事件的方法,係包括:自各伺服器蒐集原始監控資料,再以時間為主鍵進行該原始監控資料之整合,以將該原始監控資料整合成一筆資料;填補該原始監控資料中之缺漏部分;將該原始監控資料中之文字部分進行數值化,以令該原始監控資料皆成為數值資料;將該原始監控資料中所有數值進行正規化;以該原始監控資料中之一段時間內的連續資料為基礎,將該原始監控資料分群並離散化,以統計該段時間內之連續資料數量總數,俾做為表示該原始監控資料之參數,再對表示該原始監控資料之參數進行訓練,以建立異常分類預測模型;以及 利用該異常分類預測模型之模型特性取得造成異常發生的至少一個參數,以由該至少一個參數以及關聯性高的參數預測出系統異常之可能發生原因,其中,該對表示該原始監控資料之參數進行訓練之步驟係包括使用隨機森林演算法,以對於連續異常的資料僅判定第一個時間點為異常,其餘時間點視為正常。
- 如申請專利範圍第1或7項所述之預測造成系統異常之稀有事件的方法,其中,該利用該異常分類預測模型之模型特性取得造成異常發生的至少一個參數之步驟係指利用信息增益(Information Gain)演算法進行特徵選取,以將對系統異常影響較大者之參數作為該至少一個參數。
- 如申請專利範圍第1或7項所述之預測造成系統異常之稀有事件的方法,其中,該利用該異常分類預測模型之模型特性取得造成異常發生的至少一個參數之步驟復包括利用線性門閥單元控制前一個預測資料對結果的影響程度,並使用殘差網路將該結果反饋至當前要預測的結果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108132773A TWI725543B (zh) | 2019-09-11 | 2019-09-11 | 預測造成系統異常之稀有事件的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108132773A TWI725543B (zh) | 2019-09-11 | 2019-09-11 | 預測造成系統異常之稀有事件的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202111535A TW202111535A (zh) | 2021-03-16 |
TWI725543B true TWI725543B (zh) | 2021-04-21 |
Family
ID=76035706
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108132773A TWI725543B (zh) | 2019-09-11 | 2019-09-11 | 預測造成系統異常之稀有事件的方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI725543B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI783685B (zh) * | 2021-09-15 | 2022-11-11 | 國立高雄大學 | 伺服器計算資源使用率之分散式預測方法及其系統 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170315764A1 (en) * | 2014-12-22 | 2017-11-02 | Hewlett-Packard Development Company, L.P. | Providing a print-ready document |
US20180068083A1 (en) * | 2014-12-08 | 2018-03-08 | 20/20 Gene Systems, Inc. | Methods and machine learning systems for predicting the likelihood or risk of having cancer |
US10319574B2 (en) * | 2016-08-22 | 2019-06-11 | Highland Innovations Inc. | Categorization data manipulation using a matrix-assisted laser desorption/ionization time-of-flight mass spectrometer |
TW201933189A (zh) * | 2017-12-28 | 2019-08-16 | 國立臺灣大學 | 無須先備領域知識建立活動或行為模型及自動偵測目標系統異常活動或行為之偵測方法及系統 |
-
2019
- 2019-09-11 TW TW108132773A patent/TWI725543B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180068083A1 (en) * | 2014-12-08 | 2018-03-08 | 20/20 Gene Systems, Inc. | Methods and machine learning systems for predicting the likelihood or risk of having cancer |
US20170315764A1 (en) * | 2014-12-22 | 2017-11-02 | Hewlett-Packard Development Company, L.P. | Providing a print-ready document |
US10319574B2 (en) * | 2016-08-22 | 2019-06-11 | Highland Innovations Inc. | Categorization data manipulation using a matrix-assisted laser desorption/ionization time-of-flight mass spectrometer |
TW201933189A (zh) * | 2017-12-28 | 2019-08-16 | 國立臺灣大學 | 無須先備領域知識建立活動或行為模型及自動偵測目標系統異常活動或行為之偵測方法及系統 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI783685B (zh) * | 2021-09-15 | 2022-11-11 | 國立高雄大學 | 伺服器計算資源使用率之分散式預測方法及其系統 |
Also Published As
Publication number | Publication date |
---|---|
TW202111535A (zh) | 2021-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111782472B (zh) | ***异常检测方法、装置、设备及存储介质 | |
KR101984730B1 (ko) | 서버 장애 자동 예측 시스템 및 자동 예측 방법 | |
US10872131B2 (en) | Progression analytics system | |
US10341374B1 (en) | Systems and methods detecting and mitigating anomalous shifts in a machine learning model | |
WO2021139252A1 (zh) | 运维故障根因识别方法、装置、计算机设备和存储介质 | |
US9379951B2 (en) | Method and apparatus for detection of anomalies in integrated parameter systems | |
CN107247666B (zh) | 一种基于特征选择和集成学习的软件缺陷个数预测方法 | |
JP2023504103A (ja) | モデル更新システム、モデル更新方法及び関連装置 | |
Turchin et al. | Tuning complex event processing rules using the prediction-correction paradigm | |
CN116450482A (zh) | 一种用户异常监测方法、装置、电子设备及存储介质 | |
TWI725543B (zh) | 預測造成系統異常之稀有事件的方法 | |
CN113569462A (zh) | 一种计及天气因素的配电网故障等级预测方法及*** | |
CN116823496A (zh) | 基于人工智能的智能保险风险评估和定价*** | |
CN115858794A (zh) | 用于网络运行安全监测的异常日志数据识别方法 | |
KR101960755B1 (ko) | 미취득 전력 데이터 생성 방법 및 장치 | |
CN115858606A (zh) | 时序数据的异常检测方法、装置、设备及存储介质 | |
CN113642672A (zh) | 医保数据的特征加工方法、装置、计算机设备及存储介质 | |
CN117407880A (zh) | 基于合成生物安全数据库的风险评估平台 | |
CN116091206B (zh) | 信用评价方法、装置、电子设备及存储介质 | |
CN117216713A (zh) | 故障定界方法、装置、电子设备和存储介质 | |
CN109472449B (zh) | 基于群决策的城市轨道交通信号设备健康状态评价方法 | |
Aarti et al. | Grey relational classification algorithm for software fault proneness with SOM clustering | |
CN116545867A (zh) | 一种监控通信网络网元性能指标异常的方法及装置 | |
CN113837481A (zh) | 一种基于区块链的金融大数据管理*** | |
CN117649209B (zh) | 企业营收稽核方法、***、设备及存储介质 |