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

准备供在预测模型中使用的数据时,必须确保数据包含一个可用于标识时序中的步长的列。该列将用作 Key Time 列,因此必须包含唯一的数值。如果序列在其起始位置和结束位置之外的地方存在空白,则可以使用 MISSING_VALUE_SUBSTITUTION 参数来填充序列。Analysis Services 提供了多个选项用来用值替换缺失数据,例如使用平均数或常量。

如果计划分析多个数据序列,则必须确保所有序列的开始和结束日期相同。

在本任务中,您将通过在 Business Intelligence Development Studio 中创建一个简单的透视表来浏览时序数据。您还将了解有关查找和处理数据中空白的方法。

标识预测模型的时间键

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

    一个新的选项卡随即打开,其标题为**“浏览 vTimeSeries 表”。此选项卡包含 4 个选项卡:“表”“透视表”“图表”“透视图表”**。

  2. 在**“表”选项卡上,单击选项卡右侧的“抽样选项”**按钮。

  3. 请注意,在**“数据浏览选项”对话框中,“抽样方法”下方的默认抽样方法使用“靠前计数”**选项并抽取前 5,000 行。

  4. 将**“抽样方法”更改为“随机抽样”,并将“抽样计数”更改为 1,000,然后单击“确定”**。

    注意注意

    更改抽样选项不会影响用于数据挖掘的数据。图表和表只是用于帮助您浏览和了解数据的工具。

  5. 在**“表”**选项卡上,查看 TimeIndex 和“报告日期”列中使用的数据。

    这两个列都是值唯一的序列;但是,您应该检查这两个列的数据类型。

    注意注意

    如果看不到“报告日期”列,很可能是您使用的是旧版本的 AdventureWorksDW 数据库。本教程需要使用 AdventureWorksDW2008 数据库,以利用 SQL Server 2008 中新的日期和时间功能的优点。有关日期和时间的更改的详细信息,请参阅 SQL Server 2008 中数据库引擎功能的重大更改

  6. 单击**“SalesByRegion.dsv [设计]”**选项卡。

  7. 选择“报告日期”列。

    **“属性”**窗口指示 TimeIndex 字段的数据类型为 System.Int32,而“报告日期”字段的数据类型为 System.DateTime。Microsoft 时序算法不需要 datetime 数据类型,只是这些值必须是非重复的且有序的。因此,这两个列均可用作预测模型的时间键。但是,由于您希望使用日历日期表示销售额数据预测,因此您将使用“报告日期”列作为唯一的序列标识符。

在数据源视图中设置键

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

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

使用透视表检查数据序列中是否存在空白

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

  2. 单击**“透视表”**选项卡。

  3. 在**“PivotTable 字段列表”对话框中,选择字段 QuantityAmount,然后将它们拖到表的“将汇总和明细字段拖至此处”**区域。

  4. 同样,将 TimeIndex 字段拖到**“将列字段拖至此处”**框中。

    注意注意

    TimeIndex 字段不是您将用于表示时序的字段,但提供它的目的是为了向后兼容。此外,TimeIndex 字段为序列提供了一个更为简单的视图,在透视图表中浏览数据时您可以使用它。

  5. 将 ModelRegion 字段拖到**“将行字段拖至此处”**框中。

    创建的透视表在左侧列中显示产品和区域的列表,接下来是包含每个日历月份和年份的销售数量和金额的各列。

  6. 向右侧拖动滚动条,以查看 T1000 序列的销售数据的开始日期。

    从此表中您可以看到,在 2003 年 7 月之前 T1000 产品系列没有数据。在 SQL Server 2008 中,Microsoft 时序算法的一个重要要求是单个模型中包括的所有序列都应有相同的结束点。由于 T1000 型号的自行车是在 2003 年引进的,此序列数据的开始日期晚于其他型号自行车数据的开始日期,但此序列的结束日期与其他序列相同,因此该数据是可以接受的。

  7. 通过将 TimeIndex 拖出表来更改用于表示时序的字段。

  8. 将下面的某个字段从**“PivotTable 字段列表”拖到“将列字段拖至此处”**框中。通过将列拖出表或通过选择不同聚合(如季度或月份)来尝试以不同方式查看时序。

    • ReportingDate

    • ReportingDate By Week

    • ReportingDate By Month

处理缺少的数据(可选)

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

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

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

对于本方案,某一序列的起始位置缺失了某些数据,但所有序列的结束日期都相同,因此不存在缺失值。因此,您不需要进行任何其他更改,因为数据满足时序模型的要求。

关闭数据源视图设计器

  • 右键单击**“浏览 vTimeSeries 表”选项卡并选择“关闭”**。

请参阅

概念