适用于:
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关联规则算法是已知 Apriori 算法的直接实现。
Microsoft决策树算法和Microsoft关联规则算法都可用于分析关联,但每个算法找到的规则可能有所不同。 在决策树模型中,导致特定规则的拆分基于信息收益,而在关联模型中,规则完全基于置信度。 因此,在关联模型中,强规则或置信度较高的规则可能不一定很有趣,因为它不提供新信息。
Microsoft关联算法的实现
Apriori 算法不分析模式,而是生成并计算 候选项集。 项可以表示事件、产品或属性的值,具体取决于要分析的数据的类型。
在最常见的关联模型布尔变量类型中,表示是/否或缺失/现有值,将分配给每个属性,例如产品或事件名称。 市场篮分析是关联规则模型的示例,该模型使用布尔变量来表示客户购物篮中是否存在或缺少特定产品。
对于每个项集,该算法将创建表示支持和置信度分数。 这些分数可用于对项集进行排名和派生有趣的规则。
还可以为数值属性创建关联模型。 如果属性是连续的,则可以 将数字离散化,或在 区间中分组。 然后,可以将离散化值作为布尔值或属性值对进行处理。
支持、概率和重要性
支持,有时称为频率,是指包含目标项或项组合的事例数。 只有至少具有指定支持量的项才能包含在模型中。
频繁项集是指项的集合,其项组合的支持度超过MINIMUM_SUPPORT参数定义的阈值。 例如,如果项集为 {A,B,C} 且MINIMUM_SUPPORT值为 10,则必须在至少 10 个事例中找到每个项 A、B 和 C 才能包含在模型中,并且必须在至少 10 个事例中找到项 {A,B,C} 的组合。
注意 还可以通过指定项集的最大长度来控制挖掘模型中的项集数,其中长度表示项数。
默认情况下,对任何特定项或项集的支持表示包含该项或项的事例计数。 但是,您也可以通过输入小于1的小数,将“MINIMUM_SUPPORT”表示为数据集中总案例的百分比形式。 例如,如果指定MINIMUM_SUPPORT值为 0.03,则表示数据集中总事例的至少 3% 必须包含此项或项集才能包含在模型中。 应试验模型,以确定使用计数还是百分比更有意义。
相比之下,规则的阈值不表示为计数或百分比,而是表示为概率,有时称为 置信度。 例如,如果项集 {A,B,C} 发生在 50 个事例中,但项集 {A,B,D} 也发生在 50 个事例中,而另外 50 个事例中的项集 {A,B} 显然不是 {C} 的强预测值。 因此,若要根据所有已知结果对特定结果进行加权,SQL Server Analysis Services 通过将对项集 {A、B,C} 的支持除以对所有相关项集的支持来计算单个规则(如 If {A,B} Then {C})的概率。
可以通过设置MINIMUM_PROBABILITY的值来限制模型生成的规则数。
对于创建的每个规则,SQL Server Analysis Services 输出一个分数,指示其 重要性,也称为 提升。 提升度重要性以不同的计算方式计算项集和规则。
项集的重要性计算为项集的概率除以项集中各个项的复合概率。 例如,如果项集包含 {A,B},SQL Server Analysis Services 首先计算包含此组合 A 和 B 的所有事例,并将其除以事例总数,然后规范化概率。
规则的重要性是通过在给定规则左侧条件下,计算规则右侧的对数似然来确定的。 例如,在规则 If {A} Then {B}中,SQL Server Analysis Services 计算包含 A 和 B 的事例与包含 B 但不含 A 的事例之间的比率,然后使用对数刻度对该比率进行规范化处理。
特征选择
Microsoft关联规则算法不执行任何类型的自动功能选择。 相反,该算法提供用于控制算法使用的数据的参数。 这可能包括每个项集的大小限制,或设置向模型添加项集所需的最大和最小支持。
若要筛选掉过于常见因而不感兴趣的项和事件,请减小MAXIMUM_SUPPORT的值,从模型中删除非常频繁的项集。
若要筛选出很少见的项目和项集,请增加MINIMUM_SUPPORT的值。
若要筛选出规则,请增加MINIMUM_PROBABILITY的值。
自定义 Microsoft 关联规则算法
Microsoft关联规则算法支持影响生成的挖掘模型的行为、性能和准确性的多个参数。
设置算法参数
可以使用 SQL Server Data Tools 中的数据挖掘设计器随时更改挖掘模型的参数。 还可以通过在 AMO 中使用 AlgorithmParameters 集合或使用 XMLA 中的 MiningModels 元素(ASSL) 以编程方式更改参数。 下表描述了每个参数。
注释
不能使用 DMX 语句更改现有模型中的参数;必须在 DMX CREATE MODEL 或 ALTER STRUCTURE 中指定参数...创建模型时添加 MODEL。
MAXIMUM_ITEMSET_COUNT
指定要生成的项集的最大数目。 如果未指定数字,则使用默认值。
默认值为 200000。
注释
项集按支持排名。 在具有相同支持的项集中,排序是任意的。
MAXIMUM_ITEMSET_SIZE
指定项集中允许的最大项数。 将此值设置为 0 指定项集的大小没有限制。
默认值是3。
注释
降低此值可能会减少创建模型所需的时间,因为达到限制时模型处理会停止。
MAXIMUM_SUPPORT
指定项集支持的最大实例数量。 此参数可用于消除经常出现的项,因此可能没有什么意义。
如果此值小于 1,则该值表示总事例的百分比。 大于 1 的值表示可以包含项集的事例的绝对数。
默认值为 1。
MINIMUM_ITEMSET_SIZE
指定项集中允许的最小项数。 如果增加此数字,则模型可能包含较少的项集。 例如,如果要忽略单项项集,这非常有用。
默认值为 1。
注释
不能通过增加最小值来减少模型处理时间,因为 SQL Server Analysis Services 必须在处理过程中计算单个项的概率。 但是,通过将此值设置为更高,可以筛选出较小的项集。
MINIMUM_PROBABILITY
指定规则为 true 的最小概率。
例如,如果将此值设置为 0.5,则表示无法生成小于 50% 概率的规则。
默认值为 0.4。
MINIMUM_SUPPORT
指定在算法生成规则之前,项集必须包含的最小实例数。
如果将此值设置为小于 1,则最小事例数将计算为总事例的百分比。
如果将此值设置为大于 1 的整数,则指定最小案例数,其计算方式为必须包含项目集的案例计数。 如果内存有限,算法可能会自动增加此参数的值。
默认值为 0.03。 这意味着要包含在模型中,项集必须在至少 3% 的案例中被找到。
OPTIMIZED_PREDICTION_COUNT
定义要缓存以优化预测的项数。
默认值为 0。 使用默认值时,算法将生成查询中请求的预测数。
如果为OPTIMIZED_PREDICTION_COUNT指定非零值,即使请求其他预测 , 预测查询最多可以返回指定的项数。 但是,设置值可以提高预测性能。
例如,如果该值设置为 3,则算法仅缓存 3 个用于预测的项。 您无法看到与返回的 3 个项目同样可能的其他预测。
建模标志
支持将以下建模标志用于Microsoft关联规则算法。
不可为空
指示该列不能包含 null。 如果 SQL Server Analysis Services 在模型训练过程中遇到 null,则会出现错误。
适用于挖掘结构列。
MODEL_EXISTENCE_ONLY
表示将列视为具有两种可能状态: Missing 和 Existing。 null 是缺失值。
适用于挖掘模型列。
要求
关联模型必须包含键列、输入列和单个可预测列。
输入列和可预测列
Microsoft关联规则算法支持下表中列出的特定输入列和可预测列。 有关挖掘模型中内容类型的含义的详细信息,请参阅内容类型(数据挖掘)。
| 列 | 内容类型 |
|---|---|
| 输入属性 | 循环、离散、离散化、键、表、有序 |
| 可预测属性 | 循环性、离散、离散化、表格、有序 |
注释
支持循环和有序内容类型,但算法将它们视为离散值,并且不执行特殊处理。
另请参阅
Microsoft关联算法
关联模型查询示例
关联模型的挖掘模型内容(Analysis Services - 数据挖掘)