在本课前面的任务中,你创建了时序模型并浏览了结果。 默认情况下,Analysis Services 始终为时序模型创建一组五(5)个预测,并将预测值显示为预测图表的一部分。 但是,还可以通过生成数据挖掘扩展插件(DMX)预测查询来创建预测。
在此任务中,你将创建一个预测查询,该查询生成在查看器中看到的相同预测。 此任务假定你已完成基本数据挖掘教程中的课程,并熟悉如何使用预测查询生成器。 现在,你将了解如何创建特定于时序模型的查询。
创建时序预测
通常,创建预测查询的第一步是选择挖掘模型和输入表。 但是,时序模型不需要常规预测的额外输入。 因此,除非向模型添加数据或替换数据,否则在进行预测时不需要指定新的数据源。
对于本课程,必须指定预测步骤数。 可以指定系列名称,以获取产品与区域的特定组合的预测。
选择模型和输入表
在数据挖掘设计器的 “挖掘模型预测 ”选项卡上的“ 挖掘模型 ”框中,单击“ 选择模型”。
在 “选择挖掘模型 ”对话框中,展开预测结构,从列表中选择 预测 模型,然后单击“ 确定”。
忽略 “选择输入表” 框。
注释
对于时序模型,除非执行交叉预测,否则不需要指定单独的输入。
在 “源 ”列中,在 “挖掘模型预测 ”选项卡上的网格中,单击第一个空行中的单元格,然后选择“ 预测挖掘模型”。
在 “字段 ”列中,选择“ 模型区域”。
此作将序列标识符添加到预测查询,以指示预测应用到的模型和区域的组合。
单击 “源 ”列中的下一个空行,然后选择“ 预测函数”。
在 “字段” 列中,选择 PredictTimeSeries。
注释
还可以将
Predict函数与时序模型一起使用。 但是,默认情况下,Predict 函数只为每个序列创建一个预测。 因此,若要指定多个预测步骤,必须使用 PredictTimeSeries 函数。在“挖掘模型”窗格中,选择挖掘模型列“Amount”。将“量”拖到前面添加的 PredictTimeSeries 函数的“条件/参数”框。
单击 “条件/参数 ”框,并在字段名称后面键入逗号,后跟 5。
“条件/参数”框中的文本现在应显示以下内容:
[Forecasting].[Amount],5在 “别名” 列中,键入
PredictAmount。单击 “源 ”列中的下一个空行,然后再次选择 “预测函数 ”。
在 “字段” 列中,选择 “PredictTimeSeries”。
在“挖掘模型”窗格中,选择列“数量”,然后将其拖到第二个 PredictTimeSeries 函数的“条件/参数”框中。
单击 “条件/参数 ”框,并在字段名称后面键入逗号,后跟 5。
“条件/参数”框中的文本现在应显示以下内容:
[Forecasting].[ Quantity],5在 “别名” 列中,键入
PredictQuantity。点击切换到查询结果视图。
查询的结果以表格格式显示。
请记住,你在查询生成器中创建了三种不同类型的结果,一种是使用列中的值,另一种是从预测函数中获取预测值。 因此,查询的结果包含三个单独的列。 第一列包含产品和区域组合的列表。 第二列和第三列各包含一个嵌套的预测结果表。 每个嵌套表都包含时间步骤和预测值,例如下表:
示例结果(将金额截断为两个小数位数):
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)中可用。 结果只能以平展格式存储。
在“结果”窗格中平展结果
在预测查询生成器中,单击“ 切换到查询设计”视图。
视图会更改,以允许手动编辑 DMX 查询文本。
键入
FLATTENED关键字后面的SELECT关键字。 完整的查询文本应如下所示:SELECT FLATTENED [Forecasting].[Model Region], (PredictTimeSeries([Forecasting].[Amount],5)) as [PredictAmount], (PredictTimeSeries([Forecasting].[Quantity],5)) as [PredictQuantity] FROM [Forecasting](可选)可以键入子句来限制结果,例如以下示例:
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'单击 切换到查询结果视图。
导出预测查询结果
单击“ 保存查询结果”。
在“ 保存数据挖掘查询结果 ”对话框中,对于 数据源,选择 AdventureWorksDW2012。 如果要将数据保存到其他关系数据库,还可以创建数据源。
在 “表名 ”列中,键入新的临时表名称,例如 测试预测。
单击“ 保存”。
注释
若要查看创建的表,请创建与保存数据的实例的数据库引擎的连接,并创建查询。
结论
你已了解如何构建基本的时序模型、解释预测和创建预测。
本教程中的剩余任务是可选的,并介绍高级时序预测。 如果决定继续作,你将了解如何向模型添加新数据,以及如何在扩展系列上创建预测。 你还将了解如何使用模型中的趋势执行交叉预测,但将数据替换为新的一系列数据。