如何解读Apyori(Apriori算法)输出中长度大于2的关联规则?
Apyori库关联规则结果的解读问题
你用Apyori得到的输出如下:
Motif Support Confidence Lift 0 [05M09T, 05M093] 0.066946 0.524590 1.628273 1 [05M091, 05M092, 05M093] 0.052301 0.581395 1.804591
第二行的核心问题在于:Apyori返回的结果里,单个频繁项集可能对应多条关联规则,你看到的置信度和提升度是其中某一条规则的指标,而非整个项集的通用指标。
关键说明
对于3项集[05M091, 05M092, 05M093],理论上可以生成6条不同的关联规则(所有非空真子集作为前件,补集作为后件),你提到的两种情况只是其中之二:
{05M091} → {05M092, 05M093}{05M091, 05M092} → {05M093}
这两条规则的置信度、提升度确实不同,但Apyori默认输出如果只展示项集整体,会掩盖规则的拆分逻辑。
解决方法
要明确具体是哪条规则,需要遍历Apyori结果中的ordered_statistics属性,提取每条规则的前件(items_base)和后件(items_add),示例代码如下:
from apyori import apriori # 假设你的数据集是dataset results = apriori(dataset, min_support=0.05, min_confidence=0.5) for result in results: # 遍历当前项集对应的所有关联规则 for stat in result.ordered_statistics: antecedent = list(stat.items_base) consequent = list(stat.items_add) print(f"规则: {antecedent} → {consequent}") print(f"支持度: {result.support:.6f}, 置信度: {stat.confidence:.6f}, 提升度: {stat.lift:.6f}") print("---")
运行这段代码后,你就能清晰看到第二行对应的具体规则是哪一条,以及对应的指标计算依据。
内容的提问来源于stack exchange,提问作者Tryzis
相关产品推荐
相关产品推荐

