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

在本课前面的任务中,你创建了时序模型并浏览了结果。 默认情况下,Analysis Services 始终为时序模型创建一组五(5)个预测,并将预测值显示为预测图表的一部分。 但是,还可以通过生成数据挖掘扩展插件(DMX)预测查询来创建预测。

在此任务中,你将创建一个预测查询,该查询生成在查看器中看到的相同预测。 此任务假定你已完成基本数据挖掘教程中的课程,并熟悉如何使用预测查询生成器。 现在,你将了解如何创建特定于时序模型的查询。

创建时序预测

通常,创建预测查询的第一步是选择挖掘模型和输入表。 但是,时序模型不需要常规预测的额外输入。 因此,除非向模型添加数据或替换数据,否则在进行预测时不需要指定新的数据源。

对于本课程,必须指定预测步骤数。 可以指定系列名称,以获取产品与区域的特定组合的预测。

选择模型和输入表

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

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

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

    注释

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

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

  5. “字段 ”列中,选择“ 模型区域”。

    此作将序列标识符添加到预测查询,以指示预测应用到的模型和区域的组合。

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

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

    注释

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

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

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

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

    [Forecasting].[Amount],5

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

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

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

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

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

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

    [Forecasting].[ Quantity],5

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

  16. 点击切换到查询结果视图

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

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

示例结果(将金额截断为两个小数位数):

M200 欧洲 预测金额

$TIME 金额
7/25/2008 99978.00
8/25/2008 145575.07
9/25/2008 116835.19
10/25/2008 116537.38
11/25/2008 107760.55

M200 Europe PredictQuantity

$TIME 数量
7/25/2008 52
8/25/2008 67
9/25/2008 58
10/25/2008 57
11/25/2008 54

M200 北美 - PredictAmount

$TIME 金额
7/25/2008 348533.93
8/25/2008 340097.98
9/25/2008 257986.19
10/25/2008 374658.24
11/25/2008 379241.44

M200 北美 - PredictQuantity

$TIME 数量
7/25/2008 272
8/25/2008 152
9/25/2008 250
10/25/2008 181
11/25/2008 290

警告

示例数据库中使用的日期已为了此版本而更改。 如果使用示例数据的早期版本,可能会看到不同的结果。

保存预测结果

可以使用多个不同的选项来使用预测结果。 可以平展结果,从“结果”视图中复制数据,然后将其粘贴到 Excel 工作表或其他文件中。

为了简化保存结果的过程,数据挖掘设计器还提供将数据保存到数据源视图的功能。 将结果保存到数据源视图的功能仅在 SQL Server Data Tools (SSDT)中可用。 结果只能以平展格式存储。

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

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

    视图会更改,以允许手动编辑 DMX 查询文本。

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

    SELECT FLATTENED  
      [Forecasting].[Model Region],  
      (PredictTimeSeries([Forecasting].[Amount],5)) as [PredictAmount],  
      (PredictTimeSeries([Forecasting].[Quantity],5)) as [PredictQuantity]  
    FROM  
      [Forecasting]  
    
  3. (可选)可以键入子句来限制结果,例如以下示例:

    SELECT FLATTENED  
      [Forecasting].[Model Region],  
      (PredictTimeSeries([Forecasting].[Amount],5)) as [PredictAmount],  
      (PredictTimeSeries([Forecasting].[Quantity],5)) as [PredictQuantity]  
    FROM  
      [Forecasting]  
    WHERE [Forecasting].[Model Region] = 'M200 North America'   
    OR [Forecasting].[Model Region] = 'M200 Europe'  
    
    
  4. 单击 切换到查询结果视图

导出预测查询结果

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

  2. 在“ 保存数据挖掘查询结果 ”对话框中,对于 数据源,选择 AdventureWorksDW2012。 如果要将数据保存到其他关系数据库,还可以创建数据源。

  3. “表名 ”列中,键入新的临时表名称,例如 测试预测

  4. 单击“ 保存”。

    注释

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

结论

你已了解如何构建基本的时序模型、解释预测和创建预测。

本教程中的剩余任务是可选的,并介绍高级时序预测。 如果决定继续作,你将了解如何向模型添加新数据,以及如何在扩展系列上创建预测。 你还将了解如何使用模型中的趋势执行交叉预测,但将数据替换为新的一系列数据。

下一课

高级时序预测(中间数据挖掘教程)

另请参阅

时序模型查询示例