了解时序模型的要求(数据挖掘中级教程)

准备要在预测模型中使用的数据时,必须确保数据包含可用于标识时序中的步长的列。 该列将被指定为 Key Time 列。 由于这是一个键列,所以列中必须包含唯一数值。

Key Time 列选择正确的单位是分析中的一个重要部分。 例如,假设您的销售数据每分钟刷新一次。 您不必以分钟作为时序单位;按天、周甚至是月来汇总销售数据可能更有意义。 如果您对要使用的时间单位没有把握,则可为每个聚合都创建一个新的数据源视图,并且生成相关模型,以便查看在聚合的每个级别是否会显现不同的趋势。

对于本教程,每天都在销售事务数据库中收集销售数据;但对于数据挖掘,则使用一个视图按月预先聚合数据。

另外,为提高分析的准确性,数据中的空白越少越好。 如果计划分析多个数据序列,所有序列的开始和结束日期应尽量保持相同。 如果序列在其起始位置和结束位置之外的地方存在空白,则可以使用 MISSING_VALUE_SUBSTITUTION 参数来填充该序列。 Analysis Services 还提供了多个选项,用于将缺失的数据替换为值,例如使用均值或常量。

警告

PivotChart 和 PivotTable 工具原来包括在较早版本的数据源视图设计器中,现已不再提供。 建议使用 Integration Services 中包含的数据探查器等工具,预先确定时序数据中的差距。

标识预测模型的时间键

  1. 在“ SalesByRegion.dsv [设计]”窗格中,右键单击表“vTimeSeries”,然后选择“ 浏览数据”。

    此时会打开一个新选项卡,标题为 “浏览 vTimeSeries 表”。

  2. 在“ ”选项卡上,查看 TimeIndex 和 Reporting Date 列中使用的数据。

    两列都是具有唯一值的序列并且都可用作时序键;但是,这两列的数据类型不同。 Microsoft 时序算法不需要 datetime 数据类型,只是这些值必须是非重复的且有序的。 因此,这两个列均可用作预测模型的时间键。

  3. 在数据源视图设计图面中,选择列“报告日期”,然后选择“ 属性”。 接下来,单击“TimeIndex”列并选择“ 属性”。

    字段 TimeIndex 的数据类型为 System.Int32,而字段 Reporting Date 的数据类型为 System.DateTime。 很多数据仓库都将日期/时间值转换为整数,并将整数列用作键,以提高索引性能。 但是,如果您使用此列,Microsoft 时序算法将使用未来值(如 201014、201014,依此类推)进行预测。 由于你想要使用日历日期来表示销售数据预测,因此将使用“报告日期”列作为唯一的系列标识符。

在数据源视图中设置键

  1. 在“ SalesByRegion.dsv”窗格中,选择 vTimeSeries 表。

  2. 右键单击列“报告日期”,然后选择“ 设置逻辑主键”。

处理缺少的数据(可选)

如果任何序列有缺失数据,则您尝试处理模型时可能会遇到错误。 您可以通过以下多种方法来处理缺失数据:

  • 可以让 Analysis Services 通过计算均值或使用前一个值来填充缺失值。 可以通过对挖掘模型设置 MISSING_VALUE_SUBSTITUTION 参数来实现此目的。 有关此参数的详细信息,请参阅 Microsoft 时序算法技术参考。 有关如何更改现有挖掘模型的参数的信息,请参阅 查看或更改算法参数

  • 可以更改数据源或筛选基础视图,以消除不规则序列或替换各值。 您可以在关系数据源中实现此目的,或者可以通过创建自行命名的查询或命名计算来修改数据源视图。 有关详细信息,请参阅 多维模型中的数据源视图。 本课程后面的一个任务将演示如何生成命名查询和自定义计算。

对于本方案,某一序列的起始位置缺失了某些数据,即:在 2007 年 7 月之前,T1000 产品系列不存在数据。 除此之外,所有序列都在同一天终止,且没有任何缺失值。

Microsoft 时序算法的要求是,包含在单个模型中的任何序列都应具有相同的 终点 。 由于 T1000 型号的自行车是在 2007 年引进的,此序列数据的开始日期晚于其他型号自行车数据的开始日期,但此序列的结束日期与其他序列相同;因此,该数据是可使用的。

关闭数据源视图设计器

  • 右键单击“ 浏览 vTimeSeries 表”选项卡,然后选择“ 关闭”。

课程中的下一个任务

创建预测结构和模型(数据挖掘中级教程)

另请参阅

Microsoft 时序算法