针对顺序分析和聚类分析模型创建预测(数据挖掘中级教程)
适用于: SQL Server 2016 Preview
了解群集通过在查看器中浏览模型以获得进一步的序列后,您可以通过使用预测查询生成器上创建预测查询 挖掘模型预测 数据挖掘设计器中的选项卡。 若要创建预测,首先要选择顺序分析和聚类分析模型,然后选择输入数据。 对于输入,可以使用外部数据源,也可以生成单独查询并在对话框中提供值。
本课程假定您已经熟悉如何使用预测查询生成器,同时希望了解如何针对顺序分析和聚类分析模型生成查询。 有关如何使用预测查询生成器的常规信息,请参阅 数据挖掘查询工具 或数据挖掘基础教程中,部分 创建预测和 #40;数据挖掘基础教程 )。
针对 Regional 模型创建预测
对此方案,您首先需要创建一些单独预测查询,以了解预测结果如何因区域不同而不同。
针对顺序分析和聚类分析模型创建单独查询
单击 挖掘模型预测 数据挖掘设计器的选项卡。
在 挖掘模型 列菜单上,选择 单独查询。
挖掘模型 窗格和 单独查询输入 窗格中显示。
在 挖掘模型 窗格中,单击 选择模型。 (如果已选择顺序分析和聚类分析模型,则可跳过此步骤。)
选择挖掘模型 对话框随即打开。
展开表示挖掘结构的节点 Sequence Clustering with Region, ,然后选择模型 Sequence Clustering with Region。 单击 “确定”。 现在,请忽略“输入”窗格;您将在设置预测函数之后指定输入。
在网格中,单击下的空单元格 源 ,然后选择 预测函数。 在下面的单元格中 字段, ,选择 PredictSequence。
备注
您还可以使用 预测 函数。 如果执行操作,请务必选择的版本 预测 函数,它采用表列作为参数...在 挖掘模型 窗格中,选择嵌套的表
v Assoc Seq Line Items
, ,将其拖到网格中,为 条件/参数 框 PredictSequence 函数。拖放表和列名称可以生成没有语法错误的复杂语句。 但是,它将替换该单元格,其中包括其他可选参数的当前内容 PredictSequence 函数。 为了查看其他参数,可以将函数的另一个实例临时添加到网格供参考。
单击 结果 在预测查询生成器上角的按钮。
预期的结果包含单个列,标题 表达式。 表达式 列包含具有三个列的嵌套的表,如下所示︰
$SEQUENCE | Line Number | Model |
---|---|---|
1 | Mountain-200 |
这些结果是什么意思? 请记住,您没有指定任何输入。 因此,该预测针对整个事例,Analysis Services 会返回最可能的总预测。
向单独预测查询添加输入
到现在为止,您还没有指定任何输入。 在下一个任务中,您将使用 单独查询输入 窗格来指定查询的输入。 首先,使用 [Region] 作为区域顺序分析和聚类分析模型的输入,以确定所有区域的预测序列是否都相同。 然后将了解如何修改查询以添加每项查询的概率,并简化结果以便易于查看。
针对特定客户组生成预测
单击 设计 中要切换回查询生成网格的预测查询生成器左上角的按钮。
在 单独查询输入 对话框中,单击 值 框 区域, ,然后选择 欧洲。
单击 结果 按钮,以查看在欧洲客户的预测。
单击 设计 中要切换回查询生成网格的预测查询生成器左上角的按钮。
在 单独查询输入 对话框中,单击 值 框 区域, ,然后选择 北美地区。
单击 结果 按钮,以查看在北美地区的客户的预测。
使用自定义表达式添加概率
由于概率是预测的特性并且是作为嵌套表输出,所以输出每个预测的概率要稍微复杂一些。 如果您熟悉数据挖掘扩展插件 (DMX),就可以轻松地更改查询,在嵌套表上添加嵌套 select 语句。 也可以通过添加自定义表达式的方法在预测查询生成器中创建嵌套 select 语句。
使用自定义表达式输出预测序列的概率
单击 设计 中要切换回查询生成网格的预测查询生成器左上角的按钮。
在网格中,在下 源, ,单击一个新行,然后选择 自定义表达式。
下的框保留 字段 保留为空。
有关 别名, ,类型 t。
在 条件/参数 框中,键入完整的嵌套 select 语句,如下面的代码示例中所示。 请确保包括开始括号和结束括号。
(SELECT PredictProbability([Model]) FROM PredictSequence([Sequence Clustering with Region].[v Assoc Seq Line Items]))
单击 结果 按钮,以查看在欧洲客户的预测。
现在结果包含两个嵌套表,一个包含预测,另一个包含预测的概率。 如果查询不能运行,可以切换到查询设计视图查看完整的查询语句,应该如下所示:
SELECT
PredictSequence([Sequence Clustering with Region].[v Assoc Seq Line Items]),
( (SELECT PredictProbability([Model]) FROM PredictSequence([Sequence Clustering with Region].[v Assoc Seq Line Items]))) as [t]
FROM
[Sequence Clustering with Region]
NATURAL PREDICTION JOIN
(SELECT 'Europe' AS [Region]) AS t
处理结果
如果结果中有很多嵌套表,您可能希望简化结果以便查看。 若要执行此操作,可以手动修改查询并添加 FLATTENED 关键字。
平展预测查询中的嵌套行集
单击 查询 预测查询生成器角的按钮。
网格更改为一个打开的窗格,在此您可以查看和修改由预测查询生成器创建的 DMX 语句。
之后 选择 关键字、 类型 FLATTENED。
完整的查询文本应与以下内容相似:
SELECT FLATTENED PredictSequence([Sequence Clustering with Region].[v Assoc Seq Line Items]), ( (SELECT PredictProbability([Model]) FROM PredictSequence([Sequence Clustering with Region].[v Assoc Seq Line Items]))) as [t] FROM [Sequence Clustering with Region] NATURAL PREDICTION JOIN (SELECT 'Europe' AS [Region]) AS t
单击 结果 在预测查询生成器上角的按钮。
手动编辑查询之后,将无法切换回设计视图而不丢失更改。 不过,您可以将创建的 DMX 语句手动保存到文本文件,然后更改回设计视图。 这时,查询会恢复到在设计视图中有效的上一版本。
根据相关模型创建预测
由于您希望了解模型在区域之间是否发现任何差别,所以前面的示例使用了一个事例表列 Region 作为单独预测查询的输入。 但是,浏览了模型之后,您发现差别不足以证明按区域可以生成自定义产品的建议。 您真正感兴趣的是预测客户选择的产品。 因此,在下面的查询中,您将使用不包括 Region 的顺序分析和聚类分析模型来生成对所有客户的建议。
使用嵌套表列作为输入
首先要创建一个单独预测查询,采用单个产品作为输入并返回下一个最可能的产品。 若要获取此类预测,您需要使用嵌套表列作为输入值。 这是因为正在预测的属性 Model 是嵌套表的一部分。 Analysis Services 提供 嵌套表输入 对话框中,以帮助您轻松地创建预测查询通过使用预测查询生成器嵌套表属性。
使用嵌套表作为预测输入
单击 设计 中要切换回查询生成网格的预测查询生成器左上角的按钮。
在 单独查询输入 对话框中,单击 值 框 区域, ,然后选择空行以清除此字段的输入。
在 单独查询输入 对话框中,单击 值 框 vAssocSeqLineItems, ,然后单击 (…) 按钮。
在 嵌套表输入 对话框中,单击 添加。
在新行中,单击下的框 模型, ,并从列表中选择 Touring Tire。 单击 “确定”。
单击 结果 按钮,以查看预测。
该模型为选择 Touring Tire 作为第一件商品的所有客户推荐了其他商品。 您已经通过浏览模型了解到,客户经常同时购买 Touring Tire 和 Touring Tire Tube,因此这些建议看来不错。
$SEQUENCE | Line Number | Model |
---|---|---|
1 | Touring Tire Tube | |
2 | Sport-100 | |
3 | Long-Sleeve Logo Jersey |
使用嵌套表输入创建大量预测查询
现在,对于模型创建的预测可用来进行营销建议您感到很满意,您将创建一个映射到外部数据源的预测查询。 该数据源将提供表示当前产品的值。 您希望创建一个预测查询,以将客户 ID 和产品列表作为输入,因此需要将客户表添加为事例表,将采购表添加为嵌套表。 然后像前面那样,您将添加预测函数创建建议。
这与您在第 3 课的市场篮方案中创建预测使用的是同一过程;不过,在顺序分析和聚类分析模型预测中还需要将顺序作为输入。
使用嵌套表输入创建预测查询
在 挖掘模型 窗格中,选择序列聚类分析模型,如果未选中。
在 选择输入表 对话框中,单击 选择事例表。
在 选择表 对话框中,为数据源选择订单。 在 表/视图名称 列表中,选择 vAssocSeqOrders,,然后单击 确定。
在 选择输入表 对话框中,单击 选择嵌套表。
在 选择表 对话框中,为 数据源, ,选择订单。 在 表/视图名称 列表中,选择 vAssocSeqLineItems,然后单击 确定。
Analysis Services 将尝试检测关系,如果数据类型匹配并且列名称相近,将自动创建关系。 如果它创建的关系是错误的您可以右键单击联接线并选择 修改连接 来编辑列映射,或者您可以右键单击联接线并选择 删除 以完全删除关系。 在此方案中,由于表已经在数据源视图中联接,因此,将在“设计”窗格中自动添加这些关系。
在网格中添加一个新行。 有关 源, ,选择 vAssocSeqOrders,以及用于 字段, ,选择 CustomerKey。
在网格中添加一个新行。 有关 源, ,选择 预测函数, ,以及用于 字段, ,选择 PredictSequence。
将 vAssocSeqLineItems 拖到 条件/参数 框。 在末尾处单击 条件/参数 框中,然后键入下列参数︰ 2。
中的完整文本 条件/参数 框应处于︰
[Sequence Clustering].[v Assoc Seq Line Items],2
单击 结果 按钮,以查看每个客户的预测。
您已经完成关于顺序分析和聚类分析模型的教程。
后续步骤
如果您已经完成中的所有部分 数据挖掘中级教程 (Analysis Services-数据挖掘 ), 下, 一步可能是了解如何使用数据挖掘扩展插件 (DMX) 语句来创建模型和生成预测。 有关详细信息,请参阅 创建和查询数据挖掘模型使用 DMX︰ 教程和 #40;Analysis Services-数据挖掘 )。
如果您熟悉编程概念,您还可以使用分析管理对象 (AMO) 以编程方式处理数据挖掘对象。 有关详细信息,请参阅 AMO 数据挖掘类。
另请参阅
顺序分析和聚类分析模型查询示例
顺序分析和聚类分析模型的挖掘模型内容(Analysis Services - 数据挖掘)