Apriori 的剪枝步骤合并进连接操作的算法,蛮巧妙的做法。用了一个叫TQ的临时项集,把原来要反复遍历的部分提前掉,减少了扫描次数,效率还挺可观的。对比传统Apriori那种从头跑到尾的方式,确实更省事。

频繁项集生成这块,Lk-1 和 L1 的体量差距大,所以能从Lk-1缩成L1的规模,是实在的优化。你要是平时也在做关联规则,尤其是用老版本Apriori头疼的,不妨看看这个思路。

代码实现上其实也不复杂,TQ这个中间变量管理好了就行。你可以类比缓存的思路来理解:先把的组合放进去,后续就不用每次都重复比对了。

想要上手可以参考下面这些资料,有 PDF 的也有Java代码示例,挺方便的:Java Apriori 关联规则挖掘示例项目 这个还不错,适合边学边改。

如果你做的是电商推荐、用户行为这类,或者医疗数据挖掘,Apriori 挖规则还是蛮实用的。嫌Apriori慢也可以看看FP-Growth,也是个不错的替代方案。