第 4 课:执行市场篮预测

新建日期: 2005 年 12 月 5 日

在本课中,您将使用 SELECT 语句的 SELECT FROM <模型> PREDICTION JOIN (DMX) 格式,并根据在第 2 课:向市场篮挖掘结构中添加挖掘模型中创建的关联模型来创建预测。这些预测类型定义如下。

SELECT 语句的 SELECT FROM <模型> PREDICTION JOIN (DMX) 格式包含三部分:

  • 结果集中返回的挖掘模型列和预测函数的列表。此部分还可以包含来自源数据的输入列。
  • 定义用于创建预测的数据的源查询。例如,在批查询中,此部分可能是客户列表。
  • 挖掘模型列和源数据之间的映射。如果这些名称匹配,则可以使用 NATURAL 语法并且不考虑列映射。

可以使用预测函数进一步增强查询功能。预测函数提供其他信息(例如预测出现的概率),并支持在定型数据集中进行预测。有关预测函数的详细信息,请参阅函数 (DMX)

您还可以使用 Business Intelligence Development Studio 中的预测查询生成器创建预测查询。有关详细信息,请参阅使用预测查询生成器创建 DMX 预测查询

课程任务

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

  • 根据客户购物车中的已有项创建一个查询,确定客户可能购买的其他项。您将使用带有默认 MINIMUM_PROBABILITY 的挖掘模型创建此查询。
  • 根据客户购物车中的已有项创建一个查询,确定客户可能购买的其他项。您将使用 MINIMUM_PROBABILITY 为 0.01 的挖掘模型创建查询。

单独 PREDICTION JOIN 语句

第一步是在单独预测查询中使用 SELECT FROM <模型> PREDICTION JOIN (DMX)。下面是单独语句的一般示例:

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>] 

代码的以下各行定义购物车中将用于预测客户将添加的其他产品的产品:

(SELECT '<value>' AS [<column>], 
    (SELECT 'value' AS [<nested column>] UNION
        SELECT 'value' AS [<nested column>] ...) 
    AS [<nested table>])

使用带有默认 MINIMUM_PROBABILITY 的模型创建预测

创建关联查询

  1. 对象资源管理器中,右键单击 Analysis Services 实例,指向**“新建查询”**,再单击 DMX

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

  2. 将 PREDICTION JOIN 语句的一般示例复制到空白查询中。

  3. <select list> 
    

    替换为

    PREDICT([Association].[Products],INCLUDE_STATISTICS,3)
    

    您可以只包括列名 [Products],但通过使用 Predict 函数,可以将由算法返回的产品数量限定为三种。您还可以使用 INCLUDE_STATISTICS,该语句将返回每种产品的支持、概率以及校正后的概率。这些统计信息有助于您对预测的准确性进行分级。

  4. [<mining model>] 
    

    替换为

    [Association]
    
  5. (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
    

    该语句使用 UNION 语句指定三种必须与预测的产品一同加入购物车的产品。SELECT 语句中的 Model 列对应于嵌套产品表中包含的模型列。

    现在,完整的语句应该如下所示:

    SELECT
      PREDICT([Association].[Products],INCLUDE_STATISTICS,3)
    From
      [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
    
  6. 在**“文件”菜单中,单击“DMXQuery1.dmx 另存为”**。

  7. 在**“另存为”**对话框中,浏览到相应的文件夹,并将文件命名为 Association Prediction.dmx

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

    该查询将返回一个包含三种产品(HL Mountain Tire、Fender Set - Mountain 和 ML Mountain Tire)的表,并且同一购物车中现有产品的概率顺序与查询中指定的三种产品的顺序相同。该表还包含说明预测准确性的统计信息。

使用 MINIMUM_PROBABILITY 为 0.01 的模型创建预测

创建关联查询

  1. 对象资源管理器中,右键单击 Analysis Services 实例,指向**“新建查询”**,再单击 DMX

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

  2. 将 PREDICTION JOIN 语句的一般示例复制到空白查询中。

  3. <select list> 
    

    替换为

    PREDICT([Modified Association].[Products],INCLUDE_STATISTICS,3)
    
  4. [<mining model>] 
    

    替换为

    [Modified Association]
    
  5. (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
    

    该语句使用 UNION 语句指定三种必须与预测的产品一同加入购物车的产品。SELECT 语句中的 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
    
  6. 在**“文件”菜单中,单击“DMXQuery1.dmx 另存为”**。

  7. 在**“另存为”**对话框中,浏览到相应的文件夹,并将文件命名为 Modified Association Prediction.dmx

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

    该查询将返回一个包含三种产品(HL Mountain Tire、Water Bottle 和 Fender Set - Mountain)的表,并且同一购物车中现有产品的概率顺序与查询中指定的三种产品的顺序相同。该表还包含说明预测准确性的统计信息。

    从该查询的结果可以看出,MINIMUM_PROBABILITY 参数的值反映了查询所返回的结果。

这是市场篮教程中的最后一个步骤。您现在已有一组模型,可使用这些模型预测客户同时要购买的产品类型。

若要了解如何在其他预测情况下使用 DMX,请参阅自行车购买者 DMX 教程