创建时序预测(数据挖掘中级教程)

在本课程前面的任务中,您已经创建了时序模型并浏览了结果。默认情况下,Analysis Services 将始终创建时序模型的预测,并将其作为预测图的一部分显示。但是,也可以通过生成数据挖掘扩展插件 (DMX) 预测查询,来创建自定义预测。

在本任务中,您将创建一个预测查询,该查询生成的预测就是您在查看器中看到的同一预测。该任务假定您已经学完了“数据挖掘基础教程”中的课程,并且熟悉如何使用预测查询生成器。现在,您将学习如何创建特定于时序模型的查询。

创建时序预测

一般来说,创建预测查询的第一步是选择挖掘模型和输入表。但是,时序模型不需要为常规预测进行额外输入。因此,您在进行预测时并不需要指定新数据源,除非您要将数据添加到模型或替换数据。在本课程中,您必须指定预测步骤数。还可以指定一个键值,用于获取产品和区域的特定组合的预测。

注意注意

本教程后面的任务将介绍一个应用场景,在该应用场景中,您需要使用新数据来替换模型中的数据,以执行交叉预测。有关详细信息,请参阅使用平均预测模型进行预测(数据挖掘中级教程)

选择模型和输入表

  1. 在数据挖掘设计器的**“挖掘模型预测”选项卡的“挖掘模型”框中,单击“选择模型”**。

  2. 在**“选择挖掘模型”对话框中,展开“预测”结构,从列表中选择“预测”模型,然后单击“确定”**。

  3. 忽略**“选择输入表”**框。

    注意注意

    对于时序模型,并不需要指定单独的输入,除非您要进行交叉预测。

  4. 在**“挖掘模型预测”选项卡上网格内的“源”列中,单击第一个空行中的单元格,然后选择“预测挖掘模型”**。

  5. 在**“字段”**列中,选择 Model Region

    此操作可将序列标识符添加到预测查询中,以指示预测适用于的型号和区域的组合。

  6. 在**“源”列中,单击下一个空行,然后选择“预测函数”**。

  7. 在**“字段”**列中,选择 PredictTimeSeries

    注意注意

    也可将 Predict 函数与时序模型结合使用。但在默认情况下,预测函数只为每个时序创建一个预测。因此,若要指定多个预测步骤,必须使用 PredictTimeSeries 函数。

  8. 在**“挖掘模型”窗格中,选择挖掘模型列 Amount。将 Amount 拖到您以前添加的 PredictTimeSeries 函数的“条件/参数”**框。

  9. 单击**“条件/参数”**框,在字段名称后键入一个逗号,后跟 5。

    **“条件/参数”**框中的文本现在应该显示以下内容:

    [Forecasting].[Amount],5

  10. 在**“别名”**列中,键入 PredictAmount。

  11. 在**“源”列中,单击下一个空行,然后再次选择“预测函数”**。

  12. 在**“字段”**列中,选择 PredictTimeSeries

  13. 在**“挖掘模型”窗格中,选择“Quantity”列,然后将其拖到第二个 PredictTimeSeries 函数的“条件/参数”**框。

  14. 单击**“条件/参数”**框,在字段名称后键入一个逗号,后跟 5。

    **“条件/参数”**框中的文本现在应该显示以下内容:

    [Forecasting].[ Quantity],5

  15. 在**“别名”**列中,键入 PredictQuantity。

  16. 单击**“切换到查询结果视图”**。

    查询结果以表格形式显示。

请记住,您在查询生成器中创建了三个不同类型的结果,一个结果使用列中的值,另两个结果从预测函数中获取预测值。因此,查询结果包含三个单独的列。第一列包含产品和区域组合的列表。第二列和第三列都包含预测结构的嵌套表。每个嵌套表都包含时间步长和预测值,如下表所示:

示例结果:

ModelRegion

PredictAmount

PredictQuantity

M200 Europe

$TIMEAmount
7/25/2008264039.4
8/25/2008323995.1
9/25/2008346405.6
10/25/2008337472.8
11/25/2008342890.8
$TIMEQuantity
7/25/2008121
8/25/2008142
9/25/2008152
10/25/2008149
11/25/2008154

M200 North America

$TIMEAmount
7/25/2008372986.4
8/25/2008411315.3
9/25/2008356186.6
10/25/2008412292.1
11/25/2008473739.2
$TIMEQuantity
7/25/2008163
8/25/2008178
9/25/2008156
10/25/2008173
11/25/2008203

保存预测结果

对于使用预测结果,有几个不同的选项可供您选择。您可以平展结果,从“结果”视图复制数据,然后将数据粘贴到 Excel 工作表或其他文件中。还可以将数据保存到某一数据源视图。将结果保存到数据源视图的功能仅在 Business Intelligence Development Studio 中提供,结果以平展格式保存在导出的表格中。

在“结果”窗格中平展结果

  1. 在预测查询生成器中,单击**“切换到查询设计视图”**。

    该视图发生变化,允许手动编辑 DMX 查询文本。

  2. 在 SELECT 关键字后键入 FLATTENED 关键字。完整的查询文本应该如下所示:

    SELECT FLATTENED
      [Forecasting].[Model Region],
      (PredictTimeSeries([Forecasting].[Amount],5)) as [PredictAmount],
      (PredictTimeSeries([Forecasting].[Quantity],5)) as [PredictQuantity]
    FROM
      [Forecasting]
    
  3. 单击**“切换到查询结果视图”**。

导出预测查询结果

  1. 单击**“保存查询结果”**。

  2. 在**“保存数据挖掘查询结果”对话框中的“数据源”**中,选择 AdventureWorksDW2008R2。如果您希望将数据保存到不同的关系数据库,也可以创建数据源。

  3. 在**“表名称”**列中,键入新的临时表名称,例如 Test Predictions。

  4. 单击**“保存”**。

    注意注意

    若要查看您创建的表,请创建与您保存数据的实例的数据库引擎的连接,然后创建查询。