最近学习了关联分析和用于寻找频繁项集的Apriori算法,做了一些笔记,并且来自己实现一下。
一、Apriori原理
首先需要了解几个基本概念:
项(item): 每个item成为一个项,例如购物记录里的apple, banana, orange每一件不同的物品就是一个项。
项集: 一个或多个项的集合组成项集。
频繁项集: 出现次数大于某个阈值的项集,称为频繁项集。
事务(transaction): 每一条记录称为一次事务,本质是一个项集,例如某一次购买的商品集合。
频繁项集的评估标准
-
支持度(support)是A,B同时出现的次数占总事务数的百分比。
s u p p o r t ( A , B ) = P ( A ∩ B ) support(A, B) = P(A\cap B) support(A,B)=P(A∩B) -
置信度(confidence)是已知A出现条件下B出现的概率。
c o n f i d e n c e ( A ⇒ B ) = P ( B ∣ A ) = P ( A ∩ B ) P ( A ) confidence(A\Rightarrow B) = P(B\mid A) = \frac{P(A\cap B)}{P(A)} confidence(A⇒B)=P(B∣A)=P(A)P(A∩B)
Apriori基本思想与原理
前提假设:频繁项集的所有非空子集也一定是频繁的。
步骤:
- 找出频繁项集:
- 对每条记录进行排序,使得item按照字典序排列,防止出现(a,b)和(b,a)同一个项集出现两次的情况。
- 产生频繁一项集,即数据列表中的每个item
- 由频繁项集产生强关联规则

实际应用中很少直接采用Apriori算法,但基本都是对其改进后的算法。
二、评价
- 缺点:
- 频繁一项集会很大
- 未考虑出现次数
- 应用于商业领域可能需要考虑能产生更高效益的频繁项集

本文详细介绍了Apriori算法的基本原理,包括项、项集、事务等概念,以及支持度与置信度的计算方式。通过实例展示了如何用Python实现Apriori算法,并生成频繁项集和强关联规则。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



