第 4 课:执行市场篮预测
适用于: SQL Server 2016 Preview
在本课程中,您将使用 DMX 选择 语句创建的关联上基于的预测模型中创建 第 2 课︰ 向市场篮挖掘结构中添加挖掘模型。 使用 DMX 创建预测查询 选择 语句并添加 PREDICTION JOIN 子句。 有关的预测联接语法的详细信息,请参阅 SELECT FROM < 模型 >预测联接 #40; DMX )。
SELECT FROM PREDICTION JOIN 形式 选择 语句包含三个部分︰
结果集中返回的挖掘模型列和预测函数的列表。 此列表还可以包含源数据中的输入列。
定义用于创建预测的数据的源查询。 例如,如果您正批量创建多个预测,则源查询可以检索客户列表。
挖掘模型列和源数据之间的映射。 如果列名称匹配,则可以使用 NATURAL PREDICTION JOIN 语法并忽略列映射。
使用预测函数可增强查询。 预测功能提供其他信息,例如,预测出现的概率或对定性数据集中预测的支持。 有关预测函数的详细信息,请参阅 函数 #40; DMX )。
您还可以使用 SQL Server Data Tools (SSDT) 中的预测查询生成器创建预测查询。
单独 PREDICTION JOIN 语句
第一步是创建单独查询,通过使用 SELECT FROM PREDICTION JOIN 语法并提供一组值作为输入。 下面是单独语句的一般示例:
SELECT <select list>
FROM [<mining model>]
[NATURAL] PREDICTION JOIN
(SELECT '<value>' AS [<column>],
(SELECT 'value' AS [<nested column>] UNION
SELECT 'value' AS [<nested column>] ...)
AS [<nested table>])
AS [<input alias>]
代码的第一行定义查询返回的挖掘模型中的列,并指定用于生成预测的挖掘模型的名称:
SELECT <select list> FROM [<mining model>]
代码的下一行指示要执行的操作。 由于您将指定的每个列的值并键入列名完全以匹配模型,您可以使用 NATURAL PREDICTION JOIN 语法。 但是,如果列名称不同,您将需要通过添加新数据中指定模型中的列和列之间的映射 ON 子句。
[NATURAL] PREDICTION JOIN
代码的以下各行定义购物车中将用于预测客户将添加的其他产品的产品:
(SELECT '<value>' AS [<column>],
(SELECT 'value' AS [<nested column>] UNION
SELECT 'value' AS [<nested column>] ...)
AS [<nested table>])
课程任务
在本课程中,将执行以下任务︰
根据在其购物车中的已有项创建一个查询,预测客户可能购买的其他项。 您将使用默认使用挖掘模型来创建此查询 MINIMUM_PROBABILITY。
根据客户购物车中的已有项创建一个查询,预测客户可能购买的其他项。 此查询基于不同的模型,在其中 MINIMUM_PROBABILITY 已设置为 0.01。 因为的默认值为 MINIMUM_PROBABILITY 关联模型中为 0.3,因此在此模型上的查询应返回与查询相比,更可能的项,对默认模型。
使用带有默认 MINIMUM_PROBABILITY 的模型创建预测
创建关联查询
在 对象资源管理器, ,用鼠标右键单击实例 Analysis Services, ,指向 新查询, ,然后单击 DMX 若要打开查询编辑器。
一般示例复制 PREDICTION JOIN 到空白查询语句。
将
<select list>
使用︰
PREDICT([Default Association].[Products],INCLUDE_STATISTICS,3)
您可以只包括列名 [Products],但通过使用 预测 #40; DMX ) 函数,您可以限制为三种由算法返回的产品数目。 您还可以使用 INCLUDE_STATISTICS, ,它返回支持、 概率和每个产品的调整后的概率。 这些统计信息有助于您对预测的准确性进行分级。
将
[<mining model>]
使用︰
[Default Association]
将
(SELECT '<value>' AS [<column>], (SELECT 'value' AS [<nested column>] UNION SELECT 'value' AS [<nested column>] ...) AS [<nested table>])
使用︰
(SELECT (SELECT 'Mountain Bottle Cage' AS [Model] UNION SELECT 'Mountain Tire Tube' AS [Model] UNION SELECT 'Mountain-200' AS [Model]) AS [Products]) AS t
此语句使用 联合 语句来指定必须包含预测的产品以及购物车中的三种产品。 中的模型列 选择 语句都对应于嵌套的产品表中包含的模型列。
现在,完整的语句应该如下所示:
SELECT PREDICT([Default Association].[Products],INCLUDE_STATISTICS,3) From [Default Association] NATURAL PREDICTION JOIN (SELECT (SELECT 'Mountain Bottle Cage' AS [Model] UNION SELECT 'Mountain Tire Tube' AS [Model] UNION SELECT 'Mountain-200' AS [Model]) AS [Products]) AS t
在 文件 菜单上,单击 dmxquery1.dmx 另存为。
在 另存为 对话框中,浏览到相应的文件夹,并将文件 Association Prediction.dmx。
在工具栏上,单击 Execute 按钮。
查询将返回包含以下三种产品的表:HL Mountain Tire、Fender Set – Mountain 和 ML Mountain Tire。 该表按概率顺序列出这些返回的产品。 最有可能包含在查询指定的三种产品所在购物车中的返回的产品将出现在表的顶部。 其次最有可能包含在购物车中的产品是下面的两种产品。 该表还包含说明预测准确性的统计信息。
使用 MINIMUM_PROBABILITY 为 0.01 的模型创建预测
创建关联查询
在 对象资源管理器, ,用鼠标右键单击实例 Analysis Services, ,指向 新查询, ,然后单击 DMX若要打开查询编辑器。
一般示例复制 PREDICTION JOIN 到空白查询语句。
将
<select list>
使用︰
PREDICT([Modified Association].[Products],INCLUDE_STATISTICS,3)
将
[<mining model>]
使用︰
[Modified Association]
将
(SELECT '<value>' AS [<column>], (SELECT 'value' AS [<nested column>] UNION SELECT 'value' AS [<nested column>] ...) AS [<nested table>])
使用︰
(SELECT (SELECT 'Mountain Bottle Cage' AS [Model] UNION SELECT 'Mountain Tire Tube' AS [Model] UNION SELECT 'Mountain-200' AS [Model]) AS [Products]) AS t
此语句使用 联合 语句来指定必须包含预测的产品以及购物车中的三种产品。
[Model]
中的列 选择 语句都对应于嵌套的产品表中的列。现在,完整的语句应该如下所示:
SELECT PREDICT([Modified Association].[Products],INCLUDE_STATISTICS,3) From [Modified Association] NATURAL PREDICTION JOIN (SELECT (SELECT 'Mountain Bottle Cage' AS [Model] UNION SELECT 'Mountain Tire Tube' AS [Model] UNION SELECT 'Mountain-200' AS [Model]) AS [Products]) AS t
在 文件 菜单上,单击 dmxquery1.dmx 另存为。
在 另存为 对话框中,浏览到相应的文件夹,并将文件 Modified Association Prediction.dmx。
在工具栏上,单击 Execute 按钮。
查询将返回包含以下三种产品的表:HL Mountain Tire、Water Bottle 和 Fender Set - Mountain。 该表按概率顺序列出这些产品。 出现在该表顶部的产品是最有可能包含在查询指定的三种产品所在购物车中的产品。 其余产品是其次最有可能包含在该购物车中的产品。 该表还包含说明预测准确性的统计信息。
从可以看出,此操作的结果查询的值 MINIMUM_PROBABILITY 参数会影响由查询返回的结果。
这是市场篮教程中的最后一个步骤。 您现在即可拥有一组模型,并可通过该组模型预测客户可能同时购买的产品。
若要了解如何使用 DMX 中其他预测情况下,请参阅 自行车购买者 DMX 教程。