Apriori算法详解
简介
Apriori算法是一种经典的关联规则挖掘算法,用于发现大型数据库中的频繁项集和关联规则。该算法基于频繁项集的反单调性质:即如果一个项集是频繁的,那么它的所有子集也是频繁的。Apriori算法广泛应用于市场篮分析、推荐系统和其他需要发现数据间关联关系的领域。
基本概念
- 项(Item):数据集中的单个元素。
- 项集(Itemset):项的集合。
- 支持度(Support):一个项集在数据集中出现的频率。
- 置信度(Confidence):在包含项集X的交易中,项集Y也出现的频率。
- 频繁项集(Frequent Itemset):支持度大于或等于最小支持度阈值的项集。
- 关联规则(Association Rule):形式为X -> Y的规则,表示如果交易中包含X,则很可能也包含Y。
算法流程
- 生成候选项集:生成所有可能的项集组合。
- 扫描数据库:计算每个候选项集的支持度,保留支持度大于或等于最小支持度阈值的项集。
- 生成频繁项集:从频繁项集中生成更大的候选项集,重复步骤2和步骤3,直到无法生成更多的频繁项集。
- 生成关联规则:从频繁项集中生成关联规则,计算每条规则的置信度,保留置信度大于或等于最小置信度阈值的规则。
伪代码
Ck: 候选项集k
Lk: 频繁项集k
L1 = {频繁1项集}
for (k = 2; Lk-1 ≠ ∅; k++) do
Ck = 由Lk-1连接生成的候选k项集
for 所有事务 t ∈ 数据库 do
增加Ck中所有包含t的项集的计数
end for
Lk = 所有Ck中满足最小支持度的项集
end for
return 所有频繁项集的集合 L = ∪ Lk
实现示例
以下是使用Python和mlxtend库实现Apriori算法的示例:
import pandas as p