关联规则挖掘算法

article/2025/9/7 4:06:17

关联规则挖掘是一种基于规则的机器学习算法,该算法可以在大数据库中发现感兴趣的关系。它的目的是利用一些度量指标来分辨数据库中存在的强规则。也即是说关联规则挖掘是用于知识发现,而非预测,所以是属于无监督的机器学习方法。

“尿布与啤酒”是一个典型的关联规则挖掘的例子,沃尔玛为了能够准确了解顾客在其门店的购买习惯,对其顾客的购物行为进行购物篮分析,想知道顾客经常一起购买的商品有哪些。沃尔玛利用所有用户的历史购物信息来进行挖掘分析,一个意外的发现是:"跟尿布一起购买最多的商品竟是啤酒!

关联规则挖掘算法不仅被应用于购物篮分析,还被广泛的应用于网页浏览偏好挖掘,入侵检测,连续生产和生物信息学领域。

与序列挖掘算法不同的是,传统的关联规则挖掘算法通常不考虑事务内或者事件之间的顺序

支持度和置信度

那么我们如何能够从所有可能规则的集合中选择感兴趣的规则呢?需要利用一些度量方法来筛选和过滤,比较有名的度量方法是最小支持度(minimum support)最小置信度(minimum confidence)

假定我们一个数据库包含5条事务,每行表示一个购物记录,1 表示购买,0 表示没有购买,如下图表格所示:

ID | milk | bread | butter | beer | diapers
----|------|------|------|----
1 | 1| 1 | 0 | 0 | 0
2| 0| 0| 1| 0| 0
3| 0| 0| 0| 1| 1
4| 1| 1| 1| 0| 0
5| 0| 1| 0| 0| 0

让 X,Y 各表示为一个 item-set, X ⇒ Y 表示为一条规则(尿布 ⇒ 啤酒 就是一条规则),用 T 表示为事务数据库(并不是说只局限于事务数据库)。

支持度(Support)

支持度表示 item-set 在整个 T 中出现的频率。假定 T 中含有 N 条数据,那么支持度的计算公式为:

譬如在上面的示例数据库中,{beer, diaper} 的支持度为 1/5 = 0.2。5 条事务中只有一条事务同事包含 beer和 diaper ,实际使用中我们会设置一个最低的支持度(minimum support),那些大于或等于最低支持度的 X 称之为频繁的 item-set 。

置信度(Confidence)

置信度表示为规则 X ⇒ Y 在整个 T 中出现的频率。而置信度的值表示的意思是在包含了 X 的条件下,还含有 Y 的事务占总事务的比例。同样假定 T 中含有 N 条数据,那么置信度的计算公式为:

譬如再上面的示例数据库中,{beer, diaper} 的置信度为 0.2/0.2 = 1。表面在所有包含 beer 的事务中都会一定包含 diaper。同样的,在实际使用中我们会设置一个最低置信度,那些大于或等于最小置信度的规则我们称之为是有意义的规则。

相关性度量

有时候使用支持度和置信度挖掘到的规则可能是无效的。

举个例子:

10000 个事务中, 6000 个事务包含计算机游戏, 7500 个包含游戏机游戏, 4000 个事务同时包含两者。关联规则(计算机游戏 ⇒ 游戏机游戏) 支持度为 0.4 ,看似很高,但其实这个关联规则是一个误导。在用户购买了计算机游戏后有 (4000÷6000) = 0.667 的概率的去购买游戏机游戏,而在没有任何前提条件时,用户反而有 (7500÷10000) = 0.75的概率去购买游戏机游戏,也就是说设置了购买计算机游戏这样的前置条件反而会降低用户去购买游戏机游戏的概率,所以计算机游戏和游戏机游戏是相斥的,也即表明是独立的。

因此我们可以通过下面的一些相关性度量方法来筛选挖掘到的规则。

提升度(Lift)

提升度可以用来判断规则 X ⇒ Y 中的 X 和 Y 是否独立,如果独立,那么这个规则是无效的。

计算提升度的公式如下:

如果该值等于 1 ,说明两个条件没有任何关联。如果小于 1 ,说明 X 与 Y 是负相关的关系,意味着一个出现可能导致另外一个不出现。大于 1 才表示具有正相关的关系。一般在数据挖掘中当提升度大于 3 时,我们才承认挖掘出的关联规则是有价值的。

他可以用来评估一个出现提升另外一个出现的程度。

提升度是一种比较简单的判断手法,实际中受零事务(也即不包含 X 也不包含 Y 的事务)的影响比较大。所以如果数据中含有的零事务数量较大,该度量则不合适使用。

全置信度 和 最大置信度

给定两个项集 X 和 Y ,其全置信度为

不难知道,最大置信度为

全置信度和最大置信度的取值都是从 0 ~ 1 ,值越大,联系越大。

该度量是不受零事务影响的。

KULC 度量 + 不平衡比(IR)

给定两个项集 X 和 Y,其 Kulczynski(Kulc) 度量定义为:

可以看做是两个置信度的平均值,同样取值也是从 0 ~ 1,值越大,联系越大,关系越大。

该度量同样也是不受零事务影响的。

Apriori 算法

在执行算法之前,用户需要先给定最小的支持度和最小的置信度。
生成关联规则一般被划分为如下两个步骤:
1、利用最小支持度从数据库中找到频繁项集。

给定一个数据库 D ,寻找频繁项集流程如下图所示

频繁项集的流程示意图

C1 中 {1} 的支持度为 2/4 = 0.5 表示在 D 中的 4 条事务中,{1} 出现在其中的两条事务中,以后几个步骤的支持度计算方式也是类似的。假定给定的最小支持度为 0.5,那么最后我们可以得到一个包含 3 个项的频繁项集 {2 3 5}。

另外,从图中我们可以看到 itemset 中所包含的 item 是从 1 增长到 3 的。并且每次增长都是利用上一个 itemset 中满足支持度的 item 来生成的,这个过程称之为候选集生成(candidate generation)。譬如说 C2 里就不包含 C1 中的 4 。

2、利用最小置信度从频繁项集中找到关联规则。

同样假定最小的置信度为 0.5 ,从频繁项集 {2 3 5} 中我们可以发现规则 {2 3} ⇒ {5} 的置信度为 1 > 0.5 ,所以我们可以说 {2 3} ⇒ {5} 是一个可能感兴趣的规则。

从第一步中我们看出每次计算支持度都需要扫描数据库,这会造成很大的 I/O 开销,所以有很多变种的算法都会在该问题上进行优化(FP-Growth)。此外如何有效的生成候选集也是很多变种算法优化的问题之一(Apriori-all)。

总结

  • 关联规则是无监督的学习算法,能够很好的用于知识的发现。
  • 缺点是很难严重算法的有效性,一般只能够通过肉眼观察结果是否合理。



作者:曾梓华
链接:https://www.jianshu.com/p/7d459ace31ab
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。


http://chatgpt.dhexx.cn/article/aNH8PAxF.shtml

相关文章

Python实现关联规则推荐

1.什么关联规则 关联规则(Association Rules)是反映一个事物与其他事物之间的相互依存性和关联性,如果两个或多个事物之间存在一定的关联关系,那么,其中一个事物就能通过其他事物预测到。关联规则是数据挖掘的…

关联规则

何为关联规则,关联规则是发现事物之间关联关系的分析过程,其典型的例子就是购物篮分析。购物篮分析就是确定顾客在一次购物过程中一起购买的商品,通过分析发现不同商品之间的购买习惯,发现顾客购买的行为习惯,从而发现…

python 关联规则

文章目录 一、基本概念定义1. 记录(事务)定义2. 事务集定义3. 项目(项)定义4. 项目集(项集)定义5. k项集定义6. 支持度(Support)定义7. 置信度(Confidence)定…

关联规则分析

文章目录 一、经典案例二、相关概念由k个项构成的集合X>Y含义事务仅包含其涉及到的项目,而不包含项目的具体信息支持度 (support)置信度 (confidence)提升度 (lift) 三、实验分析自制数据集电影数据集题材 一、经典案例 在美国,一些年轻的父亲下班后…

关联规则(Association Rules)笔记

1 关联规则产生的原因:购物篮问题 关联规则最初是为了解决购物篮问题而产生。上世纪九十年代,美国的沃尔玛超市发现,啤酒和尿布这两种完全不着边际的商品竟然有很高的概率一起被购买。 在一段时间之后,他终于分析出了原因&#xf…

关联规则(Apriori、FP-grpwth)

什么是关联规则 关联规则(Association Rules)是反映一个事物与其他事物之间的相互依存性和关联性,是数据挖掘的一个重要技术,用于从大量数据中挖掘出有价值的数据项之间的相关关系。 所谓数据挖掘就是以某种方式分析源数据&#…

大数据分析笔记 (4) -关联规则(Association Rules)

大数据分析笔记 - 关联规则 总览Apriori算法算法流程评估候选规则 (Evaluation of Candidate Rules)置信度 (Confidence)提升度 (Lift)杠杆率 (leverage)对比结合方法 (Combination of Measures) 验证和测试诊断 应用 总览 关联规则是一种无监督学习方法。这是一种描述性(desc…

机器学习-关联规则

关联规则:关联规则是描述在一个交易中物品之间同时出现的规律的知识模式,更确切的说,关联规则是通过量化的数字描述物品A的出现对物品B的出现有多大影响 A与B是独立的两个非空事务,且A、B同属于一个事务集,那么关联规则是形如A=>B的蕴含式。 关联规则有两种度量标准:…

关联规则算法学习—Apriori

关联规则算法学习—Apriori 一、实验项目:关联规则算法学习 项目性质:设计型 二、实验目的: 理解并掌握关联规则经典算法Apriori算法,理解算法的原理,能够实现算法,并对给定的数据集进行关联规则挖掘 三、实…

统计分析 -- t分布

t 分布的图形与特征 以0为中心,左右对称的单峰分布;t分布曲线是一簇曲线,其形态变化与自由度的大小有关。自由度越小,则t 值越分散,t分布曲线的峰部越矮而尾部翘得越高;说明尾部面积(概率P&…

t分布表

非常需要,保存下来,随时可以取

正态分布/卡方分布/F分布/T分布

正态分布: 正态分布(Normal distribution)又名高斯分布(Gaussiandistribution),若随机变量X服从一个数学期望为μ、方差为σ^2的高斯分布,记为N(μ,σ^2)。其概率密度函数为正态分布…

t分布(Student t distribution)——正态分布的小样本抽样分布

目录 大样本抽样分布 正态分布小样本抽样分布—t分布 运用t分布构建小样本抽样均值的置信区间 运用t分布进行小样本抽样均值检验 大样本抽样分布 对于大样本的抽样分布,由中心极限定理,无论总体分布是否为正态分布,其均值x_bar的抽样分布…

t分布的构造

t分布是在正态分布和卡方分布的基础上构造的, 我们通过代码实现一下 import numpy as np import seaborn as sns import matplotlib.pyplot as plt import warnings warnings.filterwarnings("ignore")# 正态分布 N np.random.normal(0, 1, 100000)# 自由度为 2, …

数理知识:偏t分布

Hello,大家好!最近有在学习一些有关偏态分布的数理知识,但在搜偏 t t t分布的相关资料的时候感觉比较散,所以做个整理,主要参考的书籍是Azzalini在2014年出版的一本有关偏态分布族的书《The Skew-Normal and Related F…

正态分布、t分布、卡方分布、F分布的关系与差异

要理解这些分布,要从基础的正态分布开始。 1. 正态分布 下面是维基百科对正态分布的介绍: 正态分布(英语:normal distribution)又名高斯分布(英语:Gaussian distribution),是一个非常常见的连续概率分布。若随机变量 X服从一个位置参数为 ?、尺度参数为 σ 的正态分…

t分布与t检验详解

最近又遇到了t分布及t检验方面的内容,发现有些地方自己当初没有很明白,就又查了些资料,加深了一下自己的理解,这里也将自己的一些理解记录下来。 1. 理论基础——大数定理与中心极限定理 在正式介绍t分布前,还是再强调一下数理统计学中的两大基石般的定理:大数定理与中心…

抽样分布之χ2 分布,t分布,F分布

文章目录 1. χ 2 \chi^2 χ2 分布2. t t t分布3. F F F分布 统计量的分布称为 抽样分布,在使用统计量进行统计推断时需要知道它的分布,当总体的分布函数已知时,抽样分布是确定的,然而要求出统计量的精确分布,一般…

t检验、t分布、t值

1. t检验的历史 阿瑟健力士公司(Arthur Guinness Son Co.)是一家由阿瑟健力士(Arthur Guinness)于1759年在爱尔兰都柏林建立的一家酿酒公司: 不过它最出名的却不是啤酒,而是《吉尼斯世界纪录大全》&#xf…