Реальные приложения и планирование часто требуют вероятностных прогнозов.,а не простая точечная оценка. Вероятностные прогнозы также известны как интервалы прогноза или неопределенность прогноза.,Способен предоставить лицам, принимающим решения, представление о будущемиз Условия неопределенности лучшеизпознание。Традицияизмашинное Модели обучения, такие как линейная регрессия, случайный лес или машина повышения градиента и т. д., предназначены для получения единой средней оценки, но не могут напрямую дать числовой диапазон возможных результатов. Как точечная оценка распространяется на интервал прогноза, на чем именно фокусируются современные технологии моделирования временных рядов наиз Ключевые моменты.
В прогнозе Моделирование,Мы знаем, что цель Моделиза — дать объективную оценку условного среднего. Разница между расчетным значением и фактическим значением выборки называется ошибкой.,Он воплощает неопределенность Модельиз. Так,как Количественная Оценка А как насчет этой неопределенности? Поскольку ошибка представляет собой отклонение между расчетным значением и фактическим значением, мы можем Количественную, анализируя распределение ошибок? оценка Степень неопределенности из.
конформное предсказание(Conformal Прогнозирование (CP) — это метод прогнозирования, основанный на этой идее. Он использует исторические данные и дает оценку диапазона для этого нового прогноза на основе положения новой точки выборки прогноза в известном распределении ошибок, так что она попадает в этот диапазон с ожидаемым уровнем достоверности (например, 95%). Стоит отметить, что CP — это тип, который не имеет ничего общего с конкретным Алгоритмом Модели и может быть применен к любому машинному оборудованию. обучение Модель, от и расширить точечную оценку до интервала вероятностного прогнозирования.
Преимущество вероятностного прогнозирования состоит в том, что,Он не только дает прогнозы в среднем,Он также может предоставить соответствующиеизнеопределенность Количественная оценочная информация. Эта дополнительная информация о неопределенности очень важна для управления рисками, оптимизации принятия решений и т. д. применение имеет решающее значение. Например, в таких областях, как цепочка поставок и управление запасами.,Колебания спроса и риски можно взвесить с помощью вероятностных прогнозов.,Разработайте более надежные стратегии планирования.
Конформное предсказание - это непараметрический метод.,Используется для создания регионов прогнозирования с вероятностными гарантиями. Он не опирается на конкретные предположения о распределении вероятностей.,Но, вычисливданныеточкаиз“сходство”или“последовательность”генерировать прогнозы。Этот подход может быть применен к различным типамизвходитьданные(такие как непрерывные переменные、Классификационные теги、временные ряды и т. д.) и выходные данные (например, регрессия、Классификация、сортировка и др.).
В этом проекте реализован набор библиотек Python, включая различные алгоритмы, такие как вывод для регрессии, многоклассовая классификация и т. д., для поддержки применения конформного прогнозирования. Ключевые шаги включают в себя:
Эта структура позволяет пользователям предоставлять строгие вероятностные гарантии ошибок прогнозирования, сохраняя при этом производительность прогнозирования.
Конформная регрессия — эффективный метод получения интервалов прогнозирования. Процесс ее построения можно резюмировать в виде следующих шагов:
Преимущество конформной регрессии заключается в том, что это независимый от модели метаалгоритм, который можно применять к результатам любой модели регрессии машинного обучения, начиная от точечных оценок и заканчивая интервалами вероятностного прогнозирования. Ключевым моментом является использование распределения исторических ошибок для количественной оценки неопределенности новых прогнозов, предоставляя больше информации о неопределенности для процесса принятия решений.
Необходимо отметить, что из,Интервал прогнозирования, построенный с помощью конформной регрессии, является консервативным.,Его ширина будет варьироваться в зависимости от уровня достоверности.изувеличить за счет улучшения。В некоторых случаях чрезмерный консерватизм губителен.из Сценарии При применении можно рассмотреть другие методы коррекции для уменьшения ширины интервала. С другой стороны, конформную технологию можно распространить и на другие приложения, такие как классификация и обнаружение аномалий. обучение Задача。
конформное предсказаниеизструктура
Это используется в программе «Найти интервалы прогнозирования» изконформного. предсказание (CP) стратегия. Обратите внимание, что здесь не делается никаких предположений о спецификации модели и базовом распределении данных. КП Не связано с Моделью - работает с любой технологией Моделирование. конформное предсказание Технология Volodya Vovk、Alexander Gammerman и Craig Saunders(1999 Год) а также Harris Papadopoulos、Kostas Proedrou、Volodya Vovk и Alex Gammerman(2002 Год)предлагать。конформное Принцип работы предсказаниеалгоритмиз заключается в следующем:
На интервале прогнозирования NeuralProphet Есть три варианта: (i) Квантильная регрессия (QR) (ii) конформное предсказание (CP) (iii) конформный Квантильная регрессия (CQR)。
Вы будете следовать стандартному установщику pip install NeuralProphet
установить NeuralProphet。
!pip install neuralprophet
!pip uninstall numpy
!pip install git+https://github.com/ourownstory/neural_prophet.git numpy==1.23.5
Здесь мы будем загружать данные напрямую. Здесь изданные коллекции можно скачать напрямую в публичном аккаунте: dataSTUDIO. Искать здесь Открытый исходный код 23 Отличное измашинное обучающие сборники, доступные здесь.
%matplotlib inline
from matplotlib import pyplot as plt
import pandas as pd
import numpy as np
import logging
import warnings
logging.getLogger('prophet').setLevel(logging.ERROR)
warnings.filterwarnings("ignore")
# Получить данные: на публичном аккаунте: dataSTUDIO Серверный ответ Юн Дуоцзюнь
data = pd.read_csv('/bike_sharing_daily.csv')
data.tail()
Прокат велосипедовданные
Этот набор данных содержит многопараметрические данные, ежедневную информацию о спросе на аренду и другую информацию о погоде (например, температуру и скорость ветра). Нам нужно сделать самые основные изданные приготовления, чтобы провести Моделирование. Нейрон Пророк Требуемое имя столбца: ds
и y
。
# convert string to datetime64
data["ds"] = pd.to_datetime(data["dteday"])
df = data[['ds','cnt']]
df.columns = ['ds','y']
Используйте простой NeuralProphet Модель, включающая тенденции и сезонные закономерности, может также включать в себя другие компоненты, такие как AR, праздники и другие ковариаты.
from neuralprophet import NeuralProphet, set_log_level
cp_model = NeuralProphet(
yearly_seasonality=True,
weekly_seasonality=True,
daily_seasonality=False,
)
cp_model.set_plotting_backend("plotly-static")
конформное предсказаниеиликонформный Квантильная регрессиятехнологияизважныйиз Шаги заключаются в том, чтобытренироватьсяданныеразделен натренироватьсяданныеипроверятьданные,Данные проверки будут использоваться для построения статистики допусков.
df_train, df_test = cp_model.split_df(df, valid_p=0.2)
df_train, df_cal = cp_model.split_df(df_train, freq="D", valid_p=1.0 / 11)
[df_train.shape, df_test.shape, df_cal.shape]
# [(532, 2), (146, 2), (53, 2)]
Мы рисуем подмножество данных тремя цветами.
Мы используем данные проверки в качестве набора проверки модели.
metrics = cp_model.fit(df_train, validation_df=df_cal, progress="bar")
metrics.tail()
Затем мы можем делать прогнозы и прикреплять интервалы прогнозирования. Хотя NeuralProphet может автоматизировать CP, мы собираемся сделать это вручную, чтобы показать вам шаги.
Мы планируем создатьfuture
данныенабор,Долженданныенабор将在df
данныеиз Продолжение после последнего свидания 50 циклы。Долженданныенабор将包含Моделько всей историиданныеизпредсказывать,или者如果我们设定n_historic_predictions=40
,будет включать только 40 исторические точки данных и их прогнозируемые результаты.
NeuralProphet из CP Варианты: method=naive
。мы пройдем .conformal_prediction()
启用保形предсказывать。
future = cp_model.make_future_dataframe(df, periods=50,
n_historic_predictions=True)
# Parameter for naive conformal prediction
method = "naive"
alpha = 0.05
# Enable conformal prediction on the pre-trained models
cp_forecast = cp_model.conformal_predict(
# df_test, # You can also use df_test
future,
calibration_df=df_cal,
alpha=alpha,
method=method,
show_all_PI=True,
)
cp_forecast
Выходные данные содержат прогнозируемые значения yhat1
и верхний предел yhat1 + qhat1
。qhat1
Диапазон допуска определяется на основе данных калибровки.
от yhat1+qhat1
вычесть из yhat1
Вы можете получить qhat1
。это 1951.214 из Одно значение. Тогда мы сможем пройти yhat1
минус qhat1
Получите нижний предел.
cp_forecast['qhat1'] = cp_forecast['yhat1 + qhat1'] - cp_forecast['yhat1']
cp_forecast['yhat1 - qhat1'] = cp_forecast['yhat1'] - cp_forecast['qhat1']
cp_forecast
Постройте прогнозируемые значения и интервалы прогнозирования. Вы обнаружите, что CP всегда было фиксированным значением, и это верно для всех периодов. Оно добавляется или вычитается из прогнозируемого значения, чтобы получить верхнюю и нижнюю границы.
import matplotlib.pyplot as plt
plt.figure(figsize=(10,6))
#plot each series
plt.plot(df_train['ds'],df_train['y'], label='Training data')
plt.plot(df_cal['ds'],df_cal['y'], label='Calibration data')
plt.plot(df_test['ds'],df_test['y'], label='Test data')
plt.plot(cp_forecast['ds'],cp_forecast['yhat1'], label='Prediction')
plt.plot(cp_forecast['ds'],cp_forecast['yhat1 - qhat1'], label='Lower bound')
plt.plot(cp_forecast['ds'],cp_forecast['yhat1 + qhat1'], label='Upper bound')
plt.legend()
plt.title('Conformal prediction')
plt.xticks(rotation=45, ha='right')
# Draw a vertical dashed line
plt.axvline(x=df_test['ds'].tail(1), color='r', linestyle='--', linewidth=2)
plt.show()
конформное предсказание
Интервал допуска основан на фактическом значении калибровки.
В этой статье представлено конформное технология предсказания, обеспечивающая интервалы предсказания. конформное Конструкция предсказаниеиз не опирается на какие-либо предположения Модели и может быть применена к любой Модели. Кроме того, мы показали, что в NeuralProphet Создание интервалов прогнозированияизпример кода。Некоторые из вас, возможно, заметили,Интервалы прогнозирования имеют одинаковую длину во все периоды времени. в некоторых случаях,Другой интервал прогнозирования может иметь больше смысла.