Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
本文重点介绍 AutoML 为提高预测回归模型的准确性而创建的基于日历的特征。 由于假日可能会对建模系统的行为方式产生强烈影响,因此节日前后的时间可能会偏向系列模式。 每个假日会在现有数据集上生成一个时段,学习者可向其分配效果。 这在假日等对特定产品产生高需求的场景中特别有用。 有关 AutoML 中预测方法的更多常规信息,请参阅方法概述文章。 有关在 AutoML 中训练预测模型的说明和示例,请参阅为时序预测设置 AutoML 一文。
作为特征工程的一部分,AutoML 将训练数据中提供的日期时间类型列转换为新的基于日历的特征列。 这些特征可帮助回归模型以多种节奏了解季节性模式。 AutoML 始终可根据时序的时间索引创建日历特征,因为这是训练数据中的必需列。 日历特征也由具有日期时间类型的其他列(如果存在)组成。 有关数据要求的详细信息,请参阅 AutoML 如何使用数据指南。
AutoML 考虑两类日历特征:完全基于日期和时间值的标准特征,以及特定于世界某个国家或地区的假日特征。 我们将在本文的其余部分介绍这些特征。
标准日历特征
下表显示了 AutoML 标准日历特征的完整集以及示例输出。 示例使用标准 YY-mm-dd %H-%m-%d
格式表示日期时间。
功能名称 | DESCRIPTION | 2011-01-01 00:25:30 的示例输出 |
---|---|---|
year |
表示日历年的数值特征 | 2011 |
year_iso |
表示 ISO 8601 中定义的 ISO 年份。 ISO 年从有星期四的第一周开始。 例如,如果 1 月 1 日是星期五,则 ISO 年从 1 月 4 日开始。 ISO 年可能不同于日历年。 | 2010 |
half |
指示日期在上半年还是下半年的特征。 如果日期在 7 月 1 日之前,则为 1,否则为 2。 | |
quarter |
表示给定日期所在季度的数值特征。 它采用值 1、2、3 或 4,表示日历年的第一、第二、第三、第四季度。 | 1 |
month |
表示日历月的数值特征。 它采用 1 到 12 的值。 | 1 |
month_lbl |
表示月份名称的字符串特征。 | “January” |
day |
表示月份日期的数值特征。 它采用 1 到 31 的值。 | 1 |
hour |
表示日期小时的数值特征。 它采用 0 到 23 的值。 | 0 |
minute |
表示小时内分钟数的数值特征。 它采用 0 到 59 的值。 | 二十五 |
second |
表示给定日期时间的秒的数值特征。 如果仅提供了日期格式,则假定为 0。 它采用 0 到 59 的值。 | 30 |
am_pm |
指示时间是上午还是下午的数值特征。 中午 12 点之前的时间为 0,中午 12 点之后的时间为 1。 | 0 |
am_pm_lbl |
指示时间是上午还是下午的字符串特征。 | “上午” |
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 8601 中定义的 ISO 周的数值特征。 ISO 周始终从星期一开始,到星期日结束。 它采用 1 到 52 的值;对于 1 月 1 日是星期四的年份,或者 1 月 1 日是星期三的闰年,采用 1 到 53 的值。 | 52 |
并非在所有情况下都可创建完整的标准日历特征集。 生成的集取决于时序的频率,还取决于训练数据在时间索引之外是否还包含日期时间特征。 下表显示了为不同列类型创建的特征:
列用途 | 日历功能 |
---|---|
时间索引 | 在完整集中去掉与其他特征高度相关的日历特征。 例如,如果时序频率为每日,则将移除频率比每日更加精细的任何特征,因为它们没有提供有用的信息。 |
其他日期时间列 | 由 Year 、Month 、Day 、DayOfWeek 、DayOfYear 、QuarterOfYear 、WeekOfMonth 、Hour 、Minute 和 Second 组成的缩减集。 如果列是不带时间的日期,则 Hour 、Minute 和 Second 将为 0。 |
假日特征
AutoML 可选择地创建表示特定国家或地区的假日的特征。 这些特征在 AutoML 中使用接受 country_or_region_for_holidays
的 参数进行配置。
注释
假日特征只能用于频率为每日的时序。
下表总结了假日频率:
功能名称 | DESCRIPTION |
---|---|
Holiday |
指定日期是国家假日还是区域性假日的字符串特征。 还会标记某个假日范围内的日期。 |
isPaidTimeOff |
如果该日期是给定国家或地区的“带薪休假假期”,则是采用值 1 的二进制特征。 |
AutoML 使用 Azure 开放数据集作为假日信息的来源。 有关详细信息,请参阅 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 预测滞后功能。
- 了解 AutoML 如何使用机器学习生成预测模型。