apriori 算法是数据挖掘领域里面用于挖掘频繁项集并且生成关联规则的经典算法,核心依托先验性质也就是频繁项集的所有非空子集同样属于频繁项集,通过逐层迭代搜索的方式,从原始交易数据集当中找出满足最小支持度阈值的频繁项集,再基于频繁项集计算置信度,最终输出符合要求的关联规则,广泛应用在购物篮分析用户行为分析商品搭配推荐等场景,整套算法逻辑清晰原理容易理解,是学习关联规则挖掘的基础核心算法。设计这个算法的核心原因,是如果直接枚举全部项集组合,当数据集项数变多之后组合数量会指数增长,计算开销会快速上升,apriori 算法利用先验性质做剪枝,把不满足支持度的候选项集提前剔除,减少候选集的数量,有效提升频繁项集挖掘的计算效率,让大规模交易数据的关联挖掘具备可落地性。
核心基础概念
支持度 代表某个项集在全部交易记录当中出现的比例,计算公式是项集出现交易条数除以总交易记录条数,用来衡量项集整体出现的普遍程度
置信度 代表在包含前项的交易里面同时包含后项的比例,计算公式是支持度 AB 除以支持度 A,用来衡量关联规则成立的可靠程度
提升度 代表包含前项的条件下后项出现概率和后项本身全局出现概率的比值,用来判断关联规则是正向促进还是独立无关
频繁项集 支持度大于等于预先设定最小支持度阈值的项集
候选项集 由上一层频繁项集经过连接操作生成,等待计算支持度进行筛选的项集
算法完整执行步骤
第一步 扫描原始交易数据集,统计单个项的出现次数,筛选出满足最小支持度的一阶频繁项集,记作 L1
第二步 由上一层频繁项集执行连接运算,生成下一层候选项集,记作 Ck,k 代表项集里面项的个数
第三步 对候选项集执行剪枝操作,依据 apriori 先验性质,如果候选项集任意一个子集不是频繁项集,直接把该候选项集移除
第四步 再次扫描数据集,统计剩余候选项集的支持度,筛选得到当前层级频繁项集 Lk
第五步 重复连接剪枝统计支持度筛选这个循环,直到新的层级无法生成满足阈值的频繁项集,迭代终止
第六步 拿到全部层级频繁项集之后,拆分每一个频繁项集,组合生成所有可能的关联规则,计算每条规则的置信度,保留达到最小置信度阈值的规则,完成最终输出
算法运行示例说明
表格
| 迭代层级 | 候选项集 | 筛选后频繁项集 |
|---|---|---|
| 第一层 | 全部单项 | L1 一阶频繁项集 |
| 第二层 | L1 连接生成二阶候选 | L2 二阶频繁项集 |
| 第三层 | L2 连接生成三阶候选 | L3 三阶频繁项集 |
| 后续层级 | 继续连接生成高阶候选 | 无符合阈值项集,迭代停止 |
apriori 算法依靠逐层搜索加剪枝的机制完成频繁项集挖掘,再由频繁项集衍生关联规则,整套流程稳定可复现,适合入门学习关联规则挖掘,在业务场景当中可以根据业务需求灵活调整最小支持度和最小置信度参数,挖掘出有业务价值的关联规律。
【相关 FAQ】
问题 1 apriori 算法的先验性质起到什么作用
回答 1 apriori 算法的先验性质是算法核心剪枝依据,也就是频繁项集所有非空子集都一定是频繁项集,利用这个性质可以提前淘汰无效候选项集,降低 apriori 算法迭代过程当中的计算量。
问题 2 apriori 算法的最小支持度设置会带来什么影响
回答 2 apriori 算法里面最小支持度阈值越高,筛选得到的频繁项集数量就越少,挖掘出来的关联规则会更加稳健,最小支持度阈值越低,apriori 算法可以挖掘更多低频但是具备业务价值的关联规则。
问题 3 apriori 算法生成关联规则需要用到置信度吗
回答 3 apriori 算法在拿到全部频繁项集之后,需要计算每条候选关联规则的置信度,保留满足最小置信度要求的规则,置信度是 apriori 算法输出合格关联规则的关键判定指标。
【免责申明】
本文内容为 apriori 算法相关知识科普,仅供学习参考,实际项目应用 apriori 算法时,可以结合数据集规模业务目标以及算力条件调整参数与实现方案。


