時間序列 前移驗證

2021-10-09 17:24:05 字數 1109 閱讀 1908

在時間序列建模中,隨著時間的推移,**變得越來越不準確,因此,當模型可用於進一步的**時,採用實際資料重新訓練模型是一種更為現實的方法。 由於訓練統計模型並不耗時,因此,前向驗證是獲得最準確結果的最優選解決方案。

讓我們對資料進行一步向前驗證,並將其與我們之前獲得的結果進行比較。

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...