KPI異常檢測【二】 - 概念漂移檢測

1、概念漂移概念

2、概念漂移的檢測方法

2.1 基於數據的概念漂移

2.1.1 基於窗口的樣本選擇

2.1.2 基於數據概率密度分佈

2.2 基於模型的概念漂移

2.2.1 基於模型檢測錯誤率

2.2.2 基於增量式學習算法

2.2.3 基於集成、遷移學習算法


1、概念漂移概念

1.1 定義

廣義定義:

環境上下文變化引起的觀測對象的根本性變化,成爲概念漂移。

機器學習中的定義

在機器學習、時間序列以及模式識別領域的一種普遍現象。概念漂移是指一個模型要去預測的一個目標變量,這個目標變量隨着時間的推移發生改變。對於基本相同的數據,隨着時間的推移,模型的預測精度將降低

1.2 數學表達

X(輸入)和y(輸出)之間的映射關係y=f(X)是隨着時間變化的,在訓練集和測試集上的f完全不一樣,這樣就會出現我們在離線測試調好的模型上線就不work的情況。

1.3 研究對象

時間上具有關聯的數據流,目前有很多廣泛存在的數據,像金融數據、交通數據等,這類數據不同於傳統的static data(靜態數據),而是作爲一種數據量大、實時性強的data stream(流式數據)而存在。流式數據分爲穩定的數據流動態的數據流,穩定的數據流具有穩定獨立同分布的特點,而動態數據流則是不獨立同分布的,所以會產生概念漂移的現象。

1.4 分類

根據數據的變化形態可以劃分爲:突變(sudden)、漸變(incremental)、緩變(gradual)、復現(recurring)、波動(blip)和噪聲(noise)。如下圖所示,根據不同的類型,針對概念漂移設計算法也有不同的思路。

  • sudden指的是迅速同時又不可逆的改變,強調的是發生的迅速。
  • incremental和gradual都是強調改變發生的緩慢,incremental強調值的隨時間改變,gradual則是數據分佈的改變。也有些研究者將這兩種變化劃分爲同一類,用incremental gradual這個術語來代替。
  • recurring則是一種temporary(臨時性)的改變,在一段短時間內會恢復之前的狀態。所以也有些研究者將其稱爲local drift,它不具有周期性,是在不規則的時間間隔內反覆轉換。
  • blip是代表一種很稀少的事件,它可以被視爲一種anomaly或者outlier(異常)。
  • noise是一種隨機的改變,通常這種數據會從樣本數據中filter out。

根據模型的影響程度劃分爲實漂移和虛漂移,分佈變化影響分類決策,則爲實漂移;分佈變化不影響分類決策,則爲虛漂移。

1.5 概念漂移的影響

概念漂移可能會導致模型性能降低或者失效,例如,在網絡智能運維、自動駕駛、金融、醫療等領域,存在大量的KPI數據,這些數據可能會發生概念漂移,影響模型的應用效果。這些領域的場景中,判斷概念漂移的發生並及時更新模型堆AI應用的可靠性和可用性至關重要。

2、概念漂移的檢測方法

簡單來說,對於緩慢的分佈演變,被動方法 (passive methods) 能夠順滑改變模型參數以適應當前分佈。主動方法 (active methods) 一般用來針對急促的分佈演變,需要精確檢測漂移節點,並且迅速做出相應判斷。

檢測漂移節點通常採用兩種方法:

  1. 基於數據,根據觀測數據的統計信息來發現數據分佈的改變,例如發現類別樣本的高度不平衡;
  2. 基於模型,根據模型輸出特徵的改變來量化漂移,比如根據分類準確率的下降來量化概念漂移的程度。

2.1 基於數據的概念漂移

原理:漂移檢測(分析數據分佈特點)+模型更新

優點:思路清晰,可解釋。

缺點:當數據隨時間連續變化時,不能爲力。

方法:基於窗口的樣本選擇、基於數據的概率密度分佈。

2.1.1 基於窗口的樣本選擇

1、ADWIN算法

Learning from Time-Changing Data with Adaptive Windowing, A Bifetet al., 2005

算法初始化時會確定一個大窗口W,通過比較2個子窗口W0,W1中的統計值(均值,方差等)的差異是否大於某一閾值來判斷是否發生概念漂移;當未發生概念漂移,即數據流的分佈特徵值沒有改變,窗口大小不變;當發生概念漂移時,即口內數據流的分佈特徵值確實發生改變,窗口縮小(至W0,W1中最小的)。

如下圖:

  • 目標:動態調整滑動窗口大小,這是一個具體的操作;
  • 什麼時候調整滑動窗口?當檢測到change時;
  • 怎麼衡量change?使用標識data_stream的特徵值,如果特徵值變化超過某一門限值,則認爲,change已經發生,需要進行調整滑動窗口大小;
  • 特徵值都有哪些?方差、均值等;
  • 特徵值的門限值怎麼確定?即,判斷標準是什麼?確定特徵值的標準是:沒有change發生時,判斷change已經發生的概率要儘可能小;change已經發生,判斷change已經發生的概率要儘可能大,並且速度要儘可能快。

2、Sample Weight算法

Handling Concept Drift: Importance, Challenges & Solutions,A Bifet,2011

機器學習中的應用:

  • class weight:對訓練集裏的每個類別加一個權重。如果該類別的樣本數多,那麼它的權重就低,反之則權重就高.
  • sample weight:對每個樣本加權重,思路和類別權重類似,即樣本數多的類別樣本權重低,反之樣本權重高

應用到此處:根據樣本存留時間給樣本賦予不同的權重,時間越靠前的窗口樣本權重較大,在模型訓練中的佔比重越多。

2.1.2 基於數據概率密度分佈

1、基於信息熵:對比當前窗口與前一窗口的概率分佈的山變化\Delta H

Entropy based concept drift detection, Peter Vorburgeret al., 2006

\left | H(W1)-H(W2) \right |>\alpha

2、基於KL散度:KL散度又稱爲相對熵,信息散度,信息增益。是衡量兩個概率分佈之間差異性的度量方法。

Change Detection in Streaming Multivariate Data Using Likelihood Detectors, LI Kunchevaet al., 2011

3、基於核函數:將離散概率分佈通過核函數(如高斯核)進行平滑估計,在計算概率分佈的距離。

在這裏插入圖片描述

4、基於譜變換:奇異譜分析提取序列趨勢信號、週期信號、噪聲信號等,從而進行頻域的分佈變化檢測。(機械故障檢測常用)

 FUNNEL: Assessing Software Changes in Web-based Services, S Zhang et al., 2016

2.2 基於模型的概念漂移

原理:直接更新模型,不直接研究數據,在線的自適應學習。

優點:直接實現模型的自適應。

缺點:可解釋性差,模型更新頻繁,易陷入局部最優。

方法:基於模型性能指標、基於增量式學習、基於遷移學習、基於集成學習。

2.2.1 基於模型檢測錯誤率

統計規律表明,如果樣本數據是穩定分佈的,那麼隨着數據的輸入,模型的錯誤率(error rate)就會逐漸下降;當概率分佈發生變化時,模型的錯誤率就會突變上升,因此通過評估錯誤率的變化可確定漂移。

1、DDM算法

Learning with Drift Detection, J Gama et al., 2004

DDM會爲錯誤率設置兩個閥值,一個是warning,另一個是drift。當樣本數據中的第w個數據輸入時,錯誤率達到了warning值,說明有樣本概率分佈改變的前兆,如果接連輸入的數據沒有讓錯誤率降低,並且當第d個數據輸入時錯誤率達到了drift值,則確定樣本概率分佈發生了變化,爲了適應新的樣本數據,模型就將以w之後的數據進行學習;而如果接連輸入的數據讓錯誤率降低了,則說明是一個false alarm。

\begin{matrix}warning-level =p_{min}+ s_{i} \\ drift-level =p_{i} + \alpha \ast s_{i} \end{matrix}

𝑝𝑖爲歷史錯誤率,𝑠𝑖爲歷史錯誤率標準差

關於warning和drift這兩個閥值的大小,是通過錯誤率的概率分佈來確定的。

DDM方法主要是用於incremental或者是online算法,通過這個方法可以更好地選擇合適的、穩定分佈的數據集用於對模型的訓練。 

2、EDDM算法

Early Drift Detection Method, M Baena-Garcıa, et al., .2005

EDDM(Early Drift detection method)依據DDM算法進行改進,基本思想是考慮兩個錯誤分類的變化率,而不是僅考慮錯誤率。

定義相鄰兩次error rate之間的差值𝑝𝑖′,以及𝑝𝑖′的標準差𝑠𝑖′。

例如,α和β的設定爲0.90與0.85,可理解爲錯誤率的變化相似性,當分類錯誤率與歷史時刻相似性小於0.90時,達到warning level。當相似性小於0.85時,數據確定開始產生漂移。

2.2.2 基於增量式學習算法

1、基於樹模型

Mining Time-Changing Data Streams, G Hultenet al., . 2001

CVFDT(Concept-adapting very fast decision tree):基於決策樹算法,針對流式數據添加滑動窗口,不斷刪除old data,保留new data。並且,週期性的檢測每個決策節點的分類準確率,當準確率低於閾值時,用備選子樹替換當前的決策節點(每節點有一棵備選子樹),用來維持概念漂移場景下數據的分類準確率。

2、基於聚類

Incremental Clustering for the Classification of Concept-Drifting Data Streams,I Katakis,2008

CCP(ConceptualClustering&Prediction)通過計算相鄰窗口樣本的特徵向量CV距離,判斷概念漂移是否發生,當漂移發生後更新聚類質心。

3、基於神經網絡

Adaptive online neural network forface identificationwithconcept drift, 2014

Incremental adaptive neural network:樣本如果輸出正確的識別結果,模型不更新;當樣本輸出錯誤的分類label時,模型錯誤率的上升觸發模型更新:通過增加網絡模型輸出層神經元,爲新概念創建新的神經網絡輸出節點,在參數矩陣Θ(L-1)中增加一行引入新的類,同時保留系統的先前知識,並利用在線少量樣本,進行權重更新。

 

 

l表示神經網絡第l層,n(l)表示第l層的神經元個數,Θ爲權重參數矩陣

 

2.2.3 基於集成、遷移學習算法

針對不同數據塊或不同的概念數據,系統保留一定數量的決策模型,通過集成方式解決概念漂移帶來的模型失效問題。包括SEA,Learn++,DDD,DWM,DTEL算法等。

1、SEA算法

A Streaming Ensemble Algorithm (SEA) for Large Scale Classification WN Street et al., 2001

SEA(StreamingEnsembleAlgorithm)是一種集成算法,通過將流式數據訓練N個分類模型,通過淘汰低準確率模型,實現模型在線更新。

2、Learn++算法

An Incremental Learning Algorithm for Supervised Neural Networks, R Polikaret al., 2001

 Learn++是一種利用神經網絡分類器進行集成訓練的算法。在進行訓練時,將數據集分成若干子集,分別訓練弱分類器(準確率由於隨機分類器即可),並通過權重投票機制集成若干分類器。

3、DDD算法

 A new ensemble approach for dealing with concept drift, LL Minkuet al., 2011

DDD(DiversityforDealingwithDrifts)算法改進:依據多樣性規則保存m個模型,並用模型準確率對集成模型進行加權處理。

Q函數爲評估兩個分類器差異性的函數,其中N01表示分類器𝑓𝑖判斷樣本分類爲0,分類器𝑓𝑗判斷判斷樣本數爲1的比例,以此類推。

4、算法

Dynamic Weighted Majority for Incremental Learning of Imbalanced Data Streams with Concept Drift, Y Lu et al.,2017

DWM(DynamicWeightedMajority)算法:集成m個模型,模型準確率對集成模型進行加權處理。

𝜖𝑗(𝑡)爲訓練分類器𝐻𝑗(𝑡)在當前數據塊𝐷(𝑡)的分類錯誤率

TEL算法(DiversityandTransferbasedEnsembleLearning):依據多樣性規則保存m個模型,當新的數據塊到來時,m個模型進行遷移學習(遷移決策樹),並與當前模型進行加權集成。

DTEL: Diversity and Transfer based Ensemble Learning approach, Y Sun et al.,2017

其中div(s)函數爲多樣性函數,𝑄爲評估兩個分類器差異性的函數


參考文獻:

  1. http://blog.itpub.net/31509949/viewspace-2643047/
  2. https://blog.csdn.net/FrankieHello/article/details/81949725
  3. https://www.zhangqibot.com/post/ml-concept-drift/
  4. https://posts.careerengine.us/p/5e1b563637ce770a4c6b7b42
  5. http://ningg.top/algorithm-adwin/
  6. Sample Weight & Class Weight
  7. https://www.cnblogs.com/jiangxinyang/p/10563113.html
  8. https://blog.csdn.net/qq_41103204/article/details/104755527
  9. https://blog.csdn.net/FrankieHello/article/details/81988751
  10. Block-based and Online Ensembles for Concept-drifting Data Streams, 2015. Ph.D. Thesis from Dariusz Brzeziński
  11. Learning from Time-Changing Data with Adaptive Windowing, A Bifetet al., 2005
  12. Handling Concept Drift: Importance, Challenges & Solutions,A Bifet,2011
  13. Entropy based concept drift detection, Peter Vorburgeret al., 2006
  14. Change Detection in Streaming Multivariate Data Using Likelihood Detectors, LI Kunchevaet al., 2011
  15. FUNNEL: Assessing Software Changes in Web-based Services, S Zhang et al., 2016
  16. Learning with Drift Detection, J Gama et al., 2004
  17. Early Drift Detection Method, M Baena-Garcıa, et al., .2005
  18. Mining Time-Changing Data Streams, G Hultenet al., . 2001
  19. Incremental Clustering for the Classification of Concept-Drifting Data Streams,I Katakis,2008
  20. Adaptive online neural network forface identificationwithconcept drift, 2014
  21. A Streaming Ensemble Algorithm (SEA) for Large Scale Classification WN Street et al., 2001
  22.  An Incremental Learning Algorithm for Supervised Neural Networks, R Polikaret al., 2001
  23. A new ensemble approach for dealing with concept drift, LL Minkuet al., 2011
  24. Dynamic Weighted Majority for Incremental Learning of Imbalanced Data Streams with Concept Drift, Y Lu et al.,2017
  25. Diversity and Transfer based Ensemble Learning approach, Y Sun et al.,2017

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章