Microsoft 关联算法

更新日期: 2008 年 11 月 17 日

Microsoft 关联算法是指 Microsoft SQL Server 2005 Analysis Services (SSAS) 提供的关联算法,对建议引擎非常有用。建议引擎根据客户已购买的项或者客户已对其表现出兴趣的项向他们推荐产品。Microsoft 关联算法对市场篮分析也非常有用。有关市场篮分析的详细信息,请参阅“数据挖掘教程”中的第 4 课:生成市场篮方案

关联模型基于包含各事例的标识符及各事例所包含项的标识符的数据集生成。事例中的一组项称为“项集**”。关联模型由事例中一系列项集和说明这些项如何分组的规则组成。算法标识的规则可用于根据客户购物车中已有的项来预测客户将来可能购买的产品。以下关系图显示了项集中的一系列规则。

关联模型的一组规则

正如该关系图中所示,Microsoft 关联算法可能会在数据集中找到许多规则。该算法使用两个参数(support 和 probability)来说明项集以及该算法生成的规则。例如,如果 X 和 Y 表示可以放入购物车中的两个项,则 support 参数是数据集中包含 X 和 Y 这两项组合的事例的数目。通过将 support 参数与用户定义的 MINIMUM_SUPPORTMAXIMUM_SUPPORT, 参数结合使用,算法可以控制生成的项集数。probability 参数也称为“置信度”**,表示数据集中既包含 X 也包含 Y 的事例部分。通过将 probability 参数与 MINIMUM_PROBABILITY 参数结合使用,算法可控制生成的规则数。

示例

Adventure Works Cycles 公司正在重新设计其网站的功能。重新设计的目的是提高产品的零售量。由于该公司在事务数据库中记录了每个销售,因此它们可以使用 Microsoft 关联算法来标识倾向于集中购买的产品集。然后,它们可以根据客户购物篮中已有的项预测客户可能感兴趣的其他项。

算法的原理

Microsoft 关联算法遍历数据集以查找同时出现在某个事例中的项。然后,算法将最少出现了由 MINIMUM_SUPPORT 参数指定的最少事例次数的关联项分组为项集。例如,项集可以为“Mountain 200=Existing, Sport 100=Existing”,并且支持的数目可以为 710,那么该算法将根据项集生成规则。可以使用这些规则根据是否存在该算法标识为重要项的其他特定项,预测数据库中的某项是否存在。例如,某规则可以为“if Touring 1000=existing and Road bottle cage=existing, then Water bottle=existing”,并且其概率可能为 0.812。在此例中,该算法发现由于购物篮中存在 Touring 1000 轮胎和水壶套,因此预测购物篮中也可能存在水壶。

使用算法

关联模型必须包含一个键列、多个输入列以及一个可预测列。输入列必须为离散列。关联模型的输入数据通常包含在两个表中。例如,一个表可能包含客户信息,而另一个表可能包含客户购物情况。您可以使用嵌套表将该数据输入到模型中。有关嵌套表的详细信息,请参阅嵌套表

Microsoft 关联算法支持下表中列出的特定输入列内容类型、可预测列内容类型以及建模标志。

输入列内容类型

Cyclical、Discrete、Discretized、Key、Table 和 Ordered

可预测列内容类型

Cyclical、Discrete、Discretized、Table 和 Ordered

建模标志

MODEL_EXISTENCE_ONLY 和 NOT NULL

所有 Microsoft 算法均支持一些通用的函数。但是,Microsoft 关联算法还支持下表中列出的其他函数。

IsDescendant

PredictHistogram

IsInNode

PredictNodeId

PredictAdjustedProbability

PredictProbability

PredictAssociation

PredictSupport

有关对所有 Microsoft 算法都通用的函数列表,请参阅数据挖掘算法。有关如何使用这些函数的详细信息,请参阅 数据挖掘扩展插件 (DMX) 函数参考

Microsoft 关联算法不支持使用预测模型标记语言 (PMML) 创建挖掘模型。

Microsoft 关联算法支持数个影响生成的挖掘模型的性能和准确性的参数。下表对各参数进行了说明:

参数

说明

MINIMUM_SUPPORT

指定在该算法生成规则之前必须包含项集的事例的最小数目。将该值设置为小于 1 将指定最小事例数作为事例总计的百分比。将该值设置为大于 1 的整数将指定最小事例数作为必须包含项集的事例的绝对数。如果内存有限,则该算法可能会增大此参数的值。

默认值为 0.03。

MAXIMUM_SUPPORT

指定支持项集的事例的最大数目。如果该值小于 1,则表示事例总计的百分比。大于 1 的值表示可以包含项集的事例的绝对数。

默认值为 1。

MINIMUM_ITEMSET_SIZE

指定一个项集中允许的最小项数。

默认值为 1。

MAXIMUM_ITEMSET_SIZE

指定一个项集中允许的最大项数。将该值设置为 0 将指定对项集的大小没有限制。

默认值为 3。

MAXIMUM_ITEMSET_COUNT

指定要生成的最大项集数。如果没有指定数目,则使用默认值。默认值为 200000。

ms174916.note(zh-cn,SQL.90).gif注意:

项集仅按照支持进行排名。在具有相同支持的项集中,排序是任意的。

MINIMUM_PROBABILITY

指定规则为 True 的最小概率。例如,将该值设置为 0.5 将指定不生成概率小于百分之五十的规则。

默认值为 0.4。

OPTIMIZED_PREDICTION_COUNT

定义为进行预测而需要缓存或优化的项目的数目。

默认值为 0。使用默认值时,算法将生成查询中请求的任意多个预测。

更改历史记录

版本 历史记录

2008 年 11 月 17 日

新增内容:
  • 添加了有关 OPTIMIZED_PREDICTION_COUNT 的默认值和默认行为的说明。

2007 年 9 月 15 日

更改的内容:
  • 更正了对 MAXIMUM_ITEMSET_COUNT 默认行为的描述。
  • 有关与 MINIMUM_SUPPORT 默认值相关的问题的信息,请参阅 Microsoft 知识库。

请参阅

概念

数据挖掘算法
数据挖掘向导
使用数据挖掘工具
使用 Microsoft 关联规则查看器查看挖掘模型

其他资源

CREATE MINING MODEL (DMX)

帮助和信息

获取 SQL Server 2005 帮助