Как рассчитать интервал прогнозирования? - PullRequest
0 голосов
/ 01 апреля 2020

Недавно я участвовал в проекте по прогнозированию будущих значений глюкозы в крови пациента. Я смог получить более низкое среднеквадратичное отклонение и MAE с помощью алгоритма повышения градиента. Но, хотя ошибка низкая, прогнозные и фактические значения имеют существенную разницу. Например, на изображении ниже синяя линия является действительной, в то время как оранжевая является предсказанной (с использованием алгоритма повышения градиента).

enter image description here

С приведенным выше прогнозом Понятно, что это не так точно. Поэтому я хотел предсказать интервал прогнозирования с верхней границей 0,9 и нижней границей 0,1, чтобы я мог сказать, что их следующие значения глюкозы будут l ie в пределах определенного диапазона c. В статье я видел, что они использовали алгоритм повышения градиента для прогнозирования интервалов с помощью функции потери квантиля. Код, который я набрал для прогнозирования интервалов прогнозирования, выглядит следующим образом:

LOWER_ALPHA = 0.1
UPPER_ALPHA = 0.9
lower_model = ensemble.GradientBoostingRegressor(loss="quantile",                   
                                alpha=LOWER_ALPHA)

upper_model = ensemble.GradientBoostingRegressor(loss="quantile",
                                alpha=UPPER_ALPHA)
lower_model.fit(X_train, y_train)
upper_model.fit(X_train, y_train)
predictions = pd.DataFrame(y_test)
predictions['lower'] = lower_model.predict(X_test)
predictions['upper'] = upper_model.predict(X_test)
plt.figure(figsize = (20,20))
plt.plot(predictions['lower'])
plt.plot(predicted)
plt.plot(predictions['upper'])

В результате я получил:

enter image description here

Но я чувствую, что сделал что-то не так. Поскольку разрыв между верхней и нижней границами очень велик, и для такого типа предсказания нам не нужно машинное обучение. Например, если мы посмотрим на первую точку, верхняя граница лежит где-то около 215, а нижняя граница - около 60. В результате я могу сказать, что следующее значение будет l ie в диапазоне 60-215. Что я сделал не так? И может ли кто-нибудь предложить лучший способ расчета интервала прогнозирования? Заранее спасибо.

...