【IT168 資訊】今天介紹一個通用框架,用於開發時間序列模型,生成特徵並對數據進行預處理,並探索使這一過程自動化的潛力,以便將先進的機器學習算法應用於幾乎所有的時間序列問題。
目前大多數機器學習算法都不具有時間意識,不容易應用於時間序列和預測問題。利用像XGBoost等這樣的先進算法甚至線性模型,通常需要大量的數據準備和特徵工程,例如,創建滯後特徵,去除目標以及檢測周期性。在需要預測未來多個時間點窗口的常見情況下,所需的預處理變得更加困難。因此,大多數實踐者都依賴傳統的方法,如ARIMA或趨勢分析,這些方法具有時間意識,但表達能力較差。本文介紹了解決這一挑戰的最佳實踐,通過引入一個開發時間序列模型,生成特徵和預處理數據的通用框架,探索使這一過程自動化的潛力,以便將先進的機器學習算法應用於幾乎任何時間序列問題。
介紹
時間序列預測是數據科學中最難的問題之一。它從字面上涉及預測未來的事件,並推斷一個潛在的複雜系統如何演變。在傳統的機器學習問題中,我們經常假設預測數據與訓練數據相似。然而,時間序列問題本質上是動態的,並且正在發生變化,特別是對於我們稍後將討論的非平穩信號。這放大了對過度擬合的敏感性,並且也可能使一些模型難以找到開始的預測信號。
目前解決這些挑戰的最先進的機器學習算法(例如XGBoost)沒有時間意識。通常是在形成預測時一次看一排。為了將這些方法用於預測,我們需要根據過去和現在的數據及時推導信息特徵。本文介紹了此功能工程過程的框架,並詳細介紹了如何構建更強大的時間序列預測模型。
值得一提的是,有幾個時間序列專門的算法,如ARIMA,指數平滑,以及各種分解和趨勢方法。在下面討論的框架和特徵工程也可以使這些算法受益,因為將多變量數據和更豐富的特性隨時間變化也而更加實用。
時間序列框架
在構建時間序列模型時,我們需要定義如何創建特徵以及如何使用模型。下面我們介紹一個通用的時間序列框架來對這些信息進行編碼,這也使我們能夠在稍後自動化這個過程。
時間序列的特徵推導
預測點定義了正在進行預測的任意時間點後。特徵推導窗口(FDW)定義了一個相對於預測點的滾動窗口,該窗口可用於推導描述性特徵。最後,預測窗口(FW)定義了我們希望預測的未來值的範圍,稱為預測距離(FD)。
時間序列框架捕捉了如何使用模型的業務邏輯。它編碼了最近的歷史記錄,以便做出新的預測(例如,至少28天前),數據的最近可用時間(例如7天前)以及需要哪些預測距離(2至7天天)。預測窗口還為我們提供了一種客觀的方法來測量訓練模型的總精度,其中總誤差可以通過對數據中所有可能的預測點的平均值和在窗口中每個預測距離的準確性來測量。
時間序列特徵
基於上面定義的時間序列框架,我們可以生成許多不同的時間序列特徵,這些特徵可以用來預測不同的預測距離。
例如:
·FDW內部各種滯後
·滾動平均值、最小值、最大值等統計
·布林線指標和統計
這些特徵可以來自目標變量或其他任何協變量。
為了將數據集轉化為普通機器學習模型可以使用的形式,我們需要為每個預測距離生成示例,並從相對特徵推導窗口派生出相應的特徵。
對於每個預測距離(FD):
1.根據相對的FDW行計算每行的循環統計量
2.為每一行生成示例,根據這些特徵預測FD的未來價值
3.重複每個候選滾動特性
這產生了一個潛在的更大的數據集,用來預測每個預測距離和各種新特徵。但是,現在我們可以訓練那些沒有時間意識的模型以產生準確的預測。預測距離本身可以用作一個特徵,或者我們可以為每個距離建立一個單獨的模型。
時間系列治療方法
除了創建新的特徵之外,我們還可以考慮轉換目標變量的方法,以最大化預測準確性和穩定性。例如,我們可以執行測試來檢查目標是處於靜止還是非平穩的狀態,如果它是周期性的,是基於統計測試的指數趨勢。基於這些測試,我們可以選擇使用以下方法來轉換目標:
·對數轉換(對於指數趨勢和乘法模型)
·周期性差分(用固定目標製作一個集成模型)
·簡單樸素差異(使用最新的FDW行)
在預測時間,這些處理可以被逆轉,導致在原始規模上有更準確的預測。
自動化
時間序列框架、處理和候選特徵提供了一種將原始數據集系統地轉換成數據集的方法,我們可以使用這個數據集訓練任意的機器學習模型進行預測。
但是,仍然存在一些挑戰:
·如何在這些特性上選擇最佳算法?
·在培訓期間,如何正確劃分和驗證訓練期間的時間序列模型?
·如何擴展到大型數據集?
·何處理多個系列(例如,橫截面時間序列)數據?
·如何在大量的潛在特性中選擇最佳特性?
由於數據集和業務限制的範圍很廣,以及對於各個步驟、特徵和決策所需的技術細節,使此過程完全自動化是困難的。但是,像DataRobot這樣的公司現在正在把重點放在企業和個人用戶的自動化最佳實踐上。
結論
在本文中,我們介紹了時間序列預測中涉及的挑戰以及如何將先進的機器學習算法應用於這些問題。引入了一個通用的時間序列框架來定義如何使用模型,如何生成預測歷史記錄特徵和基本的時間序列處理,最後,實現這個過程的自動化。時間序列建模是一個非常豐富的主題,其他許多考慮因素都可以合併。這裡的實踐將有助於獲得預測未來事件的最大準確性。