Метод прогнозирования pmdarima autoarima возвращает '' объект SARIMAX не имеет атрибута '_k_trend' ' - PullRequest
1 голос
/ 06 мая 2020

Я создал модель, используя метод конвейера модуля pmdarima

fit2 = Pipeline([
('boxcox', BoxCoxEndogTransformer(lmbda2=1e-6)),
('arima', pmd.AutoARIMA(trace=True,
                       suppress_warnings=True,
                       m=12,
                       stepwise=True))])

, и подогнал модель с использованием набора данных поезда

fitted = fit2.fit(train)

И смог выполнить прогнозы. Впоследствии я попытался сохранить модель как файл рассола

pickle_tgt = "arima.pkl"
joblib.dump(fitted, pickle_tgt, compress=3)

, затем я прочитал файл рассола обратно в другой python экземпляр

def get_model(product_id):
  file_path = "collector/resources/" + product_id
  try:
      model = joblib.load(file_path)
      return model
  except Exception:
      print(traceback.format_exc())

Однако, когда я попытался выполнить прогноз используя модель, которую я импортировал

fc, confint = model.predict(n_periods=24, return_conf_int=True)

, он не работает и возвращает следующую трассировку стека

    fc, confint = model.predict(n_periods=n_periods, return_conf_int=True)
  File "C:\Users\collector\venv\lib\site-packages\pmdarima\pipeline.py", line 436, in predict
    alpha=alpha, **predict_kwargs)
  File "C:\Users\collector\venv\lib\site-packages\pmdarima\utils\metaestimators.py", line 53, in <lambda>
    out = (lambda *args, **kwargs: self.fn(obj, *args, **kwargs))
  File "C:\Users\collector\venv\lib\site-packages\pmdarima\arima\auto.py", line 184, in predict
    return_conf_int=return_conf_int, alpha=alpha)
  File "C:\Users\collector\venv\lib\site-packages\pmdarima\arima\arima.py", line 651, in predict
    alpha=alpha)
  File "C:\Users\collector\venv\lib\site-packages\pmdarima\arima\arima.py", line 86, in _seasonal_prediction_with_confidence
    **kwargs)
  File "C:\Users\collector\venv\lib\site-packages\statsmodels\tsa\statespace\mlemodel.py", line 3234, in get_prediction
    transformed=True, includes_fixed=True, **kwargs)
  File "C:\Users\collector\venv\lib\site-packages\statsmodels\tsa\statespace\sarimax.py", line 1732, in _get_extension_time_varying_matrices
    if not self.simple_differencing and self._k_trend > 0:
AttributeError: 'SARIMAX' object has no attribute '_k_trend'

Версия pmdarima - 1.6.0, я попытался установить переменную _k_trend = 0 в файл sarimax.py, но, похоже, он не имеет никакого эффекта. У кого-нибудь есть работа над этим?

1 Ответ

0 голосов
/ 18 июля 2020

По-видимому, возникла проблема совместимости версий при установке pmdarima в colab и локальном env, дополнительную информацию можно найти здесь

...