Microsoft 关联算法

适用于:SQL Server 2019 及更早版本的 Analysis Services Azure Analysis Services Fabric/Power BI Premium

重要

数据挖掘在 SQL Server 2017 Analysis Services 中已弃用,现在在 SQL Server 2022 Analysis Services 中已停止使用。 对于已弃用和停止使用的功能,文档不会更新。 若要了解详细信息,请参阅 Analysis Services 后向兼容性

Microsoft 关联算法是一种通常用于建议引擎的算法。 建议引擎根据客户已购买的项或者客户已对其表现出兴趣的项向他们推荐项。 Microsoft 关联算法也可用于市场篮分析。

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

关联模型的一组规则

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

示例

Adventure Works Cycle 公司正在重新设计其网站的功能。 重新设计的目的是提高产品的零售量。 由于公司将每笔销售记录在事务数据库中,因此他们可以使用 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 关联算法技术参考

关联模型所必需的数据

在准备用于关联规则模型的数据时,应理解特定算法的要求,其中包括所需要的数据量以及使用数据的方式。

关联规则模型的要求如下:

  • 单键列 每个模型都必须包含一个用于唯一标识每条记录的数值列或文本列。 不允许复合键。

  • 单个可预测列 一个关联模型只能有一个可预测列。 通常它是嵌套表的键列,例如列出已购买的产品的字段。 这些值必须是离散或离散化值。

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

有关关联模型支持的内容类型和数据类型的详细信息,请参阅 Microsoft 关联算法技术参考的“要求”部分。

查看关联模型

若要浏览该模型,可以使用 Microsoft 关联查看器。 查看关联模型时,SQL Server Analysis Services从不同角度呈现相关性,以便更好地了解在数据中找到的关系和规则。 查看器中的 “项集” 窗格提供最常见组合或项集的详细明细。 “规则” 窗格显示从数据中生成的规则列表,添加概率的计算,并根据关联重要性对规则进行排名。 通过依赖关系网络查看器,您可以用可视方式浏览连接各个不同项的方式。 有关详细信息,请参阅 使用 Microsoft 分类查看器浏览模型

如果需要查找有关任一项集和规则的更多详细信息,可以在 Microsoft 一般内容树查看器中浏览模型。 为模型存储的内容包括对每个项集的支持,每个规则的分数以及其他统计信息。 有关详细信息,请参阅 关联模型的挖掘模型内容 (Analysis Services - 数据挖掘)

创建预测

处理完模型后,可以使用规则和项集来做出预测。 在关联模型中,如果有指定项存在,预测将告诉您有可能发生的项,而且预测可以包含诸如概率、支持或重要性等信息。 有关如何创建针对关联模型的查询的示例,请参阅 关联模型查询示例

有关如何创建针对数据挖掘模型的查询的信息,请参阅 数据挖掘查询

性能

创建项集和对关联进行计数的过程可能会非常耗时。 尽管 Microsoft 关联规则算法使用优化技术来节省空间并加快处理速度,但你应该知道,在如下情况下可能会出现性能问题:

  • 数据集很大,包含许多单个项。

  • 设置的最小项集大小过小。

若要尽量缩短处理时间,并降低项集的复杂度,可以在分析数据之前尝试按照类别对关联项进行分组。

注解

  • 不支持使用预测模型标记语言 (PMML) 创建挖掘模型。

  • 支持钻取。

  • 支持使用 OLAP 挖掘模型。

  • 支持创建数据挖掘维度。

另请参阅

数据挖掘算法(Analysis Services – 数据挖掘)
使用 Microsoft 关联规则查看器浏览模型
关联模型的挖掘模型内容(Analysis Services – 数据挖掘)
Microsoft 关联算法技术参考
关联模型查询示例