目的:找到数据集中事务的关系,如超市中经常一起出现的物品集合,想找到支持度超过0.8的所有项集
概念:
频繁项集:指经常出现在一起的物品集合;
关联规则:指两个物品之间可能存在很强的关系,如一个人买了什么之后很大可能会买另一种东西;
支持度:数据集中包含该项集的记录所占的比例;保留满足最小支持度的项集即为频繁项集;
可信度:针对诸如{尿布}-{葡萄酒}这样的关联规则产生的,定义为支持度({尿布,葡萄酒})/支持度({尿布})
Apriori原理:
想找到支持度超过0.8的所有项集,一般做法是生成所有可能的组合,对每种组合统计其出现的频繁程度,当物品较多时,做法很慢。Apriori帮助减少可能感兴趣的项集数,原理是如果某个项集是频繁的,则它的所有子集也是频繁,但是反过来,如果一个项集是非频繁的,则它的所有超集也是非频繁的。因此该算法从最简单的一个元素开始,计算一个元素的支持度,如果支持度小于最小支持度,则去除该元素;然后将两个元素结合,计算两个元素的支持度,仍然小于最小支持度则去除,以此类推找到所有可能的大于最小支持度的元素组合。
代码: