时序预测
- 请参考数据集章节,将本地的时序数据导入至模型训练服务。
本节以数据集“KPI”,数据实例“data”为例,进行后续操作说明。数据集data一共有6列特征,分别为time、col_1、col_2、col_3、col_4、col_5。其中“time”为时间列,后面五列为KPI特征列。
- 在项目概览界面,单击菜单栏中的“特征工程”,进入“特征工程”界面。
- 单击界面右上角的“特征处理”,弹出“特征处理”对话框。
请根据实际情况,配置如下参数:
- 工程名称:特征工程名称。
- 开发模式:请选择“Jupyterlab交互式开发”。
- 规格:选择Jupyterlab环境部署的容器规格大小。时序预测也会推荐使用深度学习算法,建议选择大规格“8核|32G”,否则模型训练时长会达到1小时。
- 实例:从下拉框中选择“新建一个环境”。
- 单击“创建”,等待Jupyterlab环境创建完成,约需要2分钟。
- 等待Jupyterlab环境创建完成后,单击特征工程所行,对应操作列的图标。
进入Jupyterlab环境的“Launcher”页签。如果当前没有打开“Launcher”页签,可通过单击界面左上角菜单中的“File > New Launcher”,打开“Launcher”页签。
- 在“Launcher”页签,单击“LearnWare”下方的“时序预测”,弹出“新建”对话框。
- 输入学件名称,示例为“KPI”,单击“确定”。
进入“KPI.ipynb”文件界面,如图1所示。
- 单击代码框左侧的图标,导入算法依赖的模型训练服务SDK。
- 单击界面左下方的“加载数据”,界面新增“加载数据”内容。
配置如下参数:
- 训练数据集:从下拉框中选择“KPI”。
- 训练数据集实例:从下拉框中选择“data”。
- 载入测试数据方式:本次数据集界面中仅上传了一份数据集data,需要选择“从训练数据分割”,并设置“测试数据分割量”,即从训练集的数据尾部,分割出去的数据比例,示例为“0.2”。如果用户在数据集界面同时上传了训练集和测试集,可以选择“从数据集读入”,并相应选择“测试数据集”和“测试数据集实例”即可。
- 单击“加载数据”左侧的图标,加载训练集和测试集。
运行完成后,可以在下方看到展示的“训练数据”和“测试数据”内容。
- 单击界面左下方的“预测场景需求”,界面新增“预测场景需求”内容。
参数说明如下所示:
- 目标列:单击配置框右侧的图标,在弹出的“目标列”对话框中,同时选中“未选择列”区域的5列特征col_1、col_2、col_3、col_4、col_5,单击,将5列特征移至“已选择列”区域。单击“确认”,完成参数设置。
- 时间列:参考“目标列”的操作,将“时间列”设置为数据集中的时间列,本次数据集的时间列为“time”。
- 预测长度:预测的样本数量,默认值“1”。例如当前数据是按小时采集的3000条样本数据,如果想通过模型预测未来1天的样本数据,因为按小时采集,所以为24条数据,那么“预测长度”需要配置为“24”。
- 预测粒度:保持默认值。
- 预测类型:取值说明如下所示。本次请选择“时空预测”。
- 时序预测:如果选择“时序预测”,“目标列”仅支持设置为单列。
- “节假日/重大事件预测”:如果选择“节假日/重大事件预测”,“目标列”仅支持设置为单列。如果选择此项,界面会新增配置参数“节假日/重大事件信息配置”,单击参数配置框右侧的图标。在弹出的“节假日/重大事件信息配置”对话框中,配置一条或者多条节假日或者重大事件的开始时间、结束时间及其相应的标记,可单击“标记”右侧的问号,查看其含义。
- 时空预测:如果选择“时空预测”,“目标列”支持设置为多列。
- 平台性能:与创建特征工程时,即2中设置的JupyterLab平台规格大小有关,如果规格大,可以选择“优”或“良”;如果选择的小规格“2核|8G”,则选择“差”。本次规格选择的是“8核|32G”,配置为“良”即可。
- 单击“预测场景需求”左侧的图标,录入预测所需参数。
- 单击界面左下方的“数据预处理”,界面新增“数据预处理”内容。
对数据进行自动填充空值、平滑处理、去除异常点等数据预处理操作。运行完成后,可以看到每个KPI的图形展示情况。
- 单击界面左下方的“特征画像”,界面新增“特征画像”内容。
特征画像的作用,就是对数据进行分析,把其中一些基本特征提取出来,如:周期性、离散度、时序规律、最值、采样频率等,计算KPI曲线特点(包括周期性、趋势性、噪声、离散性、随机性等)。根据计算的曲线特点,判断KPI的大类别(毛刺型、阶梯型、周期型、离散型、稀疏型、多模态型等)。这些类别,对应到后面的特征选择、算法推荐,会有不同的策略,有效提升模型的构建效率。
- 单击“特征画像”左侧的图标,运行代码。
运行完成后,5个KPI指标以页签方式,展示各自的原始数据及其密度分布图。运行结果右侧的参数说明,如表1所示。
- 单击界面左下方的“可预测性评估”,界面新增“可预测性评估”内容。
当前算子会参考前面生成的特征画像,评估当前数据是否可执行预测。
- 单击“可预测性评估”左侧的图标,运行代码。
代码运行完成后,会以列表的形式展示KPI的评估结果。如果评估结果良好,可以继续执行后面的操作。
- 单击界面左下方的“算法选择”,界面新增“算法选择”内容。
这里会结合前面的算子“预测场景需求”、“特征画像”和“可预测性评估”的运行结果,综合评估推荐出最适合的预测算法,并利用超参优化,对推荐出的模型进行超参寻优。
- 单击“算法选择”左侧的图标,完成算法选择。
代码运行过程中,下方会不断的打印运行日志。代码运行完成后,可以看到“算法推荐”信息。
- 单击界面左下方的“模型训练”,界面新增“模型训练”内容。
- 单击“模型训练”左侧的图标,进行模型训练。
这里会使用data数据集和推荐的算法进行模型训练,代码运行完成后,会生成KPI时序预测模型并保存。
- 单击“模型训练”左下方的“模型评估”,新增“模型评估”内容。
- 单击“模型评估”左侧的图标,进行模型评估。
参数说明如下所示:
评估方法:预置了四种模型评估方法,可根据实际情况选择。如果这些评估方法不满足用户诉求,可单击代码框右侧的图标,切换成代码视图,将method改为自定义评估函数即可。
- 单击“模型评估”左侧的图标,对模型性能进行评估。
- 代码运行完成后,会以图的形式展示每个KPI的样本值和预测值。