#python #error-handling #mean #facebook-prophet
Вопрос:
Я определил MAPE, как показано ниже, и у меня есть только 2 столбца в наборе данных fbprophet (ds и y). Я могу заставить код работать нормально, пока не попробую добавить MAPE в свой код
def mean_absolute_percentage_error(y_true, y_pred):
y_true, y_pred = np.array(y_true), np.array(y_pred)
return np.mean(np.abs((y_true - y_pred) / y_true)) * 100
params_grid = {'seasonality_mode':('multiplicative','additive'),
'changepoint_prior_scale':[0.1,0.2,0.3,0.4,0.5],
'holidays_prior_scale':[0.1,0.2,0.3,0.4,0.5],
'n_changepoints' : [100,150,200]}
grid = ParameterGrid(params_grid)
cnt = 0
for p in grid:
cnt = cnt 1
print('Total Possible Models',cnt)
strt='2016-02-17'
end='2021-9-06'
model_parameters = pd.DataFrame(columns = ['MAPE','Parameters'])
for p in grid:
test = pd.DataFrame()
print(p)
random.seed(0)
train_model =Prophet(changepoint_prior_scale = p['changepoint_prior_scale'],
holidays_prior_scale = p['holidays_prior_scale'],
n_changepoints = p['n_changepoints'],
seasonality_mode = p['seasonality_mode'],
weekly_seasonality=True,
daily_seasonality = True,
yearly_seasonality = True,
holidays=holiday,
interval_width=0.95)
train_model.add_country_holidays(country_name='US')
train_model.fit(X_tr)
train_forecast = train_model.make_future_dataframe(periods=30, freq='D',include_history = False)
train_forecast = train_model.predict(train_forecast)
test=train_forecast[['ds','yhat']]
Actual = df3[(df3['ds']>strt) amp; (df3['ds']<=end)]
MAPE = mean_absolute_percentage_error(Actual['y'],abs(test['yhat']))
print('Mean Absolute Percentage Error(MAPE)------------------------------------',MAPE)
model_parameters = model_parameters.append({'MAPE':MAPE,'Parameters':p},ignore_index=True)
В итоге я получаю ошибку значения — ошибка значения: операнды не могут быть переданы вместе с фигурами (2028,) (30,) — и, похоже, это из-за последней строки формулы MAPE.