Я использую одномерный набор данных временных рядов для прогноза.Я использую модель ARIMA для тренировки.Но это трудоемкий процесс обучения каждый раз.Есть ли какой-нибудь процесс, чтобы сохранить обученную модель ARIMA и использовать ее позже для прогнозирования?
Здесь я даю ссылку github кода, который я пробовал.Я вдохновлен этим постом .Ниже я даю функцию модели 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)