這裡可以先聊一下時間序列預測的處理,
假設你忘記了你會LSTM,也忘記了你會RNN,
該怎麼處理時間序列資料呢?
我可能會先用SVR來當作我的墊檔裝:
但是官網也強調了超過10000筆資料效果會不好。
import numpy as np
from sklearn.svm import SVR
X = np.array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]).reshape(-1, 1)
y = np.sin(X).ravel()
svr_poly = SVR(kernel='poly', C=100, gamma='auto', degree=3, epsilon=.1,
coef0=1)
print(X)
ans = svr_poly.fit(X, y).predict([[20]])
print(ans)
小小的測試一下:
再來,這裡使用autokeras的TimeSeriesForecaster,
為何不使用tensorflow 來做呢?
是因為tensorflow還需要自己切分以過去多少筆來當作預測基準,
以及未來預測多少筆都要自己搭建function。
但是autokeras只要設定參數就可以了。
資料集下載:
https://archive.ics.uci.edu/ml/machine-learning-databases/00360/AirQualityUCI.zip
下載完之後我們把資料集的csv上傳到colab,並查看有沒有上傳成功:
安裝autokeras:
載入套件:
資料清洗,並去除不需要的欄位:
區分訓練集及驗證集:
特徵轉成浮點數格式:
未來以整體資料來測試:
設定訓練目標(label):
要預測的值以過去10筆資料(lookback、window)來參考,要預測未來10筆:
結果作圖:
假設要保存autokeras模型可以參考這個頁面:
https://autokeras.com/tutorial/export/
參考資料:
https://autokeras.com/tutorial/timeseries_forecaster/
官網colab目前運行會有錯誤,所以我建議自己寫一個。