笔记分享: 西安交通大学COMP551705数据仓库与数据挖掘——02. 关联规则挖掘
引言
在数据挖掘的众多技术中,关联规则挖掘(Association Rule Mining)是最为经典和广泛应用的一种方法。关联规则挖掘主要用于发现数据库中变量间的有趣关系,广泛应用于市场篮分析、社交网络分析、医疗数据分析等领域。西安交通大学的《数据仓库与数据挖掘》课程中,关联规则挖掘是数据挖掘模块中的重要组成部分之一。
本文将详细介绍关联规则挖掘的基本概念、常用算法(如Apriori算法与FP-growth算法),以及如何在实际场景中应用这些算法。并通过多个案例分析,帮助大家更好地理解关联规则挖掘的实践应用。
1. 关联规则挖掘的基本概念
1.1 什么是关联规则挖掘?
关联规则挖掘是一种用于发现数据集中物品之间关联关系的技术。通过关联规则,我们可以揭示出在某些条件下,某些事件或行为具有显著的关联性。这种技术常用于分析顾客购物习惯,挖掘出常同时购买的商品。
关联规则通常是由前提(antecedent)和结论(consequent)组成的一个规则。例如,规则 {牛奶} -> {面包}
表示如果顾客购买了牛奶,那么他也可能购买面包。这里,牛奶是前提,面包是结论。
1.2 关联规则的度量标准
在关联规则挖掘中,规则的质量通过几个关键度量指标来评估,主要包括:
-
支持度(Support):支持度是指在数据库中,包含某些项集(例如{牛奶, 面包})的事务所占的比例。支持度反映了规则的普遍性。
支持度的公式为:
其中,count(A ∪ B)是包含A和B的事务数,N是总事务数。
-
置信度(Confidence):置信度是指在所有包含前提A的事务中,同时也包含结论B的比例。置信度反映了规则的可靠性。
置信度的公式为:
-
提升度(Lift):提升度衡量了A与B之间的关联是否比独立发生更为显著。如果提升度大于1,表示A与B之间有正相关关系;如果小于1,则表示A与B之间有负相关关系。
提升度的公式为:
1.3 关联规则的应用领域
关联规则挖掘的应用非常广泛,以下是一些典型的应用领域:
-
市场篮分析(Market Basket Analysis):通过分析顾客购买记录,发掘哪些商品经常一起购买,从而进行产品推荐、库存管理等。
-
医疗数据分析:在医疗数据中,关联规则可以帮助发现疾病之间的关联,例如某些疾病的患者可能同时患有其他疾病。
-
社交网络分析:通过分析社交网络中用户行为数据,挖掘用户之间的关系,进行个性化推荐等。
-
网页推荐系统:通过分析用户访问历史,发掘用户间访问行为的相关性,从而进行网页内容的推荐。
2. 关联规则挖掘的算法
2.1 Apriori算法
Apriori算法是最早且最广泛使用的关联规则挖掘算法之一。其核心思想是通过逐步扩展频繁项集来生成关联规则。Apriori算法的主要步骤如下:
-
生成候选项集:首先从数据库中找出单个项的支持度,找出频繁项集。然后通过频繁项集之间的组合生成候选项集。
-
剪枝操作:通过Apriori性质,剪去不可能是频繁项集的候选项集,减少计算量。
-
迭代计算:不断迭代,直到生成所有的频繁项集。
2.1.1 Apriori算法的实现步骤
假设我们有一个交易数据集,包含如下数据:
事务ID | 购买商品 |
---|---|
T1 | 牛奶, 面包 |
T2 | 牛奶, 尿布, 啤酒 |
T3 | 面包, 尿布, 啤酒 |
T4 | 牛奶, 面包, 尿布 |
T5 | 牛奶, 面包, 啤酒 |
T6 | 面包, 尿布 |
-
生成候选项集C1:统计每个商品的支持度,生成候选项集C1。
- {牛奶}、{面包}、{尿布}、{啤酒}
-
剪枝和更新频繁项集L1:根据最小支持度阈值筛选频繁项集L1。
-
生成候选项集C2:结合频繁项集L1中的元素生成候选项集C2。
- {牛奶, 面包}、{牛奶, 尿布}、{面包, 尿布}、{尿布, 啤酒}
-
剪枝和更新频繁项集L2:根据最小支持度筛选频繁项集L2。
-
继续迭代:不断进行候选项集生成与剪枝,直到不能生成新的频繁项集为止。
-
生成关联规则:从频繁项集中生成关联规则,计算置信度与提升度,筛选出最有价值的规则。
2.1.2 优缺点
-
优点:
- 算法简单,易于理解和实现。
- 通过逐步生成候选项集,有较高的准确性。
-
缺点:
- 需要多次扫描数据,计算量较大,特别是对于海量数据。
- 对内存的要求较高,且生成的候选项集可能非常庞大。
2.2 FP-growth算法
FP-growth算法是一种高效的频繁项集挖掘算法,相比于Apriori算法,它避免了生成大量候选项集的过程。FP-growth算法通过构造一个压缩的频繁模式树(FP-tree)来解决上述问题。
2.2.1 FP-growth算法的步骤
-
构建FP-tree:首先通过扫描事务数据库,统计每个项的频率,并将频繁项按照频率降序排列,然后构建FP-tree。
-
条件模式基(Conditional Pattern Base):通过从FP-tree中提取条件模式基来生成频繁项集。
-
递归挖掘频繁项集:对每个条件模式基进行递归,进一步挖掘频繁项集。
2.2.2 优缺点
-
优点:
- 相比于Apriori算法,FP-growth算法避免了候选项集的生成和剪枝,极大地提高了效率。
- 对数据的扫描次数较少,能够处理大规模数据集。
-
缺点:
- 构建FP-tree需要占用大量内存,可能会对内存产生较大压力。
- 在一些特殊情况下,FP-tree的构建可能会变得复杂。
3. 关联规则挖掘的实际应用案例
3.1 市场篮分析
市场篮分析是关联规则挖掘最典型的应用场景之一。在零售行业,商家希望了解顾客的购买行为,并通过挖掘商品之间的关联关系来进行产品推荐和优化库存管理。
3.1.1 案例背景
某超市的POS(销售点)系统记录了顾客的购买行为,商家希望找出哪些商品经常一起购买,并根据这些规则优化商品的摆放位置,提升销售额。
3.1.2 数据集
假设有以下交易数据集:
事务ID | 商品 |
---|---|
T1 | 牛奶, 面包 |
T2 | 牛奶, 尿布, 啤酒 |
T3 | 面包, 尿布, 啤酒 |
T4 | 牛奶, 面包, 尿布 |
T5 |