数据挖掘——关联规则挖掘

定义

关联分析定义

关联分析用于发现隐藏在大型数据集中的令人感兴趣的联系,所发现的模式通常用关联规则或频繁项集的形式表示。

关联规则反映一个事物与其它事物之间的相互依存性和关联性。如果两个或者多个事物之间存在一定的关联关系,那么,其中一个事物发生就能够预测与它相关联的其它事物的发生。

频繁项集定义

项集(Itemset)包含0个或多个项的集合。包含k个项就是k-项集

支持度计数(Support count ):包含特定项集的事务个数

支持度(Support)包含项集的事务数与总事务数的比值

频繁项集(Frequent Itemset)满足最小支持度阈值( minsup )的所有项集

直接超集:若项集 S 的某个超集 S′ 满足 SS′ 且 ∣S′∣=∣S∣+1,则 S′ 是 S 的直接超集

例如:项集 {A, B} 的直接超集可能是 {A, B, C},但不会是 {A, B, C, D}(因为多增加了两个元素)

在这里插入图片描述

就是说,对于每一个最大频繁项集来讲,增加任意一个项,都会使其支持度超过最小支持度阈值

关联规则 定义

关联规则是形如 X → \rightarrow Y的蕴含表达式, 其中 X 和 Y 是不相交的项集

关联规则的强度

支持度 Support (s)确定项集的频繁程度

置信度 Confidence ©确定Y在包含X的事务中出现的频繁程度

关联规则挖掘问题:给定事务的集合T, 关联规则发现是指找出支持度大于等于minsup并且置信度大于等于minconf的所有规则

大多数关联规则挖掘算法通常采用的一种策略是,将关联规则挖掘任务分解为如下两个主要的子任务:

  • 频繁项集产生(Frequent Itemset Generation)其目标是发现满足最小支持度阈值的所有项集,这些项集称作频繁项集。
  • 规则的产生(Rule Generation)其目标是从上一步发现的频繁项集中提取所有高置信度的规则,这些规则称作强规则。

挖掘关联规则的一种原始方法是:蛮力计算每个可能规则的支持度和置信度,这种方法计算代价过高,因为可以从数据集提取的规则的数量达指数级

改进措施:

减少候选项集的数量先验原理:(Apriori)

减少比较的次数:替代将每个候选项集与每个事务相匹配,可以使用更高级的数据结构,或存储候选项集或压缩数据集,来减少比较次数(FPGrowth)

Apriori——减少候选集数量

先验原理:如果一个项集是频繁的,则它的所有子集一定也是频繁的。相反,如果一个项集是非频繁的,则它的所有超集也一定是非频繁的

在这里插入图片描述

算法基本思想:

  • 对于给定的一个数据库和最小支持度阈值和置信度阈值;
  • 对其进行扫描,获得候选1-项集,基于支持度阈值确定频繁1-项集,该集合记作L1;
  • 然后利用L1生成候选2-项集,基于支持度阈值确定频繁2-项集,该集合记作L2;
  • 基于L2确定L3,如此下去,直到不能再找到任何频繁k-项集。
  • 最后在所有的频繁集中基于置信度阈值提取强规则,即产生用户感兴趣的关联规则。

在这里插入图片描述

最小候选集生成的时候注意:

在这里插入图片描述

Apriori算法特点

  • 利用启发式淘汰规则,逻辑比较清晰,泛用性广,能够很好的进行扩展。
  • 多次扫描数据库,计算支持度开销大;
  • 候选项规模庞大,项的数目比较大,候选项的数目将达到组合爆炸式的增长;

FPGrowth——减少比较的次数

基本思想

  • 扫描数据库两遍,构造频繁模式树(FP-Tree)
  • 深度优先,自底向上递归产生频繁项集
  • FP-Tree是一种输入数据的压缩表示,它通过逐个读入事务,并把每个事务映射到FP树中的一条路径来构造。

算法步骤

扫描数据库,计算单一项的频率(或支持度计数);(一遍扫描)

扫描数据库,计算单一项的频率(或支持度计数);

按频率降序排列,写出频繁1项集集合;
  • 支持度过滤;
  • 按频率递减排序;
  • 相同频率按字典序排列;
  • 重写事务数据库。

在这里插入图片描述

二遍扫描——构建FP-tree;
  • 创建树根节点Null;
  • 扫描事务数据库,将项集按L中的次序处理,针对每个事务创建一个事务分支;
  • 创建项表头,使每个项目通过节点链指向它在树中的位置。

在这里插入图片描述

用FP-tree递归增长频繁集

方法

  • 针对项头表按频率从低到高遍历,构造每个项目的条件模式基; (条件模式基:头部链表中某一节点的前缀路径组合。)
  • 构造条件FP-tree; 重新对条件模式基进行支持度计数,不满足最小支持度的项删除
  • 条件FP-tree与叶子节点组合得到频繁项集。

以下面这个为例

在这里插入图片描述

条件模式基:每个I5到根节点的路径

条件FP树:将不满足最小支持度的项删除,如果有些项包含于其它项,则可以将其合并计数

频繁项集:条件FP树中出现的每个项与I5的所有组合

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

FP-tree 结构的优点

  • 完备
    • 不会打破交易中的任何模式
    • 包含了频繁模式挖掘所需的全部信息
  • 紧密
    • 支持度降序排列: 支持度高的项在FP-tree中共享的机会也高
    • 决不会比原数据库大

提取关联规则

核心步骤

生成候选规则

方法:对每个频繁项集L,生成其所有非空真子集作为规则的前件(Antecedent),剩余项作为后件(Consequent)。

计算置信度

示例:若 {A,B} 的支持度为 0.3,A 的支持度为 0.5,则规则 AB 的置信度为 0.3/0.5=0.6。

筛选高置信度规则
  • 阈值设定:根据业务需求设定最小置信度阈值 min_conf(如 0.7)。
  • 过滤规则:仅保留满足 Confidence(XY)≥min_conf 的规则。

优化策略

剪枝技术——基于先验原理:若规则X→Y的置信度低于阈值,则其超集X′⊃X的规则X′→Y也必然不满足条件,可直接剪枝

示例:若 {A,B}→C 的置信度不足,则无需计算 {A,B,D}→C

关联规则的评估

一、支持度(Support)

定义与公式

支持度表示项集在数据集中出现的频率,即某组商品(或事件)同时出现的概率。
Support ( A → B ) = P ( A ∪ B ) P ( D ) \text{Support}(A \rightarrow B) = \frac{P(A \cup B)}{P(D)} Support(AB)=P(D)P(AB)
示例:某超市1000次交易中,200次包含面包(A),则A的支持度为20%;若同时包含面包和牛奶(B)的交易有300次,则组合(A→B)的支持度为30%

意义与作用
  • 筛选高频项集:支持度阈值(如≥5%)用于过滤低频组合,减少计算量。例如,Apriori算法通过逐层筛选满足最小支持度的项集
  • 反映普遍性:高支持度说明商品组合常见(如牛奶和面包),可能已成为消费常识;低支持度可能隐含潜在关联(如特定人群的购买偏好)
局限性
  • 忽略规则强度:无法区分高频但弱关联的规则(如季节性商品同时出现)。
  • 数据依赖性:支持度受数据集规模影响,需结合业务背景设定阈值。

二、置信度(Confidence)

通常置信度不满足反单调性(anti-monotone property ),例如: c(ABC → \rightarrow D) 可能大于也可能小于 c(AB → \rightarrow D)但是,针对同一个频繁项集的关联规则,如果规则的后件满足子集关系,那么这些规则的置信度间满足反单调性

定义与公式

置信度衡量规则的条件概率,即在前项A发生时后项B出现的概率。
Confidence ( A → B ) = P ( A ∩ B ) P ( A ) \text{Confidence}(A \rightarrow B) = \frac{P(A \cap B)}{P(A)} Confidence(AB)=P(A)P(AB)
示例:购买牛奶的顾客中60%也购买面包,则规则“牛奶→面包”的置信度为60%

还可以用支持度比值形式表示
Confidence ( A → B ) = Support ( A ∩ B ) Support ( A ) \text{Confidence}(A \rightarrow B) = \frac{\text{Support}(A \cap B)}{\text{Support}(A)} Confidence(AB)=Support(A)Support(AB)

意义与作用
  • 评估规则可靠性:置信度越高,规则越可靠。例如,置信度100%表示A出现时B必然出现(如“购买手机→购买充电器”)。
  • 指导商业决策:高置信度规则可用于推荐系统(如“购买尿布→推荐啤酒”)或促销策略
局限性
  • 忽略基础概率:可能高估低频后项的关联。例如,若B本身出现概率极低,即使置信度高,实际意义有限。
  • 单向性:仅反映A→B的关系,无法说明B→A的关联性。

三、Lift方法

Lift通过比较两个事件联合发生概率独立发生概率的比值,量化其关联性:
L i f t ( A → B ) = P ( A ∩ B ) P ( A ) ⋅ P ( B ) Lift(A→B)=\frac{P(A∩B)}{P(A)·P(B)} Lift(AB)=P(A)P(B)P(AB)

  • 分子:事件A和B同时发生的概率(联合概率)。
  • 分母:事件A和B独立发生时的概率乘积。

等价表达
Lift也可表示为置信度(Confidence)与后项支持度(Support of B)的比值:
L i f t ( A → B ) = C o n f i d e n c e ( A → B ) S u p p o r t ( B ) Lift(A→B)=\frac{Confidence(A→B)}{Support(B)} Lift(AB)=Support(B)Confidence(AB)

  • Lift > 1——正相关:事件A的发生提升了事件B的概率。例如,购买牛奶的顾客更可能购买面包(Lift=2),说明两者存在强关联性,适合交叉销售
  • Lift = 1——独立:事件A与B无关联,如随机事件。例如,购买啤酒和可乐的Lift为1,说明两者购买行为互不影响
  • Lift < 1——负相关:事件A的发生抑制了事件B的概率。例如,购买尿布的顾客较少购买啤酒(Lift=0.5),可能因消费场景冲突
Lift的局限性
  • 仅衡量两两关联:无法反映多事件(如三个及以上商品)的复杂关系
  • 数据敏感性:样本量较小时,Lift值可能波动较大;极端值(如低概率事件偶然同时发生)会导致Lift虚高
  • 忽略因果关系:仅表明关联性,无法确定因果方向(如“购买A导致购买B”或反之)

各评价方法对比

指标定义与作用局限性
支持度事件A和B共同出现的频率无法区分关联性强弱
置信度事件A发生时事件B的条件概率忽略B的独立发生概率
Lift综合考虑联合概率与独立概率,衡量关联性强度仅适用于两两分析

参考资料:关联规则挖掘FP-growth FPGrowth算法例题解析https://www.bilibili.com/video/BV1HS4y1G7h6/?buvid=XX905AE92954E716D021D4F68AE58452161F5&from_spmid=search.search-result.0.0&is_story_h5=false&mid=P9FOFeO4cX38jai0wlvSqA%3D%3D&p=1&plat_id=114&share_from=ugc&share_medium=android&share_plat=android&share_session_id=903cec42-2316-417c-a480-43209c483440&share_source=WEIXIN&share_tag=s_i&spmid=united.player-video-detail.0.0&timestamp=1715258376&unique_k=n1FxDcF&up_id=540022436&share_source=weixin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值