关联规则 置信度与支持度以及Apriori算法简介

article/2025/9/6 23:29:22

关联规则:购物篮分析,最早的出现是为了发现超市销售数据库中不同商品之间的关联关系。

文章目录

    • 1.案例引入
      • (1)啤酒与尿布的故事
      • (2)购物篮例子
    • 2.关联分析问题定义
      • 2.1二元表示
      • 2.2项集和支持度计数
      • 2.3 关联规则
      • 2.4为什么使用支持度和置信度?
      • 2.5.1频繁项集的产生
      • 2.5.2Apriori算法
  • 未完待续

1.案例引入

(1)啤酒与尿布的故事

“啤酒与尿布”的故事产生于20世纪90年代的美国沃尔玛超市。沃尔玛的超市管理人员分析销售数据时发现了一个令人难于理解的现象:在某些特定的情况下,“啤酒”与“尿布”两件看上去毫无关系的商品会经常出现在同一个购物篮中,这种独特的销售现象引起了管理人员的注意,经过后续调查发现。
  原来,美国的妇女通常在家照顾孩子,所以她们经常会嘱咐丈夫在下班回家的路上为孩子买尿布,而丈夫在买尿布的同时又会顺手购买自己爱喝的啤酒。这样就会出现啤酒与尿布这两件看上去不相干的商品经常会出现在同一个购物篮的现象。
 这个发现为商家带来了大量的利润,但是如何从浩如烟海却又杂乱无章的数据中,发现啤酒和尿布销售之间的联系呢?

(2)购物篮例子

商店的收银台每天都收集了大量的顾客购物篮数据,如下表,一般也称作购物篮事务,表中每一行对应一个事务,包含一个唯一标识的TID和给定顾客购买的商品的集合。零售商对分析这些数据很感兴趣,以便了解他们的顾客的购买行为,可以使用这些价值的信息来支持各种商业应用,如市场促销,顾客管理等。
  在这里插入图片描述
关联分析,用于发现隐藏在大型数据集中有意义的联系。我们将所发现的联系用关联规则或频繁项集的形式表示,从上表中可以提取出如下规则:
{尿布}---------------------->{啤酒}
  该规则表明尿布和啤酒销售之间存在很强的联系,因为许多购买了尿布的顾客也购买了啤酒。商家们可以利用这类规则,帮助他们发现新的销售组合或者商机。
  
  在数据问题中,我们需要处理两个关键问题:

  • 从大型事务数据集中发现模式可能在计算上要付出很高的代价。
  • 所发现的某些模式也有可能是虚假的,因为他们可能是偶然发生的。这两个问题是我们在接下来需要解决的。

2.关联分析问题定义

2.1二元表示

我们可以用二元形式表示购物篮数据,其中每行对应一个事务,每列对应一个项。项可以用二元变量表示,项在事务中出现它的值为1,否则为0。
  项在事务中的出现比不出现更重要,因此项也是非对称的二元变量。这也是实际购物篮数据的极其简单的展现,这种表示忽略了数据的一些比较重要特征,比如价格和数量等。
  在这里插入图片描述

2.2项集和支持度计数

在关联分析中,包含0个或多个项的集合被称为项集(itemset),如果一个项集包含k个项,则称它为k-项集。如{啤酒,尿布,牛奶}是一个3项集。空集是不包含任何项的项集。
  项集的一个最重要的性质是它的支持度计数,也就是包含特定项集的事务个数。我们从数学上定义项集X的支持度计数表示为
  在这里插入图片描述
从表中可以得出=={啤酒,尿布,牛奶}==的支持度计数为2,因为只有两个事务中包含了这三个项。

2.3 关联规则

关联规则是形如X->Y的蕴含表达式,其中X和Y是不相交项集。
关联规则的强度使用它的支持度(support)和置信度(confidence)度量:

支持度确定可以用于给定数据集的频繁程度,数学表达式如下。
在这里插入图片描述
分子指X和Y同时出现的次数,N是事务的总数,即行数
置信度确定Y在包含X的事务中出现的频繁程度,数学表达式如下。
在这里插入图片描述
购买X的情况下同时购买X和Y的概率,分子指X和Y同时出现的次数,分母是前置项出现的总和

在这里插入图片描述
在这里插入图片描述

例子:
考虑规则{牛奶,尿布}–>{啤酒}
(1){牛奶,尿布,啤酒}的支持度计数为2
(2)事务总数N=5
(3){牛奶,尿布}前置出现项的次数为3
(4)支持度S=2/5=0.4,置信度C=2/3=0.67

2.4为什么使用支持度和置信度?

关联规则发现:给定事务的集合T,关联规则发现是指==找出支持度大于等于minsup(最小支持度)并且置信度大于等于minconf(最小置信度)==的所有规则。
但是根据上述规则挖掘关联规则的时候,计算的代价太高。我们在实际业务中通常采用的一种策略:将关联规则挖掘任务分解为两个子任务

  • (1)频繁项集的产生:其目标是发现满足最小支持度阈值的所有项集,这些项集就是频繁项集(frequent itemset)。该任务开销也是最大的。
  • (2)规则的产生:其目标是从上一步发现的频繁项集中提取所有高置信度规则,这些规则称作强规则。

2.5.1频繁项集的产生

根据高中数学集合的基本知识,一个含有K个元素的集合,它的非空子集个数为在这里插入图片描述
(不包括空集)。频繁项集也是在集合中寻找非空子集的过程,需要计算规模可能是指数级别的,复杂度高。
在这里插入图片描述
为了降低频繁项集产生的计算复杂度,采用两种方法:

  • (1)减少候选项集的数目(M):使用先验Apriori原理,无需计算支持度而删除某些候选项集的有效方法。也算是一种剪枝的方法。
  • (2)减少比较次数:将每个候选集与每个事务相匹配,同时,可以存储候选项集或压缩数据集减少比较次数。
    接下来解释先验原理
    定理1:先验原理:如果一个项集是频繁的,则它的所有子集一定也是频繁的。同理,如果一个子集是非频繁的,则整个超集是非频繁的。
    在这里插入图片描述

我们通过上述原理,立马可以对很多非频繁项集进行剪枝,这种剪枝方法也称作基于支持度的剪枝。依赖的原理为:一个项集的支持度绝不会超过他的子集的支持度。

在这里插入图片描述
图3:基于支持度的剪枝:如果{a,b}是非频繁的,则所有超集均为非频繁的

2.5.2Apriori算法

(1)算法介绍
  1993年美国学者Agrawal提出通过分析购物篮中的商品集合,从而找出商品之间关联关系的关联算法,并根据商品之间的关系,找出客户的购买行为。Agrawal从数学及计算机算法角度提出了商品关联关系的计算方法——Apriori算法。
  沃尔玛从上个世纪90年代尝试将Aprior算法引入到POS机数据分析中,并获得了成功,于是产生了“啤酒与尿布”的故事。
  如何寻找?
  在历史购物记录中,一些商品总是在一起购买。但人看上去不是那么的直观的,而是隐蔽的。让计算机做这事,设计算法让计算机自动去找,找到这样的模式(规律)。
  目标:寻找那些总是一起出现商品。
  如:购买mahout实战—>机器学习实战
  引出支持度和置信度
  《mahout实战》与《机器学习实战》一起该买的记录数占所有商品记录总数的比例——支持度(整体)
  买了《mahout实战》与《机器学习实战》一起该买的记录数占所有购买《mahout实战》记录数的比例——置信度==(局部)==
  需要达到一定的阈值

(2)举例
  Apriori算法是第一个且最重要的关联规则算法,使用基于支持度的剪枝技术,从而控制候选项集的指数级别的增长。
  我们把前面的商品的例子,假设最小支持度阈值是60%,相当于最小支持度计数为3。(根据支持度=x/5=0.6=>x=3)
在这里插入图片描述
在这里插入图片描述
分析:

  • (1)根据最小支持度阈值0.6,计算最小支持度为3,则根据最小支持度删去支持度低于3的候选集,此时我们称之为候选1-项集。如上图去掉了可乐和鸡蛋的两项。
  • (2)将得到的候选1项集合并为候选2项集,如上图,根据支持度计数将低于3的舍去,舍去{啤酒,面包}和{啤酒,牛奶},得到所有的候选2-项集。
  • (3)利用候选2项集得到候选3项集:{啤酒,尿布,面包}3,{啤酒,尿布,牛奶}3,{面包,尿布,牛奶}3,因为{啤酒,面包},{啤酒,牛奶}在候选二项集中已经被判定非频繁项集,因此根据先验原理,它的超集也是非频繁项集,最后得到{面包,尿布,牛奶}3的频繁项集。

算法描述:

  • (1)初始通过单遍扫描数据集,确定每个项的支持度。从而得到频繁1-项集的集合F1.
  • (2)使用上次迭代发现的频繁(k-1)项集,产生新的频繁k项集。(关键步骤)
  • (3)对候选集支持度计数,算法需要扫描一次数据集,使用子集函数确定包含在每一个事务t中所有候选k项集。
  • (4)计算候选项的支持度计数之后,算法将删去支持度计数小于minsup的所有候选集。
  • (5)当没有新的频繁项集产生,算法结束。

总结:Apriori算法的频繁项集产生的部分有两个重要特点:

  • (1)逐层计算,从频繁1-项集到最长的频繁项集,每次遍历项集格中的一层。
  • (2)使用“产生-测试”(geberate and test)策略来发现频繁项集。每次迭代后,新的候选项集都由前一次迭代发现的频繁项集产生,然后对每个候选的支持度进行计数,并与最小支持度阈值进行比较。

未完待续


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

相关文章

关联规则挖掘_基于人工智能的网络告警关联分析处理的应用

1 概述 随着通信网络近些年的快速发展,其规模已经相当庞大,在网络中每天都会产生告警信息,并且这些信息数据量庞大、突发故障多,当网络设备出现故障并引发告警时,与它关联的设备也会引发相应的故障,并在短时间内产生大量告警信息[1-2]。由于一个故障的产生往往会引发多…

关联规则常用算法

关联规则(Association Rules)是海量数据挖掘(Mining Massive Datasets,MMDs)非常经典的任务,其主要目标是试图从一系列事务集中挖掘出频繁项以及对应的关联规则。关联规则来自于一个家喻户晓的“啤酒与尿布…

关联规则挖掘算法

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

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服从一个位置参数为 ?、尺度参数为 σ 的正态分…