Конформное прогнозирование для вероятностного прогнозирования временных рядов
Конформное прогнозирование для вероятностного прогнозирования временных рядов
Ранее мы представилиДля прогнозирования вероятности временных рядов

Реальные приложения и планирование часто требуют вероятностных прогнозов.,а не простая точечная оценка. Вероятностные прогнозы также известны как интервалы прогноза или неопределенность прогноза.,Способен предоставить лицам, принимающим решения, представление о будущемиз Условия неопределенности лучшеизпознание。Традицияизмашинное Модели обучения, такие как линейная регрессия, случайный лес или машина повышения градиента и т. д., предназначены для получения единой средней оценки, но не могут напрямую дать числовой диапазон возможных результатов. Как точечная оценка распространяется на интервал прогноза, на чем именно фокусируются современные технологии моделирования временных рядов наиз Ключевые моменты.

В прогнозе Моделирование,Мы знаем, что цель Моделиза — дать объективную оценку условного среднего. Разница между расчетным значением и фактическим значением выборки называется ошибкой.,Он воплощает неопределенность Модельиз. Так,как Количественная Оценка А как насчет этой неопределенности? Поскольку ошибка представляет собой отклонение между расчетным значением и фактическим значением, мы можем Количественную, анализируя распределение ошибок? оценка Степень неопределенности из.

конформное предсказание(Conformal Прогнозирование (CP) — это метод прогнозирования, основанный на этой идее. Он использует исторические данные и дает оценку диапазона для этого нового прогноза на основе положения новой точки выборки прогноза в известном распределении ошибок, так что она попадает в этот диапазон с ожидаемым уровнем достоверности (например, 95%). Стоит отметить, что CP — это тип, который не имеет ничего общего с конкретным Алгоритмом Модели и может быть применен к любому машинному оборудованию. обучение Модель, от и расширить точечную оценку до интервала вероятностного прогнозирования.

Преимущество вероятностного прогнозирования состоит в том, что,Он не только дает прогнозы в среднем,Он также может предоставить соответствующиеизнеопределенность Количественная оценочная информация. Эта дополнительная информация о неопределенности очень важна для управления рисками, оптимизации принятия решений и т. д. применение имеет решающее значение. Например, в таких областях, как цепочка поставок и управление запасами.,Колебания спроса и риски можно взвесить с помощью вероятностных прогнозов.,Разработайте более надежные стратегии планирования.

Что такое конформное предсказание

Конформное предсказание - это непараметрический метод.,Используется для создания регионов прогнозирования с вероятностными гарантиями. Он не опирается на конкретные предположения о распределении вероятностей.,Но, вычисливданныеточкаиз“сходство”или“последовательность”генерировать прогнозы。Этот подход может быть применен к различным типамизвходитьданные(такие как непрерывные переменные、Классификационные теги、временные ряды и т. д.) и выходные данные (например, регрессия、Классификация、сортировка и др.).

технический анализ

В этом проекте реализован набор библиотек Python, включая различные алгоритмы, такие как вывод для регрессии, многоклассовая классификация и т. д., для поддержки применения конформного прогнозирования. Ключевые шаги включают в себя:

  • Подготовка обучающего набора: сначала,Предварительная обработка данных,И разделите его на обучающий набор и набор проверки.
  • Создайте базовую модель. Используйте обучающий набор для обучения базовой модели прогнозирования (например, линейной регрессии, дерева решений или нейронной сети).
  • Рассчитать оценку несоответствия: для каждого образца набора валидации.,Создавайте прогнозы с помощью модели,И рассчитайте его оценку несоответствия фактическому наблюдаемому значению.
  • Определите порог: сортируя эти оценки несоответствия и применяя α-уровень, определите порог для деления интервала прогнозирования.
  • Фаза прогнозирования: для новых непомеченных данных,Сгенерируйте интервалы прогнозирования на основе этого порога.

Эта структура позволяет пользователям предоставлять строгие вероятностные гарантии ошибок прогнозирования, сохраняя при этом производительность прогнозирования.

Сценарии применения

  • Оценка финансовых рисков: в кредитном скоринге,Может предсказать будущую вероятность дефолта,и дайте доверительный интервал,Помогите финансовым учреждениям принимать более взвешенные решения.
  • Медицинский диагноз: в медицинском прогнозировании,Может оценить диапазон эффектов лечения,Предоставьте врачам более полную информацию.
  • Прогнозирование рыночных тенденций. В деловой среде можно спрогнозировать объем продаж или цены на акции, что является надежным ориентиром для разработчиков стратегии.

Функции

  • Гибкость: подходит для различных типов задач прогнозирования.
  • Интерпретируемость: предоставление интервалов прогнозирования помогает понять неопределенность.
  • Никаких предположений: нет необходимости делать предположения об основном распределении данных, что расширяет возможности обобщения.
  • Гарантия вероятности: Да Количественная коэффициент ошибок определения, повышение надежности прогнозирования.

Конформная регрессия — эффективный метод получения интервалов прогнозирования. Процесс ее построения можно резюмировать в виде следующих шагов:

  1. Рассчитать ошибки сначала вычислите ошибку прогнозирования для каждой точки выборки в истории данных.,То есть абсолютная разница между прогнозируемым значением и истинным значением. Затем отсортируйте эти значения ошибок от меньшего к большему.
  2. Определить пороги ошибок в отсортированном распределении ошибок,Выберите критическое значение,Сделайте долю ошибок меньше или равной критическому значению, равному ожидаемому уровню достоверности (например, 95%). Это критическое значение считается максимально допустимой ошибкой прогнозирования.
  3. Создание интервалов прогнозирования Для новой прогнозируемой точки выборки ее интервал прогнозирования устанавливается равным [прогнозируемое значение – критическое значение ошибки,Прогнозируемое значение + критическое значение ошибки]. Выбирайте в соответствии с критическим значением ошибки из,Интервал прогнозирования может содержать истинное значение с ожидаемым уровнем достоверности (например, 95%).

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

Необходимо отметить, что из,Интервал прогнозирования, построенный с помощью конформной регрессии, является консервативным.,Его ширина будет варьироваться в зависимости от уровня достоверности.изувеличить за счет улучшения。В некоторых случаях чрезмерный консерватизм губителен.из Сценарии При применении можно рассмотреть другие методы коррекции для уменьшения ширины интервала. С другой стороны, конформную технологию можно распространить и на другие приложения, такие как классификация и обнаружение аномалий. обучение Задача。

конформное предсказаниеизструктура

Это используется в программе «Найти интервалы прогнозирования» изконформного. предсказание (CP) стратегия. Обратите внимание, что здесь не делается никаких предположений о спецификации модели и базовом распределении данных. КП Не связано с Моделью - работает с любой технологией Моделирование. конформное предсказание Технология Volodya Vovk、Alexander Gammerman и Craig Saunders(1999 Год) а также Harris Papadopoulos、Kostas Proedrou、Volodya Vovk и Alex Gammerman(2002 Год)предлагать。конформное Принцип работы предсказаниеалгоритмиз заключается в следующем:

  • Разделите данные исторических временных рядов на периоды обучения.、Период калибровки и период тестирования.
  • Модель обучения на основе данных обучения.
  • Делайте прогнозы на основе калиброванных данных, используя обученную модель. Затем постройте гистограмму ошибки прогнозирования и определите уровни допуска, как показано на рисунке (A).
  • Добавляйте и вычитайте интервалы допуска к любой будущей точечной оценке.,Включает среду тестовых данных с прогнозами.,для обеспечения интервалов прогнозирования.

Экологические требования

На интервале прогнозирования NeuralProphet Есть три варианта: (i) Квантильная регрессия (QR) (ii) конформное предсказание (CP) (iii) конформный Квантильная регрессия (CQR)。

Вы будете следовать стандартному установщику pip install NeuralProphet установить NeuralProphet。

Язык кода:javascript
копировать
!pip install neuralprophet
!pip uninstall numpy
!pip install git+https://github.com/ourownstory/neural_prophet.git numpy==1.23.5

данные

Здесь мы будем загружать данные напрямую. Здесь изданные коллекции можно скачать напрямую в публичном аккаунте: dataSTUDIO. Искать здесь Открытый исходный код 23 Отличное измашинное обучающие сборники, доступные здесь.

Язык кода:javascript
копировать
%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

Язык кода:javascript
копировать
# convert string to datetime64
data["ds"] = pd.to_datetime(data["dteday"])
df = data[['ds','cnt']]
df.columns = ['ds','y']

Моделирование

Используйте простой NeuralProphet Модель, включающая тенденции и сезонные закономерности, может также включать в себя другие компоненты, такие как AR, праздники и другие ковариаты.

Язык кода:javascript
копировать
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")

Данные по обучению, проверке и тестированию

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

Язык кода:javascript
копировать
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)]

Мы рисуем подмножество данных тремя цветами.

Мы используем данные проверки в качестве набора проверки модели.

Язык кода:javascript
копировать
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()启用保形предсказывать。

Язык кода:javascript
копировать
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 + qhat1qhat1 Диапазон допуска определяется на основе данных калибровки.

от yhat1+qhat1вычесть из yhat1Вы можете получить qhat1。это 1951.214 из Одно значение. Тогда мы сможем пройти yhat1минус qhat1 Получите нижний предел.

Язык кода:javascript
копировать
cp_forecast['qhat1'] = cp_forecast['yhat1 + qhat1'] - cp_forecast['yhat1'] 
cp_forecast['yhat1 - qhat1'] = cp_forecast['yhat1'] - cp_forecast['qhat1']
cp_forecast

Постройте прогнозируемые значения и интервалы прогнозирования. Вы обнаружите, что CP всегда было фиксированным значением, и это верно для всех периодов. Оно добавляется или вычитается из прогнозируемого значения, чтобы получить верхнюю и нижнюю границы.

Язык кода:javascript
копировать
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 Создание интервалов прогнозированияизпример кода。Некоторые из вас, возможно, заметили,Интервалы прогнозирования имеют одинаковую длину во все периоды времени. в некоторых случаях,Другой интервал прогнозирования может иметь больше смысла.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose