Apriori基础算法(C++实现)
本人学艺不精,如有错误,还请多担待。
对于Apriori算法中的一些概念,这里不做过多阐述,感兴趣的朋友可自行搜索查看。
1.需求和规格说明
关联分析是数据挖掘中的一个重要任务,Apriori 算法是一种典型的关联分析算法。多用于超市的销售决策,如通过统计一段时间内,用户买商品 A 和 B 同时发生的概率,得出了顾客买 A 则很可能会买 B 的一条规则。
本课题要求对给定的训练数据,实现 Apriori 算法,构件关联规则集合。
2.设计
(1)整体构架。本算法的目的是找出强关联规则,而强关联规则取决于最小支持度(MinSup)和最小置信度(MinConf)。第一步就是找到频繁项集,也就是大于最小支持度的项集,第二步是从中筛选强关联规则,也就是大于最小置信度的项集。找频繁项集主要通过“自连接”和“剪枝”两部分完成,“自连接”是对于满足条件的项集进行连接,而“剪枝”是剔除小于最小支持度的项集。因此,为了“剪枝”的方便,采用链表来连接每个项集,用数组来储存项集中的内容。
(2)变量设置。算法中的最小置信度和最小支持度要求用户来自行输入,那么将MinSup和MinConf设为全局变量。算法中的数据保存在文件中,为了读取和计算的方便,首先需要知道数据库中商品的数目(I