在時間序列建模中,隨著時間的推移,**變得越來越不準確,因此,當模型可用於進一步的**時,採用實際資料重新訓練模型是一種更為現實的方法。 由於訓練統計模型並不耗時,因此,前向驗證是獲得最準確結果的最優選解決方案。
讓我們對資料進行一步向前驗證,並將其與我們之前獲得的結果進行比較。
in [333]:
在[333]中:
prediction =
data = train.values
for t in test.values:
model = (exponentialsmoothing(data).fit())
y = model.predict()
in [335]:
在[335]中:
test_ = pandas.dataframe(test)
test_['predictionswf'] = prediction
in [341]:
在[341]中:
plt.plot(test_['t'])
plt.plot(test_.predictionswf, '--')
plt.show()
in [340]:
在[340]中:
error = sqrt(metrics.mean_squared_error(test.values,prediction))
print ('test rmse for triple exponential smoothing with walk-forward validation: ', error)
test rmse for triple exponential smoothing with walk-forward validation: 11.787532205759442
我們可以看到我們的模型現在效能明顯更好。 實際上,趨勢是如此接近,以至於繪圖上的**與實際值重疊。 您也可以嘗試在arima模型上應用前向驗證。
翻譯自:
驗證棧序列
給定 pushed 和 popped 兩個序列,只有當它們可能是在最初空棧上進行的推入 push 和彈出 pop 操作序列的結果時,返回 true 否則,返回 false 0 pushed.length popped.length 1000 0 pushed i popped i 1000 push...
驗證棧序列
驗證棧序列 輸入兩個整數序列,第乙個序列表示棧的壓入順序,請判斷第二個序列是否為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如,序列 是某棧的壓棧序列,序列 是該壓棧序列對應的乙個彈出序列,但 就不可能是該壓棧序列的彈出序列。示例 1 輸入 pushed 1,2,3,4,5 popped 4,5...
驗證棧序列
對乙個空棧進行 push 和 pop 操作各 n 次,使得 1 n 每個數都被 push 和 pop 一次,n 次 push 的數按照順序形成排列 a,n 次 pop 的數按照順序形成排列 b,此時稱 a 和 b 互為 棧轉化序列 input 612 3456 5643 21output truee...