Моя проблема довольно проста, и я знаю, что упускаю что-то очень очевидное, я просто не могу понять, что это такое ...
Мои тестовые прогнозы для Холт-Уинтерса выходяткак NaN, и я не могу понять, почему.Может ли кто-нибудь помочь в этом?
Я использую Блокнот Jupyter и пытаюсь прогнозировать продажи одной SKU, используя метод Холт-Винтерса.Я даже дошел до использования
Вот код, который я использовал:
Импорт библиотек, необходимых для выполнения Holt-Winters
Импорт панд в виде pd Импорт numpy в виде np%Встроенный matplotlib
df = pd.read_csv ('../ Data / M1045_White.csv', index_col = 'Month', parse_dates = True)
Установить столбец месяца в качестве столбца индекса
df.index.freq = 'MS' df.index
df.head ()
df.info () DatetimeIndex: 48 записей, 2015-05-01 to2019-04-01 Freq: MS Столбцы данных (всего 7 столбцов): Продажи 48 ненулевое int64 EWMA12 48 ненулевое float64 SES12 47 ненулевое float64 DESadd12 47 ненулевое float64 DESmul12 47 ненулевое float64 TESadd12 48 ненасыщенноеnull float64 TESmul12 12 ненулевых типов float64: float64 (6), int64 (1) использование памяти: 3,0 КБ
из statsmodels.tsa.holtwinters import SimpleExpSmoothing
Train Test Split
train_data = df.iloc [: 36] # Подходит, но не включает 36 test_data = df.iloc [12:]
Подходит для модели
fit_model = exponentialSmoothing (train_data ['Sales'], тренд = 'mul', сезонный = 'mul', сезонные_периоды = 12) .fit ()
test_predictions = fit_model.forecast (12) .rename ('HW M1045 White Forecast ')
test_predictions
Вот вывод моих прогнозов:
2018-05-01 NaN 2018-06-01 NaN 2018-07-01NaN 2018-08-01 NaN 2018-09-01 NaN 2018-10-01 NaN 2018-11-01 NaN 2018-12-01 NaN 2019-01-01 NaN 2019-02-01 NaN 2019-03-01 NaN 2019-04-01 NaN Freq: MS, имя: HW M1045 White Forecast, dtype: float64
Может кто-нибудь указать, что я пропустил?Кажется, это простая проблема с простым решением, но это пинает мою задницу.
Спасибо!