Apriori算法Java实现
Apriori 算法的 Java 实现,思路清晰,代码不绕弯子,比较适合用来当参考或者直接改造上线。整个流程用得比较顺,像事务数据库就是用ArrayList
存的,直观好懂。
候选集和频繁项集的也挺实在,HashMap
配合ArrayList
来做频率统计,结构上没花活,读起来不费劲。
像读取事务数据用的是readTable
方法,从 TXT 文件按行解析。每行一个事务,用空格分割,方式比较稳。如果你是做零售推荐、用户行为这种场景的,这种设计就挺贴合实际的。
pruning
函数专门负责剪枝,逻辑清晰,支持度不够的直接删,性能上还能再提升点,但在小中型数据集上跑着还是比较轻快。
如果你要跑大数据集,可以考虑用位向量压内存,或者配合Spark
跑分布式。原始代码里虽然是单线程的,但结构比较干净,改起来也方便。
生成的关联规则像{A} -> {B}
这种,按支持度和置信度筛一波,逻辑也比较严谨。想快速验证想法、写个 PoC,这份 Java 代码蛮合适的。
想拓展学习的话,下面这些链接你可以看看,像Java 实现的 Apriori 算法、Apriori 关联规则算法原理这些都还不错。
下载地址
用户评论