第 4 课:使用 DMX 创建时序预测

在本课和下课中,你将使用数据挖掘扩展插件(DMX)基于在第 1 课中创建的时序模型创建不同类型的预测 :创建时序挖掘模型和挖掘结构 以及 第 2 课:将挖掘模型添加到时序挖掘结构

使用时序模型,有许多用于进行预测的选项:

  • 在挖掘模型中使用现有模式和数据

  • 使用挖掘模型中的现有模式,但提供新数据

  • 向模型添加新数据或更新模型。

进行这些预测类型的语法汇总如下:

默认时序预测
使用 PredictTimeSeries (DMX) 从训练的挖掘模型返回指定的预测数。

例如,请参阅 PredictTimeSeries (DMX)时序模型查询示例

扩展模型案例
PredictTimeSeries (DMX) 与 EXTEND_MODEL_CASES 参数配合使用,添加新数据、扩展序列,并根据更新的挖掘模型创建预测。

本教程包含有关如何使用EXTEND_MODEL_CASES的示例。

替换型号案例
PredictTimeSeries (DMX) 与 REPLACE_MODEL_CASES 参数结合使用,将原始数据替换为新的数据系列,然后根据将挖掘模型中的模式应用于新数据系列来创建预测。

有关如何使用REPLACE_MODEL_CASES的示例,请参阅第 2 课:生成预测方案(中间数据挖掘教程)。

课程任务

在本课中,你将执行以下任务:

  • 创建查询以基于现有数据获取默认预测。

在以下课程中,你将执行以下相关任务:

  • 创建一个查询来提供新数据并获取更新的预测。

除了使用 DMX 手动创建查询之外,还可以使用 SQL Server Data Tools (SSDT)中的预测查询生成器创建预测。

简单的时序预测查询

第一步是将 SELECT FROM 语句与 PredictTimeSeries 函数一起使用来创建时序预测。 时序模型支持用于创建预测的简化语法:无需提供任何输入,但只需指定要创建的预测数。 下面是将使用的语句的一般示例:

SELECT <select list>   
FROM [<mining model name>]   
WHERE [<criteria>]  

选择列表可以包含模型中的列,例如要为其创建预测的生产线的名称,或预测函数(例如 Lag (DMX)PredictTimeSeries (DMX),这些列专门用于时序挖掘模型。

创建简单的时间序列预测查询

  1. 对象资源管理器中,右键单击 Analysis Services 实例,指向 “新建查询”,然后单击 “DMX”。

    查询编辑器打开后,将包含一个新的空白查询。

  2. 将语句的泛型示例复制到空白查询中。

  3. 替换以下内容:

    <select list>   
    

    替换为:

    [Forecasting_MIXED].[ModelRegion],  
    PredictTimeSeries([Forecasting_MIXED].[Quantity],6) AS PredictQty,  
    PredictTimeSeries ([Forecasting_MIXED].[Amount],6) AS PredictAmt  
    

    第一行代码从挖掘模型中检索一个标识序列的值。

    第二行和第三行使用 PredictTimeSeries 函数。 每行预测不同的属性, [Quantity][Amount]。 可预测属性的名称后的数字指定要预测的时间步骤数。

    AS 子句用于为每个预测函数返回的列提供名称。 如果未提供别名,则默认情况下,两列都返回标签 Expression

  4. 替换以下内容:

    [<mining model>]   
    

    替换为:

    [Forecasting_MIXED]  
    
  5. 替换以下内容:

    WHERE [criteria>]   
    

    替换为:

    WHERE [ModelRegion] = 'M200 Europe' OR  
    [ModelRegion] = 'M200 Pacific'  
    

    完整语句现在应如下所示:

    SELECT  
    [Forecasting_MIXED].[ModelRegion],  
    PredictTimeSeries([Forecasting_MIXED].[Quantity],6) AS PredictQty,  
    PredictTimeSeries ([Forecasting_MIXED].[Amount],6) AS PredictAmt  
    FROM   
    [Forecasting_MIXED]  
    WHERE [ModelRegion] = 'M200 Europe' OR  
    [ModelRegion] = 'M200 Pacific'  
    
  6. 在“ 文件 ”菜单上,单击“ 保存 DMXQuery1.dmx As”。

  7. 在“ 另存为 ”对话框中,浏览到相应的文件夹,并命名该文件 SimpleTimeSeriesPrediction.dmx

  8. 在工具栏上,单击“ 执行 ”按钮。

    该查询针对子句中指定的 WHERE 产品和区域的两个组合返回 6 个预测。

在下一课中,你将创建一个查询来向模型提供新数据,并将该预测的结果与刚刚创建的预测结果进行比较。

课程中的下一个任务

第 5 课:扩展时序模型

另请参阅

PredictTimeSeries (DMX)
滞后时间(DMX)
时序模型查询示例
第 2 课:构建预测方案(中间数据挖掘教程)