使用 Amazon Forecast 进行时间序列预测

Amazon Forecast 是一项完全托管的服务,用于进行时间序列预测。使用 Amazon Forecast 无需具备任何机器学习经验,您只需要提供历史数据,以及您认为可能会影响预测结果的任何其他数据,Amazon Forecast 会自动检查这些数据,识别有意义的内容,并生成一个预测模型。

管理 AWS 资源

登录控制台

观看视频开始学习:


a. 将训练数据下载到您的计算机上并将其上传至您的 AWS 账户中的 Amazon Simple Storage Service (Amazon S3) 存储桶。

在本练习中,您将使用单个家庭电力消耗数据集。(Dua, D. 和 Karra Taniskidou, E.(2017).UCI 机器学习存储库 [http://archive.ics.uci.edu/ml]。Irvine, CA: University of California, School of Information and Computer Science。)我们将每小时汇总使用率数据。

示例数据下载 electricityusagedata.zip


b. 解压缩内容并将其作为 electricityusagedata.csv 保存在本地。


c. 将数据文件上传到 S3 存储桶。


a. 在 Amazon Forecast 主页中,选择 Create dataset group (创建数据集组)。


b. 在 Create dataset group (创建数据集组) 页面上,输入您的数据集组的名称, 并从 Forecasting domain 下拉菜单中,选择 Custom,然后下一步。


c. 在 Create target time series dataset 页面上,对于 Dataset details,提供以下信息:
Dataset name – 为您的数据集输入名称。

Frequency of your data – 保留默认值 1,并从下拉菜单中选择 hour 。

Data schema (数据架构) – 更新架构以匹配数据类型和顺序中的时间序列数据的列,本示例中,我们提供如下 schema:

{
   "Attributes": [
                {
                                                   "AttributeName": "timestamp",
                                                   "AttributeType": "timestamp"
                                         },
                                        {
                                                   "AttributeName": "target_value",
                                                   "AttributeType": "float"
                                         },
                                        {
                                                   "AttributeName": "item_id",
                                                   "AttributeType": "string"
                                         }
                    ]
}

d. 在 Import target time series 页面上,对于 Dataset import job details,请提供以下信息:

Dataset import job name – 为您的数据集输入名称。

Timestamp format – 保留默认值。格式必须与输入时间序列数据一致。

IAM role (IAM 角色) – 您可以让 Amazon Forecast 为您创建所需的 IAM 角色,方法为从下拉菜单中选择 Create a new role (创建新角色),然后按照屏幕上的说明进行操作。或者选择已创建好的 IAM 角色。

Data location (数据位置) – 使用以下格式输入您的 .csv 文件在 Amazon S3 上的位置:

s3://<name of your S3 bucket>/<folder path>/<filename.csv>

(单击以缩放)


e. 选择 Start import,跳转到 Dashboard 页面。数据导入需要几分钟时间完成。

(单击以缩放)


f. 当您的数据集已导入时,状态会转换为 Active,然后进入下一步。

(单击以缩放)


a. 进入 Dashboard 页面,在 Train a predictor 下,选择 Start。

(单击以缩放)


b. 在 Train predictor 页面上,对于 Predictor details,提供以下信息:

Predictor name – 为预测器输入名称。

Forecast horizon – 选择预测所涵盖的未来范围。此数字乘以您在 Step 1: Import the Training Data 中指定的数据输入频率 (hourly) 可确定对未来多久进行预测。在本示例中,将此数字设置为 36 以提供 36 小时的预测。

Forecast frequency – 保留默认值 1。从下拉菜单中,选择 hour。此设置必须与输入时间序列数据一致。

Algorithm selection – 保留默认值 Manual。从下拉菜单中,选择 Deep_AR_Plus 算法。

Country for holidays – 选择 United States。

点击 Train Predictor,开始训练模型。

(单击以缩放)


c. 此过程可能需要几分钟或更长时间。当您的预测器已经过训练时,状态会转换为 Active (活动)。

(单击以缩放)


a. 您的预测器完成训练后,您数据集组的 Dashboard 应与下面的内容类似:

在 Generate Forecast 下,选择 Start。此时将显示 Create a forecast 页面。

(单击以缩放)


b. 在 Create a forecas 页面上,对于 Forecast details,提供以下信息:

Forecast name – 输入预测的名称。

Predictor – 从下拉菜单中,选择您在 Step 2: Train a Predictor 中创建的预测器。

(单击以缩放)


c. 选择 Create a forecast。此时会显示该数据集组的 Dashboard (页面在 Forecast generation 下,您应看到 Forecast 生成的状态。此过程可能需要几分钟或更长时间。当您的 Forecast 已创建时,进度会转换为 Active。

(单击以缩放)


a. 在控制面板中,在 Generate forecasts 下,选择 Lookup forecast,进入 Forecast lookup 页面。


b. 在 Forecast lookup 页面上,对于 Forecast details,提供以下信息。

Forecast – 从下拉菜单中,选择您在 Step 3: Create a Forecast 中创建的预测。

Start date – 输入 2015/01/01。保持默认时间 00:00:00。

End date – 输入 2015/01/02。将时间更改为 12:00:00。

36 小时的日期范围对应于您在 Step 2: Train a Predictor 中指定的 Forecast horizon。

Choose which keys/filters – 选择 Add forecast key。

Forecast key – 从下拉菜单中选择 item_id。

Value – 从用电量数据的输入时间序列的 item_id 列中输入一个值。item_id(例如,client_21)标识包含在数据集中的特定客户端。

(单击以缩放)


c. 选择 Get Forecast。当显示预测时,查看对 client_21 的用电量需求的预测。

(单击以缩放)

恭喜您已经完成了本次练习,您已经掌握了对 Amazon Forecast 使用,并拥有了一个时序预测的模型。

接下来您可以使用自己的数据,尝试通过 Amazon Forecast 创建一个与您数据相关的时序预测模型。
您可以尝试多种算法,或者选择 AutoML,找到您数据最适合的算法。