关联规则(一)简介及Apriori算法基础

关联规则数据挖掘

一、简介

1.含义

关联规则用于表示OLTP数据库中诸多属性(项集)之间的关联程度。
关联规则挖掘( Association Rules Mining)则是利用数据库中的大量数据通过关联算法寻找属性间的相关性

2. 度量

  1. 支持度
    同时购买A和B的客户人数占总客户数的百分比称为规则的支持度。

support(AB)=P(AB)

  1. 置信度
    同时购买A和B的客户人数占购买A的客户人数的百分比称为规则的置信度。

condidence(AB)=P(B|A)=P(AB)P(A)

由于在实际应用中,概率P一般是无法事先给出的,所以常以频度代替

为了发现出有意义的关联规则,需要给定两个阈值:最小支持度和最小置信度。
关联规则挖掘的实质是在数据集合中寻找满足用户给定的最小支持度和最小置信度的规则。例:交易情况如下表,要求最小支持度为50%, 最小可信度为 50%, 则可得到:

AC(50%,66.6%)CA(50%,100%)

二、关联规则挖掘算法Apriori

1.术语

项集:在数据库中出现的属性值的集合
K项集:包含K个项的项集
频繁项集:满足最小支持度要求的项集

关联规则一定是在满足用户的最小支持度要求的频繁项集中产生的,因此,关联规则挖掘也就是在数据库中寻找频繁项集的过程。

项集:{A,B,C,D,E,F}
1项集:{A},{B},{C},...,{F}
2项集:{A,B},{A,C}

频繁项集的任何子集也一定是频繁的

2.关联规则分类

  1. 根据规则中所处理的值类型
    • 布尔关联规则:考虑关联项是否存在
    • 量化关联规则:规则描述的是量化的项或属性间的规则
  2. 根据规则中所涉及的数据维
    • 单维
    • 多维
  3. 根据规则中所涉及的抽象层

3.Apriori算法

符号定义:

Lk:k项频繁集的集合

Ck:k项集的候补集合

步骤:

Apriori算法的流程:
Step1,K=1,计算K项集的支持度;
Step2,筛选掉小于最小支持度的项集;
Step3,如果项集为空,则对应K-1项集的结果为最终结果。
否则K=K+1,重复1-3步。

伪代码:

剪枝:

一个k-项集,如果它的一个k-1项子集不是频繁的,那它本身也不可能是频繁的。

4.关联规则挖掘的过程

关联规则挖掘过程主要包含两个阶段:
第一阶段必须先从资料集合中找出所有的频繁项集(Frequent Itemsets),
第二阶段再由这些高频项目组中产生关联规则(Association Rules)。

5.产生关联规则

同时满足最小支持度和最小置信度的才是强关联规则,从频繁项集产生的规则都满足支持度要求,而其置信度则可由以下公式计算:

condidence(AB)=P(A|B)=supportcount(AB)supportcount(A)

关联规则的产生过程

  • 对于每个频繁项集I,产生I的所有非空子集;
  • 对于每个非空子集s,如果sup_port_count(l)sup_port_count(s)min_conf,则输出规则s(ls)

6.Apriori的性能瓶颈

  • Apriori算法的核心:
    用频繁的(k-1)-项集生成候选的频繁 k-项集
    用数据库扫描和模式匹配计算候选集的支持度
  • Apriori的瓶颈:候选集生成
posted @   ShaunY  阅读(381)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示