Функции календаря для прогнозирования временных рядов в AutoML
В этой статье рассматриваются функции на основе календаря, создаваемые AutoML для повышения точности моделей прогнозирования регрессии. Так как праздники могут иметь сильное влияние на поведение моделиированной системы, время до, во время и после праздника может предвзять шаблоны серии. Каждый праздник создает окно по существующему набору данных, которому учащийся может назначить эффект. Это может быть особенно полезно в таких сценариях, как праздники, которые создают высокие требования для конкретных продуктов. Дополнительные общие сведения о методологии прогнозирования в AutoML см. в этой статье . Инструкции и примеры для обучения моделей прогнозирования в AutoML можно найти в нашей статье по настройке AutoML для прогнозирования временных рядов .
В рамках проектирования функций AutoML преобразует столбцы типов даты и времени, предоставляемые в обучающих данных в новые столбцы функций на основе календаря. Эти функции могут помочь моделям регрессии узнать сезонные закономерности на нескольких частотах. AutoML всегда может создавать функции календаря из индекса времени временных рядов, так как это обязательный столбец в обучающих данных. Функции календаря также создаются из других столбцов с типом datetime, если они присутствуют. Узнайте, как AutoML использует руководство по данным для получения дополнительных сведений о требованиях к данным .
AutoML рассматривает две категории функций календаря: стандартные функции, основанные полностью на значениях даты и времени и функциях праздников, относящихся к стране или региону мира. Мы рассмотрим эти функции в оставшейся части статьи.
Стандартные функции календаря
В следующей таблице показан полный набор стандартных функций календаря AutoML вместе с примером выходных данных. В примере используется стандартный YY-mm-dd %H-%m-%d
формат представления datetime.
Имя функции | Description | Пример выходных данных для 2011-01-01 00:25:30 |
---|---|---|
year |
Числовая функция, представляющая календарный год | 2011 |
year_iso |
Представляет ISO-год, определенный в ISO 8601. Год в формате ISO начинается в первую неделю года, в которой есть четверг. Например, если 1 января является пятницей, ISO-год начинается 4 января. Годы ISO могут отличаться от календарных лет. | 2010 |
half |
Функция, указывающая, находится ли дата в первой или второй половине года. Это 1, если дата до 1 июля и 2 в противном случае. | |
quarter |
Числовые признаки, представляющие четверть заданной даты. Он принимает значения 1, 2, 3 или 4, представляющие первый, второй, третий, четвертый квартал календарного года. | 1 |
month |
Числовая функция, представляющая календарный месяц. Он принимает значения от 1 до 12. | 1 |
month_lbl |
Функция строки, представляющая имя месяца. | "Январь" |
day |
Числовая функция, представляющая день месяца. Он принимает значения от 1 до 31. | 1 |
hour |
Числовая функция, представляющая час дня. Он принимает значения от 0 до 23. | 0 |
minute |
Числовая функция, представляющая минуту в течение часа. Он принимает значения от 0 до 59. | 25 |
second |
Числовая функция, представляющая секунду заданного даты и времени. В случае, если указан только формат даты, предполагается значение 0. Он принимает значения от 0 до 59. | 30 |
am_pm |
Числовые признаки, указывающие, находится ли время утром или вечером. Это 0 раз до 12 вечера и 1 раз после 12 вечера. | 0 |
am_pm_lbl |
Функция строки, указывающая, находится ли время утром или вечером. | 'am' |
hour12 |
Числовая функция, представляющая час дня на 12 часов. Он принимает значения от 0 до 12 за первую половину дня и 1–11 для второй половины. | 0 |
wday |
Числовые признаки, представляющие день недели. Он принимает значения от 0 до 6, где 0 соответствует понедельнику. | 5 |
wday_lbl |
Функция строки, представляющая имя дня недели. | |
qday |
Числовые признаки, представляющие день в пределах квартала. Он принимает значения от 1 до 92. | 1 |
yday |
Числовая функция, представляющая день года. Он принимает значения 1–365 или 1–366 в случае високосного года. | 1 |
week |
Числовые признаки, представляющие неделю ISO, как определено в ISO 8601. Недели ISO всегда начинаются в понедельник и заканчиваются в воскресенье. Он принимает значения 1–52, или 53 в течение многих лет, имеющих 1-е января падение в четверг или на високосные годы, имея 1-й январь падение в среду. | 52 |
Полный набор стандартных функций календаря не может быть создан во всех случаях. Созданный набор зависит от частоты временных рядов и того, содержат ли обучающие данные функции datetime в дополнение к индексу времени. В следующей таблице показаны функции, созданные для различных типов столбцов:
Назначение столбцов. | Функции календаря |
---|---|
Индекс времени | Полный набор функций календаря минус, имеющих высокую корреляцию с другими функциями. Например, если частота временных рядов ежедневно, то любые функции с более детализированной частотой, чем ежедневно, будут удалены, так как они не предоставляют полезные сведения. |
Другой столбец datetime | Сокращенный набор, состоящий из Year , Month , DayOfWeek WeekOfMonth Day QuarterOfYear Hour DayOfYear Minute и .Second Если столбец является датой без времени, Hour и Minute Second значением будет 0. |
Функции праздников
AutoML может при необходимости создавать функции, представляющие праздники из определенной страны или региона. Эти функции настраиваются в AutoML с помощью country_or_region_for_holidays
параметра, который принимает код страны ISO.
Примечание.
Функции праздников можно сделать только для временных рядов с ежедневной частотой.
В следующей таблице приведены сведения о функциях праздников:
Имя функции | Description |
---|---|
Holiday |
Функция строки, указывающая, является ли дата национальным или региональным праздником. Дни в течение некоторого диапазона праздника также отмечены. |
isPaidTimeOff |
Двоичная функция, которая принимает значение 1, если день является "платным отпуском" в данной стране или регионе. |
AutoML использует наборы данных Azure Open Dataset в качестве источника сведений о празднике. Дополнительные сведения см. в документации PublicHolidays .
Чтобы лучше понять поколение функций праздников, рассмотрим следующие примеры данных:
Чтобы сделать американские функции праздников для этих данных, мы зададим country_or_region_for_holiday
значение "US" в параметрах прогноза , как показано в следующем примере кода:
from azure.ai.ml import automl
# create a forcasting job
forecasting_job = automl.forecasting(
compute='test_cluster', # Name of single or multinode AML compute infrastructure created by user
experiment_name=exp_name, # name of experiment
training_data=sample_data,
target_column_name='demand',
primary_metric='NormalizedRootMeanSquaredError',
n_cross_validations=3,
enable_model_explainability=True
)
# set custom forecast settings
forecasting_job.set_forecast_settings(
time_column_name='timeStamp',
country_or_region_for_holidays='US'
)
Созданные функции праздников выглядят следующим образом:
Обратите внимание, что созданные функции имеют префикс _automl_
, предустановленный к их именам столбцов. AutoML обычно использует этот префикс для отличия входных функций от инженерных функций.
Следующие шаги
- Узнайте больше о настройке AutoML для обучения модели прогнозирования временных рядов.
- Ознакомьтесь с часто задаваемыми вопросами по прогнозу AutoML.
- Узнайте о функциях автоматического прогнозирования отложенных функций.
- Узнайте, как AutoML использует машинное обучение для создания моделей прогнозирования.