我正在使用单变量时间序列数据集进行预测。我正在使用ARIMA模型进行训练。但是,每次训练都是一个耗时的过程。是否有任何过程可以保存经过训练的ARIMA模型并在以后用于预测?
在这里,我提供了我尝试过的代码的github link。我受到this post的启发。下面,我提供ARIMA模型的功能和必要的代码行。
Actual = [x for x in train_set]
Predictions = list()
def StartARIMAForecasting(Actual, P, D, Q):
print('from function screaming')
model = ARIMA(Actual, order=(P, D, Q))
model_fit = model.fit(disp=0)
# save_model=model_fit.save('model_22.pkl')
prediction = model_fit.forecast()[0]
# save_model=model_fit.save('model_22.pkl')
return prediction,save_model
for timepoint in range(len(test_set)):
print('I am in for loop')
ActualValue = test_set[timepoint]
#forcast value
Prediction,save_model_1 = StartARIMAForecasting(Actual, 2,1,2)
print('Actual=%f, Predicted=%f' % (ActualValue, Prediction))
#add it in the list
Predictions.append(Prediction)
Actual.append(ActualValue)
在这里,我要保存模型,然后在加载模型后,要使用我的测试数据进行预测。
我的假设是- 保存模型后,我将其加载,然后按照以下步骤操作
loaded = ARIMAResults.load('model_arima.pkl')
#don't know how and in which line to create this model_arima.pkl
start_index = len(Actual)
end_index = start_index + len(test_set)-1
forecast = loaded.predict(start=start_index, end=end_index)
from sklearn.metrics import mean_squared_error
Error = mean_squared_error(test_set, forecast)
print(Error)
迫切希望得到一些回应,以移除路障。