Aprior算法
Aprior算法
优点:易编码实现
缺点:在大数据集上可能较慢
适用数据类型:数值型或者标称型数据。
关联分析是一种在大规模数据集中寻找有趣关系的任务,这些关系可以有两种形式:频繁项集或者这关联规则。
频繁项集是经常出现在一块的物品集合,关联规则暗示两种物品之间可能存在很强的关系。
一个项集的支持度被定义为数据集中包含该项集的记录所占的比例。
支持度是针对项集来说的,因此可以定义一个最小支持度,而只保留满足最小支持度的项集。
Apriori算法的一般流程
收集数据:适用任意方法。准备数据:任何数据类型都可以,因为我们只保存集合
分析数据:适用任意方法。训练数据:适用Aprioro算法来找到频繁项集。
测试算法:不需要测试过程。使用算法:用于发现频繁项集以及物品之间的关联规则。
Apriori算法的两个输入参数分别是最小支持度和数据集。该算法首先会生成所有单个物品的项集列表。接着骚猫交易记录来查看哪些项集满足最小支持度要求,那些不满足最小支持度的集合会被去掉。然后,对剩下来的集合进行组合以生成包含两个元素的项集。接下来,再重新扫描交易记录,去掉不满足最小支持度的项集。该过程重复进行直到所有项集都被去掉。
整个Apriori算法的伪代码如下:
当集合中项的个数大于0时
构建一个k个项组成的候选项集的列表
检查数据以确认每个项集都是频繁的
保留频繁项集并构建k+1项组成的候选项集列表。
关联分析时用于发现大数据集中元素间有趣关系的一个工具集,可以采用两种方式来量化这些有趣的关系,第一种方式是使用频繁项集,他会给出经常在一起出现的元素项。第二种方式是关联规则,每条关联规则就意味着元素项之间的“如果...那么”关系。
发现元素项之间不同组合是个十分耗时的任务,不可避免需要大量昂贵的计算资源,这就需要一些更加智能的方法在合理的时间范围内找到频繁项集,能够实现这一目标的一个方法是Apriori算法,它使用Apriori原理来减少在数据库上进行检查的集合的数目。Apriori原理试说如果一个元素项是不频繁的,那么那些包含该元素的超集也是不频繁的。Apriori算法从氮元素集开始,通过组合满足最小支持度要求的项集来形成更大的集合。支持度用来度量一个集合在原始数据中出现的频率。