STL 表示基於損失的季節性分解的過程。該技術能夠將時間序列信號分解為三個部分: 季節性變化(seasonal)、趨勢變化(trend)和剩余部分(residue) 。
顧名思義,這種方法適用於季節性的時間序列,這是比較常見的情況。
這裏不太明顯的地方是,我們為了得到更可靠的異常檢測結果,使用了 絕對中位偏差 。該方法目前最好的實現是 Twitter 的異常檢測庫 ,它使用了 Generalized Extreme Student Deviation (廣義的 ESD 算法)測試殘差點是否是壹個離群點。
該方法的優點在於其簡單性和健壯性。它可以處理很多不同的情況,並且所有的異常情況仍然可以直觀解釋。
它主要擅長於附加的異常值檢測。如果想要檢測壹些水平變化,則可以對移動平均信號進行分析。
該方法的缺點是在調整選項方面過於死板。妳所能做的只有通過顯著性水平來調整置信區間。
當信號特征發生了劇烈變化時,該方法就失效了。例如,跟蹤原本對公眾是關閉狀態的,卻突然對公眾開放的網站用戶數量。在這種情況下,就應該分別跟蹤在啟動開放之前和開放之後發生的異常。
分類回歸樹(CART)是目前最穩健、最有效的機器學習技術之壹。它也可以應用於異常檢測問題。
分類樹學習的最流行實現是 xgboost 庫 。
這種方法的優點是它不受信號結構的任何約束,而且可以引入許多的特征參數進行學習,以獲得更為復雜的模型。
該方法的缺點是會出現越來越多的特征,這很快會影響到整體的計算性能。在這種情況下,妳應該有意識地選擇有效特征。
自回歸移動平均模型(ARIMA)是壹種設計上非常簡單的方法,但其效果足夠強大,可以預測信號並發現其中的異常。
該方法的思路是從過去的幾個數據點來生成下壹個數據點的預測,在過程中添加壹些隨機變量(通常是添加白噪聲)。以此類推,預測得到的數據點可以用來生成新的預測。很明顯:它會使得後續預測信號數據更平滑。
使用這種方法最困難的部分是 選擇 差異數量、自動回歸數量和預測誤差系數。
該方法的另壹個障礙是信號經過差分後應該是固定的。也就是說,這意味著信號不應該依賴於時間,這是壹個比較顯著的限制。
異常檢測是利用離群點來建立壹個經過調整的信號模型,然後利用 t-統計量 來檢驗該模型是否比原模型能更好的擬合數據。
該方法最受歡迎的實現是 R 語言中的 tsoutliers 包。在這種情況下,妳可以找到適合信號的 ARIMA 模型,它可以檢測出所有類型的異常。
指數平滑方法與 ARIMA 方法非常相似。基本的指數模型等價於 ARIMA (0, 1, 1) 模型。
從異常檢測的角度來看,最有趣的方法是 Holt-Winters 季節性方法 。該方法需要定義季節性周期,比如周、月、年等等。
如果需要跟蹤多個季節周期,比如同時跟蹤周和年周期,那麽應該只選擇壹個。通常是選擇最短的那個:所以這裏我們就應該選擇周季節。
這顯然是該方法的壹個缺點,它會大大影響整體的預測範圍。
和使用 STL 或 CARTs 方法壹樣,我們可以通過統計學方法對離群值進行統計來實現異常檢測。
與 CART 方法壹樣, 神經網絡 有兩種應用方式:監督學習和無監督學習。
我們處理的數據是時間序列,所以最適合的神經網絡類型是 LSTM 。如果構建得當,這種循環神經網絡將可以建模實現時間序列中最復雜的依賴關系,包括高級的季節性依賴關系。
如果存在多個時間序列相互耦合,該方法也非常 有用 。