Как сохранить обученную модель ARIMA для последующего использования - PullRequest
1 голос
/ 23 мая 2019

Я использую одномерный набор данных временных рядов для прогноза.Я использую модель 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)
...