技术开发 频道

使用 DMX 创建时序预测

  【IT168 技术文档】 

  使用时序模型,可以通过许多选项来进行预测:

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

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

  在模型中添加新数据或者更新模型。

  下面概述了进行这些类型的预测所需的语法:

  默认的序列预测
  使用 PredictTimeSeries (DMX) 从已经定型的挖掘模型中返回指定数量的预测.

  EXTEND_MODEL_CASES
  使用带有 EXTEND_MODEL_CASES 参数的 PredictTimeSeries (DMX) 添加新数据、扩展序列并基于更新后的挖掘模型创建预测。

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

  REPLACE_MODEL_CASES
  使用带有 REPLACE_MODEL_CASES 参数的 PredictTimeSeries (DMX),将原始数据替换为新的数据系列,然后将挖掘模型中的模式应用于新数据序列,从而创建预测。

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

  创建一个查询,基于现有数据获得默认预测。

  在下一课中,您将执行下列相关任务:

  创建一个查询,提供新数据并获得更新的预测。

  除了使用 DMX 手动创建查询以外,还可以使用 Business Intelligence Development Studio 中的预测查询生成器来创建预测。

  简单的时序预测查询
  第一步是结合使用 SELECT FROM 语句和 PredictTimeSeries 函数来创建时序预测。时序模型支持一种简化的预测创建语法:您不必提供任何输入,而只需指定要创建的预测数。下面是将您使用的语句的一般示例:

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

  WHERE [<criteria>]选择列表中可以包含模型中的列(例如,要为其创建预测的产品系列名称)或者专门面向时序挖掘模型的预测函数(如 Lag 或 PredictTimeSeries (DMX))。

  创建简单的时序预测查询
  在对象资源管理器中,右键单击 Analysis Services 实例,指向“新建查询”,再单击 DMX。

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

  将该语句的一般示例复制到空白查询中。

  将<select list> 替换为

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

  PredictAmt第一行从挖掘模型中检索用来标识序列的值。

  第二行和第三行使用 PredictTimeSeries 函数。每一行都预测一个不同的属性([Quantity] 或 [Amount])。可预测属性名称后面的数字指定要预测的时间步长量。

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

  将[<mining model>]替换为[Forecasting_MIXED]
 
  将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'在“文件”菜单中,单击“DMXQuery1.dmx 另存为”。

  在“另存为”对话框中,浏览到适当的文件夹,并将文件命名为 SimpleTimeSeriesPrediction.dmx。

  在工具栏中,单击“执行”按钮。

  该查询将针对在 WHERE 子句中指定的产品和地区的每个组合(共两个组合)返回 6 个预测。

0
相关文章