Apriori算法
1.什么是Apriori算法
Apriori算法是一种经典的用于学习事务数据库中频繁项集和关联规则挖掘的算法。其核心思想是通过迭代生成候选项集,并计算这些候选项集的支持度,从而找出频繁项集。
2.算法步骤
(1)设定最小支持度(min_support):这是用户指定的最小阈值,用于决定一个项集是否足够频繁,即在所有事务中出现的频率是否足够高。
(2)生成所有单个项的集合:即第一层候选项集,这些单个项是数据库中所有不同的项。
(3)计算每个候选项集的支持度:即每个项集在数据库中出现的次数,并筛选出支持度不低于最小支持度的项集,这些项集被称为频繁项集。
(4)构建项集的有序列表(降序排列支持度):为了高效的生成 larger itemsets。
(5)对于每个k(项集的大小):
- 生成所有可能的k项候选集:这是通过合并已经识别出的频繁k-1项集来完成的。
- 计算这些候选集的支持度:如果一个候选集的支持度低于最小支持度阈值,那么这个候选集和所有更大的候选集都不需要考虑。
(6)重复上述步骤直到没有新的频繁项集可以被发现。
(7)生成关联规则:对于每一个频繁项集,生成所有可能的规则,并计算其置信度(confidence),即后件发生的条件下前件发生的条件概率。如果置信度不低于用户指定的最小置信度(min_confidence),则这条规则被认为是有效的。
3.算法特点
(1)高效性:Apriori算法通过减少候选项集的数量来提高效率,它只在候选项集的支持度小于最小支持度时丢弃这些项集。
(2)可扩展性:算法可以适应不同大小的数据库和不同最小支持度、置信度的要求。
(3)确定性:算法在发现频繁项集时是确定性的,即一旦一个项集的支持度低于最小支持度,它就不会被包含在后续的候选项集中。
(4)局部性:算法集中在发现频繁项集上,而关联规则的生成是基于频繁项集的,因此具有一定的局部性。
(5)候选项集生成策略:Apriori算法采用“先验知识”,即利用已经识别出的频繁项集来生成更大的候选项集,这减少了计算量。
4.总结
Apriori算法是数据挖掘领域的基础,尽管它在大数据集上可能不是最优的,但它的原理和思想对后来的算法如FP-growth算法等有着深远的影响。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。