Apriori关联规则概述
Apriori是一种常用的数据关联规则挖掘方法,它可以用于找出数据中频繁出现的数据集合。找出这样的一些频繁集合有利于决策,例如通过找出超市购物车数据的频繁项集,可以更好地设计货架的摆放。
最典型的例子:啤酒与尿布
Apriori基本概念
关联分析是一种在大规模数据集中寻找相互关系的任务。这些关系可以有两种形式:
频繁项集(frequent item sets): 经常出现在一块的物品的集合。
关联规则(associational rules): 暗示两种物品之间可能存在很强的关系。
例如:
| 交易号码 | 商品 |
|---|---|
| 0 | 豆奶,西瓜 |
| 1 | 西瓜,尿布,啤酒,可乐 |
| 2 | 豆奶,尿布,啤酒,橙汁 |
| 3 | 西瓜,豆奶,尿布,啤酒 |
| 4 | 西瓜,豆奶,尿布,橙汁 |
频繁项集: {啤酒,尿布,豆奶}就是一个频繁项集的例子。
交易号为2,3,4的均同时出现{啤酒,尿布,豆奶}
关联规则:尿布→啤酒就是一个关联规则这意味着如果顾客买了尿布,那么他很可能会买啤酒。
购买尿布的顾客75%的概率会同时购买啤酒
支持度:数据集中包含该项集的记录所占的比例。
{豆奶}的支持度为4/5。{豆奶,尿布}的支持度为3/5。
可信度:针对一条诸如{尿布}→{啤酒}这样具体的关联规则来定义的。
这条规则的可信度被定义为支持度({尿布,啤酒})/支持度({尿布})。
Apriori算法流程
k项集:如果事件A中包含k个元素,那么称这个事件A为k项集,并且事件A满足最小支持度阈值的事件称为频繁k项集。
- 第一步通过迭代,检索出事务数据库中的所有频繁项集,即支持度不低于用户设定的阈值的项集;
- 第二步利用频繁项集构造出满足用户最小信任度的规则。
即:
- 首先找出频繁1-项集,记为L1;
- 然后利用L1来产生候选项集C2,对C2中的项进行判定挖掘出L2,即频繁2-项集;
- 不断如此循环下去直到无法发现更多的频繁k-项集为止。
- 每挖掘一层Lk就需要扫描整个数据库一遍 。
- 算法利用了一个性质:任一频繁项集的所有非空子集也必须是频繁的。
Apriori的应用实例
Apriori算法广泛应用于各种领域,通过对数据的关联性进行了分析和挖掘,挖掘出的这些信息在决策制定过程中具有重要的参考价值:
- Apriori算法广泛应用于消费市场价格分析中;
- Apriori算法应用于网络安全领域,比如网络入侵检测技术中;
- Apriori算法应用于高校管理中;
- Apriori算法被广泛应用于移动通信领域。