Поделиться через


Обзор методов прогнозирования в AutoML

В этой статье описываются методы, которые AutoML в Машинное обучение Azure использует для подготовки данных временных рядов и создания моделей прогнозирования. Инструкции и примеры моделей прогнозирования обучения в AutoML см. в разделе "Настройка AutoML для прогнозирования временных рядов".

Методы прогнозирования в AutoML

AutoML использует несколько методов для прогнозирования значений временных рядов. Эти методы могут быть примерно назначены двум категориям:

  • Модели временных рядов, использующие исторические значения целевого количества для прогнозирования в будущем
  • Регрессия или пояснительные модели, использующие переменные прогнозатора для прогнозирования значений целевого объекта

Предположим, вам нужно прогнозировать ежедневный спрос на конкретный бренд апельсинового сока из продуктового магазина. Для выражения позвольте $y_t$ представить спрос на этот бренд в день $t$. Модель временных рядов прогнозирует спрос на $t+1$ с помощью некоторой функции исторического спроса со следующим выражением:

$y_{t+1} = f(y_t, y_{t-1}, \ldots, y_{t-s})$

Функция $f$ часто имеет параметры, настроенные с помощью наблюдаемого спроса из прошлого. Объем истории, который $f$ использует для прогнозирования, $s$, также можно рассматривать как параметр модели.

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

$y = g(\text{price}, \text{день недели}, \text{holiday})$

Опять же, функция $g$ обычно имеет набор параметров, включая значения, которые управляют нормализацией, которая настраивает AutoML с использованием прошлых значений спроса и прогнозаторов. Вы опустите $t$ из выражения, чтобы подчеркнуть, что модель регрессии использует корреляционные шаблоны между контемпорно определенными переменными для прогнозирования. Чтобы предсказать $y_{t+1}$ от $g$, необходимо знать, какой день недели соответствует $t+1$, является ли день праздником, а цена апельсинового сока в день $t+1$. Первые два фрагмента информации легко определить с помощью календаря. Розничная цена обычно устанавливается заранее, поэтому цена апельсинового сока, вероятно, также известна в один день заранее. Тем не менее, цена может быть не известна 10 дней в будущем. Важно понимать, что полезность этой регрессии ограничена тем, насколько далеко в будущем вам нужны прогнозы, также называемые горизонтом прогнозирования, и в какой степени вы знаете будущие значения прогнозаторов.

Внимание

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

Модели прогнозирования регрессии AutoML также можно дополнить для использования исторических значений целевых и прогнозаторов. Результатом является гибридная модель с характеристиками модели временных рядов и чистой регрессии. Исторические величины — это дополнительные переменные прогнозатора в регрессии, называемые отложенными числами. Порядок задержки ссылается на то, как далеко назад известно значение. Например, текущее значение задержки заказа-два целевого объекта для примера спроса на оранжевый сок является наблюдаемым спросом на сок с двух дней назад.

Еще одно заметное различие между моделями временных рядов и моделями регрессии заключается в том, как они создают прогнозы. Отношения рекурсии обычно определяют модели временных рядов, которые создают прогнозы по одному за раз. Чтобы прогнозировать много периодов в будущем, они итерируют до горизонта прогнозирования, кормя предыдущие прогнозы обратно в модель, чтобы создать следующий прогноз на один период по мере необходимости. Напротив, модели регрессии считаются прямыми прогнозировщиками, которые создают все прогнозы до горизонта в одной попытке. Прямые прогнозировщики могут быть предпочтительнее рекурсивных методов, так как рекурсивные модели составной ошибки прогнозирования при отправке предыдущих прогнозов обратно в модель. Если включены функции задержки, AutoML вносит некоторые важные изменения в обучающие данные, чтобы модели регрессии могли функционировать в качестве прямых прогнозировщиков. Дополнительные сведения см. в разделе "Функции задержки" для прогнозирования временных рядов в AutoML.

Модели прогнозирования в AutoML

AutoML в Машинное обучение реализует следующие модели прогнозирования. Для каждой категории модели перечислены примерно в порядке сложности шаблонов, которые они могут включать, также известные как емкость модели. Наивная модель, которая просто прогнозирует последнее наблюдаемое значение, имеет низкую емкость, в то время как темпоральная сверточная сеть (TCNForecaster), глубокая нейронная сеть (DNN) с потенциально миллионами параметров, имеет высокую емкость.

Модели временных рядов Модели регрессии
Наивный, сезонный наивный, средний, сезонный средний, ARIMA(X), экспоненциальное сглаживание Линейный КОД, LARS LASSO, Эластичная сеть, Пророк, K ближайших соседей, дерево принятия решений, случайный лес, чрезвычайно случайные деревья, Градиент увеличенные деревья, LightGBM, XGBoost, TCNForecaster

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

Примечание.

Существует два важных предостережения для ансамблей модели прогнозирования:

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

Как AutoML использует данные

AutoML принимает данные временных рядов в табличном формате "широкий". Каждая переменная должна иметь собственный соответствующий столбец. AutoML требует, чтобы один столбец был осью времени для задачи прогнозирования. Этот столбец должен быть синтаксический анализ в тип datetime. Самый простой набор данных временных рядов состоит из столбца времени и числового целевого столбца. Целевой объект — это переменная, которую вы планируете прогнозировать в будущем. В следующей таблице показаны примеры значений для этого формата:

TIMESTAMP quantity
2012-01-01 100
2012-01-02 97
2012-01-03 106
... ...
2013-12-31 347

В более сложных случаях набор данных может содержать другие столбцы, выровненные с индексом времени:

TIMESTAMP Номер SKU цена Рекламируется quantity
2012-01-01 СОК1 3.5 0 100
2012-01-01 ХЛЕБ3 5.76 0 47
2012-01-02 СОК1 3.5 0 97
2012-01-02 ХЛЕБ3 5.5 1 68
... ... ... ... ...
2013-12-31 СОК1 3,75 % 0 347

Второй пример включает номер SKU, розничную цену и флаг, указывающий, был ли элемент объявлен в дополнение к метке времени и целевому количеству. Второй набор данных показывает две серии: один для SKU JUICE1 и один для номера SKU BREAD3. Столбец SKU — это столбец идентификатора временных рядов, так как группирование по этим значениям столбцов создает две группы, каждая из которых содержит одну серию. Перед очисткой модели AutoML выполняет базовую проверку входной конфигурации и данных и добавляет инженерные функции.

Требования к длине данных

Чтобы обучить модель прогнозирования, необходимо иметь достаточное количество исторических данных. Это пороговое значение зависит от конфигурации обучения. Если вы предоставляете данные проверки, минимальное количество наблюдений, необходимых для каждого временных рядов, выражается следующим образом:

$T_{\text{user validation}} = H + \text{max}(l_{\text{max}}, s_{\text{window}}) + 1$

В этом выражении $H$ — это горизонт прогнозирования, $l_{\text{max}}$ — максимальный порядок задержки, а $s_{\text{window}}$ — размер окна для скользящей агрегатной функции. При использовании перекрестной проверки минимальное количество наблюдений выражается следующим образом:

$T_{\text{CV}} = 2H + (n_{\text{CV}} - 1) n_{\text{step}} + \text{max}(l_{\text{max}}, s_{\text{окно}}) + 1$

В этой версии $n_{\text{CV}}$ — это количество сверток перекрестной проверки и $n_{\text{step}} $ — это размер шага CV или смещение между свертками CV. Основная логика этих формул заключается в том, что у вас всегда должен быть по крайней мере горизонт обучающих наблюдений для каждого временных рядов, включая некоторые отставания для задержек и перекрестной проверки разбиения. Дополнительные сведения о перекрестной проверке для прогнозирования см. в разделе "Выбор модели" в AutoML.

Обработка отсутствующих данных

Для моделей временных рядов в AutoML требуется регулярное пространство наблюдений за временем, включая такие случаи, как ежемесячные или ежегодные наблюдения, в которых количество дней между наблюдениями может отличаться. Перед запуском процесса моделирования AutoML должен убедиться, что отсутствуют отсутствующие значения рядов и что наблюдения являются регулярными. В результате существует два отсутствующих случая данных:

  • Значение отсутствует для некоторых ячеек в табличных данных.
  • Строка отсутствует, которая соответствует ожидаемому наблюдению с учетом частоты временных рядов.

В первом случае AutoML вменяет отсутствующие значения с помощью распространенных настраиваемых методов. В следующей таблице показан пример ожидаемой строки, которая отсутствует:

TIMESTAMP quantity
2012-01-01 100
2012-01-03 106
2012-01-04 103
... ...
2013-12-31 347

Эта серия якобы имеет ежедневную частоту, но нет наблюдения за 2 января 2012 года (2012-01-02). В этом случае AutoML пытается заполнить данные, добавив новую строку для отсутствующих значений. Новое значение для quantity столбца и других столбцов в данных затем вменяются, как и другие отсутствующие значения. Чтобы выполнить этот процесс, AutoML должен распознать частоту рядов, чтобы быть в состоянии заполнить пробелы наблюдения, как показано в этом случае. AutoML автоматически обнаруживает эту частоту или, при необходимости, пользователь может предоставить его в конфигурации.

Метод оцепления для предоставления отсутствующих значений можно настроить в входных данных. В следующей таблице перечислены методы по умолчанию:

Тип столбца Метод импутации по умолчанию
Назначение Переадресация (последнее наблюдение, перенесенное вперед)
Числовые функции Значение медиана

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

Автоматизированное конструирование признаков

AutoML обычно добавляет новые столбцы в пользовательские данные для повышения точности моделирования. Инженерные функции могут включать элементы по умолчанию или необязательные элементы.

Функции, разработанные по умолчанию:

  • Функции календаря, производные от индекса времени, например дня недели
  • Категориальные признаки, производные от идентификаторов временных рядов
  • Кодировка категориальных типов числовым типом

Необязательные инженерные функции:

Вы можете настроить признаки из пакета SDK autoML с помощью класса ForecastingJob или из веб-интерфейса Студия машинного обучения Azure.

Обнаружение и обработка нестационарных временных рядов

Временный ряд, в котором изменение среднего и дисперсии с течением времени называется нестановным. Временные ряды, которые демонстрируют стохастические тенденции, являются нестационарными по природе.

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

Схема, показывающая розничные продажи для нестационарных временных рядов.

На следующем рисунке показана диаграмма, которая отображает исходную серию в первых различиях, $\Delta y_{t} = y_t - y_{t-1}$. Среднее значение ряда является примерно константой в течение диапазона времени, в то время как дисперсии, как представляется, различаются. В этом сценарии показан пример последовательности времени первого порядка:

Схема, показывающая розничные продажи для слабо неустанных временных рядов.

Модели регрессии AutoML не могут по сути справиться с стохастических тенденций или другими известными проблемами, связанными с нестационарными временными рядами. В результате точность прогноза вне выборки может быть плохой при наличии таких тенденций.

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

Очистка модели

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

Модели ранжируются на основе метрик проверки или перекрестной проверки, а затем, при необходимости, первые модели можно использовать в модели ансамбля. Лучшая модель или любая из обученных моделей может быть проверена, скачанна или развернута для создания прогнозов по мере необходимости. Дополнительные сведения см. в разделе " Очистка моделей" и выбор для прогнозирования в AutoML.

Группирование моделей

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

По умолчанию прогнозирование AutoML использует смешанный подход к группировке моделей. Модели временных рядов, а также ARIMAX и Пророк, назначьте одну серию одной группе и другим моделям регрессии назначьте все ряды одной группе.

Вот как каждый тип модели использует группы:

  • Каждая серия в отдельной группе (1:1): наивный, сезонный наивный, средний, сезонный средний, экспоненциальный сглаживание, ARIMA, ARIMAX, Пророк

  • Все ряды в одной группе (N:1): линейный КОД, LARS LASSO, Elastic Net, K ближайшие соседи, дерево принятия решений, случайный лес, чрезвычайно случайные деревья, градиентные увеличенные деревья, LightGBM, XGBoost, TCNForecaster

Более общие группы моделей можно использовать с помощью множества моделей в AutoML. Дополнительные сведения см. в статье "Многие модели — записная книжка автоматизированного машинного обучения".