由 L1 生成候选集 C2 的操作,其实在挖频繁项集时挺关键。你可以理解成,用之前的结果组合出新的项集。像{I1, I2}
、{I2, I5}
这种两两组合,就是 Apriori 里最基础的一步。逻辑不难,核心是穷举+剪枝,搭配频率判断,挺实用的一招。
Apriori 算法的思路其实比较直白:先搞出L1
,一路往上迭代出L2
、L3
。每一轮的候选集(像C2
)都从上一轮的频繁项集来组合。效率不算高,但胜在稳定靠谱。
如果你对频繁项集这块感兴趣,下面这几个资料还挺值得翻翻:
- Apriori 频繁项集挖掘算法 —— 基础全,建议先看
- 候选集与频繁项集的生成(PPT) —— 图文清晰,适合快速理解
- FP-Growth 频繁项集挖掘算法 —— 如果你觉得 Apriori 太慢,可以看看这个
- N-list 的频繁项集算法 —— 算是进阶思路,效率还不错
平时做电商推荐、购物篮的时候,还蛮常用这些算法的。如果你要大批量交易数据,可以考虑改用FP-Growth
,压缩得更狠,响应也快。
哦对了,Ck
和Lk
的命名,别搞混了,前者是候选,后者是频繁,逻辑上前置但过滤后才用得上。