如何針對時序性問題建立一個Baseline模型
>> Abstract
Baseline模型的意義,在於理解在最naive、最簡單的情況下,模型應該有的成績是什麼。
這可以用來辨別模型是否發生了某種嚴重錯誤,例如:
- 選錯objective function
- 使用了不適合的演算法
- 資料有嚴重問題
同時,也可以作為一個用來評價不同演算法效果的基準線。
>> Note
Step1: 準備資料集
通常我們有時序性資料,這一個步驟是說明如何把時序性資料變成資料集。
為了實踐一個時序性問題,我們可以把一個連續的時序性資料,向後推移一個時間步。
例如原本資料的排序是,1,2,3,4,5,我們可以捨棄1和5,也就是第一筆和最後一筆資料。產生另一組資料NaN, 1, 2, 3, 4,接下來我們就可以用原本的資料作為x,用來預測另一組資料y。
用這種方式來做時間序列模型的預測,會比輸入當前X產生y方式,訓練起來更合邏輯。
Step2. 分割訓練與測試資料
接下來我們還是要切割訓練與測試資料,對於時間序列問題,通常我們是直接train_test spilt,但也有使用K-fold的作法。
Step3. Persistence Algorithm, Baseline模型的建置
準備完資料後,我們就可以用昨天提到的zero-rule方法來產生一個baseline的pred結果。用來評估最naive的模型應該有的成績。
Step4. 用Baseline模型做預測
我們用Baseline模型(zero-rule model)對測試資料集做預測,取得最差成績。
到此,我們就可以用針對時序性資料做出一個BaseLine模型了。
>> Ref
https://machinelearningmastery.com/persistence-time-series-forecasting-with-python/