如何保存经过训练的ARIMA模型以供以后使用

时间:2019-05-23 00:18:24

标签: machine-learning time-series arima

我正在使用单变量时间序列数据集进行预测。我正在使用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)

迫切希望得到一些回应,以移除路障。

0 个答案:

没有答案