处理模型后,可以使用模型中存储的关联信息来创建预测。 在本课的最后任务中,你将了解如何针对创建的关联模型生成预测查询。 本课程假定你熟悉如何使用预测查询生成器,并想要了解如何针对关联模型生成预测查询。 有关如何使用预测查询生成器的详细信息,请参阅 数据挖掘查询接口。
创建单例预测查询
关联模型的预测查询非常有用:
根据之前或相关的购买,向客户推荐项目
查找相关事件。
识别交易集内或跨多个交易之间的关系。
若要生成预测查询,请先选择要使用的关联模型,然后指定输入数据。 输入可以来自外部数据源(例如一个值列表),也可以构建一个单例查询,并根据需要提供值。
对于此方案,你将首先创建一些单一实例预测查询,以便了解预测的工作原理。 然后,你将创建一个批量预测查询,用于根据客户的当前购买情况提供推荐。
在关联模型上创建预测查询
单击数据挖掘设计器的 “挖掘模型预测 ”选项卡。
在 “挖掘模型 ”窗格中,单击 “选择模型”。 (如果已选择正确的模型,则可以跳过此步骤和下一步。
在 “选择挖掘模型 ”对话框中,展开表示挖掘结构 关联的节点,然后选择模型 关联。 单击 “确定” 。
目前,可以忽略输入窗格。
在网格中,单击 “源 ”下的空单元格,然后选择“ 预测函数”。 在 “字段”下的单元格中,选择
PredictAssociation。还可以使用 Predict 函数来预测关联。 如果这样做,请确保选择将表列作为参数的 Predict 函数的版本。
在“挖掘模型”窗格中,选择嵌套表
vAssocSeqLineItems,然后将其拖到网格中,并将其拖到函数的PredictAssociation“条件/参数”框中。通过拖放表和列名,无需语法错误即可生成复杂语句。 但是,它将替换单元格中所有当前内容,包括
PredictAssociation函数的其他可选参数。 若要查看其他参数,可以暂时将函数的第二个实例添加到网格以供引用。单击 “条件/参数 ”框,并在表名称后面键入以下文本:
,3“条件/参数”框中的完整文本应如下所示:
[Association].[v Assoc Seq Line Items],3单击预测查询生成器右上角的“ 结果 ”按钮。
预期结果包含具有标题 表达式的单个列。 表达式列包含一个嵌套的表格,该表格有一个单列和下面的三行。 由于未指定输入值,因此这些预测表示整个模型最有可能的产品关联。
| 型号 |
|---|
| 女子登山短裤 |
| 水瓶 |
| Touring-3000 |
接下来,将使用 “单一实例查询输入 ”窗格将产品指定为查询的输入,并查看最有可能与该项关联的产品。
使用嵌套表输入创建单例预测查询
单击预测查询生成器角落中的 “设计 ”按钮,切换回查询生成网格。
在 “挖掘模型 ”菜单上,选择“ 单一实例查询”。
在 “挖掘模型 ”对话框中,选择 关联 模型。
在网格中,单击 “源 ”下的空单元格,然后选择“ 预测函数”。 在 “字段”下的单元格中,选择
PredictAssociation。在“挖掘模型”窗格中,选择嵌套表
vAssocSeqLineItems,然后将其拖到网格中,并将其拖到函数的PredictAssociation“条件/参数”框中。 在嵌套表名称之后输入,3,就像在前面的过程中一样。在“单一实例查询输入”对话框中,单击“值”框旁边的vAssoc Seq 行项,然后单击“(...)”按钮。
在“嵌套表输入”对话框中,在“键列”窗格中选择
Touring Tire,然后单击“添加”。单击“ 结果 ”按钮。
结果现在显示与 Touring Tire 最可能关联的产品的预测。
| 型号 |
|---|
| 旅游轮胎管 |
| Sport-100 |
| 水瓶 |
但是,你已经知道从探索旅游轮胎管经常购买的模型与旅游轮胎;你更有兴趣了解可以向一起购买这些项目的客户推荐哪些产品。 将更改查询,以便根据篮子中的两个项目预测相关产品。 你还将修改查询,以添加每个预测产品的概率。
向单一实例预测查询添加输入和概率
单击预测查询生成器角落中的 “设计 ”按钮,切换回查询生成网格。
在“单一实例查询输入”对话框中,单击 vAssoc Seq Line Items旁边的值框,然后单击(...)按钮。
在 “键”列 窗格中,选择
Touring Tire,然后单击“ 添加”。在网格中,单击 “源 ”下的空单元格,然后选择“ 预测函数”。 在 “字段”下的单元格中,选择
PredictAssociation。在“挖掘模型”窗格中,选择嵌套表
vAssocSeqLineItems,然后将其拖到网格中,并将其拖到函数的PredictAssociation“条件/参数”框中。 在嵌套表名称后输入,3,就像在前面的过程中一样。在“嵌套表输入”对话框中,在“键列”窗格中选择
Touring Tire Tube,然后单击“添加”。在网格中,在函数
PredictAssociation对应的行中,单击条件/参数字段,然后更改参数以添加参数INCLUDE_STATISTICS。“条件/参数”框中的完整文本应如下所示:
[Association].[v Assoc Seq Line Items], INCLUDE_STATISTICS, 3单击“ 结果 ”按钮。
嵌套表中的结果现在会更新,以显示预测结果,以及支持度和概率。 有关如何解释这些值的详细信息,请参阅关联模型的挖掘模型内容(Analysis Services - 数据挖掘)。
| 型号 | $SUPPORT | $PROBABILITY | 调整后的概率 |
|---|---|---|---|
| Sport-100 | 4334 | 0.291... | 0.252... |
| 水瓶 | 2866 | 0.192... | 0.175... |
| 修补工具包 | 2113 | 0.142... | 0.132 |
处理结果
当结果中有许多嵌套表时,可能需要平展结果,以便更轻松地查看。 为此,可以手动修改查询并添加 FLATTENED 关键字。
在预测查询中展平嵌套行集
单击预测查询生成器角落的 SQL 按钮。
网格将更改为打开的窗格,可在其中查看和修改预测查询生成器创建的 DMX 语句。
关键字
SELECT后,键入FLATTENED.查询的完整文本应如下所示:
SELECT FLATTENED PredictAssociation([Association].[v Assoc Seq Line Items],INCLUDE_STATISTICS,3) FROM [Association] NATURAL PREDICTION JOIN (SELECT (SELECT 'Touring Tire' AS [Model] UNION SELECT 'Touring Tire Tube' AS [Model]) AS [v Assoc Seq Line Items]) AS t单击预测查询生成器右上角的“ 结果 ”按钮。
请注意,在手动编辑查询后,将无法切换回设计视图,而不会丢失更改。 如果要保存查询,可以将手动创建的 DMX 语句复制到文本文件。 更改回设计视图时,查询将还原到设计视图中有效的最后一个版本。
创建多个预测
假设你希望根据过去的购买情况了解单个客户的最佳预测。 可以将外部数据用作预测查询的输入,例如包含客户 ID 和最新产品购买的表。 要求是,数据表需已定义为 Analysis Services 数据源视图;此外,输入数据必须包含案例表和嵌套表,如模型中使用的表。 它们不需要具有相同的名称,但结构必须相似。 在本教程中,你将使用训练模型的原始表。
更改预测查询的输入法
在 “挖掘模型 ”菜单中,再次选择 “单一实例查询 ”以清除复选标记。
会出现一条错误消息,提示您单例查询将会丢失。 单击“是”。
输入对话框的名称将更改为 “选择输入表”。
由于你有兴趣创建一个预测查询来提供客户 ID 和产品列表作为输入,因此你将将客户表添加为事例表,并将购买表添加为嵌套表。 然后,将添加预测函数来创建建议。
使用嵌套表输入来创建预测查询
在“挖掘模型”窗格中,选择“关联筛选模型”。
在 “选择输入表” 对话框中,单击 “选择事例表”。
在“ 选择表 ”对话框中,对于 数据源,选择 AdventureWorksDW2008。 在 “表/视图名称 ”列表中,选择 vAssocSeqOrders,然后单击“ 确定”。
表 vAssocSeqOrders 已添加到窗格中。
在 “选择输入表” 对话框中,单击“ 选择嵌套表”。
在“ 选择表 ”对话框中,对于 数据源,选择 AdventureWorksDW2008。 在 “表/视图名称 ”列表中,选择 vAssocSeqLineItems,然后单击“ 确定”。
表 vAssocSeqLineItems 已添加到窗格中。
在“指定嵌套联接”对话框中,将 OrderNumber 字段从事例表拖到嵌套表的 OrderNumber 字段上。
还可以通过从列表中选择列单击“ 添加关系 ”并创建关系。
在“ 指定关系 ”对话框中,验证 OrderNumber 字段是否已正确映射,然后单击“ 确定”。
单击“ 确定 ”关闭“ 指定嵌套联接 ”对话框。
事例表和嵌套表在设计窗格中更新,以显示将外部数据列连接到模型中的列的联接。 如果关系不正确,可以右键单击联接行,然后选择“ 修改连接 ”以编辑列映射,也可以右键单击联接行,然后选择“ 删除 ”以完全删除关系。
向网格添加新行。 对于 源,请选择 vAssocSeqOrders 表。 对于 “字段”,请选择“CustomerKey”。
向网格添加新行。 对于 源,请选择 vAssocSeqOrders 表。 对于 “字段”,请选择“区域”。
向网格添加新行。 对于 “源”,选择“ 预测函数”,对于 “字段”,请选择
PredictAssociation。将 vAssocSeqLineItems 拖到“条件/参数”框所在的
PredictAssociation行中。 单击 “条件/参数 ”框的末尾,然后键入以下文本:INCLUDE_STATISTICS,3“条件/参数”框中的完整文本应为:
[Association].[v Assoc Seq Line Items], INCLUDE_STATISTICS, 3单击“ 结果 ”按钮以查看每个客户的预测。
可以尝试对多个模型创建类似的预测查询,以查看筛选是否更改了预测结果。 有关创建预测和其他类型的查询的详细信息,请参阅 关联模型查询示例。
另请参阅
关联模型的挖掘模型内容(Analysis Services - 数据挖掘)
PredictAssociation (DMX)
使用预测查询生成器创建预测查询