ошибка в функции ets.ExponentialSmoothing - PullRequest
0 голосов
/ 01 февраля 2020

Я пытаюсь выполнить прогноз HoltsWinter по набору данных, но я борюсь с форматом, который должен иметь мои данные.

1) Я хочу прогнозировать несколько временных рядов одновременно, используя групповой объект. 2) Я хочу сделать прогноз на следующие 3 месяца.

Я сделал это:

data1 = d1.merge(data3)
data1['Date'] =pd.to_datetime(data1['Date'])
data1 = data1[data1.Id.apply(lambda x: x.isnumeric())]
data2 = data1.groupby('Id').apply(lambda x: x.set_index('Date').resample('D').sum())['Quantity'].reset_index()


######################################################training model#######################################################

train = data1[(data1['Date'] <= '2019-08-01')]
test = data1[(data1['Date'] >= '2019-08-01')]


train_gp = train.sort_values('Date').groupby(['Id', 'Date'], as_index=False)
train_gp = train_gp.agg({'Quantity': ['mean']})
train_gp.columns = ['Id', 'Date', 'Quantity']



test_gp = test.sort_values('Date').groupby(['Id', 'Date'], as_index=False)
test_gp = test_gp.agg({'Quantity': ['mean']})
test_gp.columns = ['Id', 'Date', 'Quantity']

, что дает мне такую ​​таблицу (для данных поезда):

           Id       Date  Quantity
0      100121 2017-03-01       1.0
1      100121 2017-03-02      72.0
2      100121 2017-03-08       3.0
3      100121 2017-03-10      72.0
4      100121 2017-03-29      72.0
...       ...        ...       ...
52130  572000 2019-02-12       1.0
52131  572000 2019-03-13       5.0
52132  572000 2019-04-25       1.0
52133  572000 2019-06-04       2.0
52134  572000 2019-07-09       1.5

затем я применяю модель:

holtt = ExponentialSmoothing(train_gp, trend = 'additive', damped=False, seasonal= None).fit()
holtf = holtt.forecast(Steps=len(test_gp))
holtf = pd.DataFrame(holtf).set_index(test_gp.index)

и получаю ошибку:

ValueError: Pandas data cast to numpy dtype of object. Check input data with np.asarray(data).

Я знаю, что эта ошибка происходит из типа данных столбца «Дата», но Я не знаю, как это изменить.

У кого-нибудь есть предложения по этой модели прогнозирования и как решить эту ошибку?

...