《大数据分析原理与实践》一一 3.2 关联规则分析

简介: 本节书摘来自华章出版社《大数据分析原理与实践》一 书中的第3章,第3.2节,作者:王宏志 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.2 关联规则分析
关联规则分析又称关联挖掘,就是在交易数据、关系数据或其他信息载体中,查找存在于项目集合或对象集合之间的频繁模式、关联、相关性或因果结构。或者说,关联分析是发现交易数据库中不同商品(项)之间的联系。比较常用的算法是Apriori算法和FPgrowth
算法。
关联可分为简单关联、时序关联、因果关联。关联规则分析的目的是找出数据库中隐藏的关联,并以规则的形式表达出来,这就是关联规则,其定义如下:
给定一个项集合I={I1,I2,…,Im}和一个交易数据库D,其中每个事务t是I的非空子集,即每一个交易都与一个唯一的标识符TID对应。关联规则是形如X→Y的蕴涵式,其中,X和Y是I的子集合,分别称为关联规则的前驱和后继。
关联规则的有效性通常用支持度和置信度来衡量。X→Y在D中的支持度(support)是D中事务同时包含X、Y的百分比,即S(X→Y)=P(X?∪?Y);其置信度(confidence)是D中事务已经包含X的情况下,包含Y的百分比,即C(X→Y)=P(X|Y)。
如果满足最小支持度阈值和最小置信度阈值,则认为关联规则是有趣的。如果某个项集的支持度大于等于设定的最小支持度阈值,则称这个项集为“频繁项集”,所有“频繁k-项集”组成的集合通常记作Lk。这些阈值通常根据数据分析的需要人为设定。
我们用一个例子来说明关联规则的相关概念。
例如,某胃肠医院对来院看病的病人提供了5种可做的检查,某天早上前9位病人做了这5项检查(见表3-5)。
image

在表3-5中,每一行表示一个事务,{腹部B超}、{胃镜}都是1-项集,{腹部B超,胃镜}是2-项集,{腹部B超,胃镜,碳14}是3-项集。
考虑规则{腹部B超,胃镜}→{碳14},由于{腹部B超,胃镜,碳14}的支持度计数为2,而事务的总数是9,所以规则的支持度为。规则的置信度是项集{腹部B超,胃镜,碳14}的支持度计数与项集{腹部B超,胃镜}支持度计数的商。而项集{腹部B超,胃镜}支持度计数为4,所以置信度为。
假定支持度计数大于3(不包括3)的项集都是频繁的,那么我们可以得出频繁-1项集有{腹部B超},{胃镜},{碳14},计数分别为6,7,6。而频繁-2项集有{腹部B超,胃镜},{腹部B超,碳14},{胃镜,碳14},计数分别为4,4,4。还可以发现,不存在其他的频繁项集。
支持度–置信度框架是有局限性的,支持度的缺点在于许多潜在的有意义的模式会由于含有支持度计数较小的项而被删去。置信度的缺陷则在于忽略规则后件中项集的支持度。
为了解决置信度的这个缺陷,引入了兴趣因子和提升度的概念。
提升度lift(X→Y)=
对于二元变量,提升度等价于兴趣因子,其定义如下:
I(X→Y)=
该度量解释如下:
I(X→Y)=

例如,lift (腹部B超→胃镜)=I (腹部B超→胃镜)

关联规则挖掘过程主要包含两个阶段:
先从数据集中找出所有的频繁项集,它们的支持度均大于等于最小支持度阈值。
由这些频繁项集产生关联规则,计算它们的置信度,然后保留那些置信度大于等于最小置信度阈值的关联规则。
关联规则挖掘的具体算法将在本书11.3节详细讨论。

相关文章
|
21天前
|
机器学习/深度学习 算法 搜索推荐
从理论到实践,Python算法复杂度分析一站式教程,助你轻松驾驭大数据挑战!
【10月更文挑战第4天】在大数据时代,算法效率至关重要。本文从理论入手,介绍时间复杂度和空间复杂度两个核心概念,并通过冒泡排序和快速排序的Python实现详细分析其复杂度。冒泡排序的时间复杂度为O(n^2),空间复杂度为O(1);快速排序平均时间复杂度为O(n log n),空间复杂度为O(log n)。文章还介绍了算法选择、分而治之及空间换时间等优化策略,帮助你在大数据挑战中游刃有余。
45 4
|
20天前
|
SQL 消息中间件 分布式计算
大数据-124 - Flink State 01篇 状态原理和原理剖析:状态类型 执行分析
大数据-124 - Flink State 01篇 状态原理和原理剖析:状态类型 执行分析
57 5
|
16天前
|
存储 SQL 分布式计算
湖仓一体架构深度解析:构建企业级数据管理与分析的新基石
【10月更文挑战第7天】湖仓一体架构深度解析:构建企业级数据管理与分析的新基石
22 1
|
21天前
|
存储 消息中间件 大数据
大数据-69 Kafka 高级特性 物理存储 实机查看分析 日志存储一篇详解
大数据-69 Kafka 高级特性 物理存储 实机查看分析 日志存储一篇详解
22 4
|
20天前
|
消息中间件 druid 大数据
大数据-153 Apache Druid 案例 从 Kafka 中加载数据并分析(二)
大数据-153 Apache Druid 案例 从 Kafka 中加载数据并分析(二)
26 2
|
20天前
|
消息中间件 分布式计算 druid
大数据-153 Apache Druid 案例 从 Kafka 中加载数据并分析(一)
大数据-153 Apache Druid 案例 从 Kafka 中加载数据并分析(一)
45 1
|
3天前
|
数据采集 分布式计算 OLAP
最佳实践:AnalyticDB在企业级大数据分析中的应用案例
【10月更文挑战第22天】在数字化转型的大潮中,企业对数据的依赖程度越来越高。如何高效地处理和分析海量数据,从中提取有价值的洞察,成为企业竞争力的关键。作为阿里云推出的一款实时OLAP数据库服务,AnalyticDB(ADB)凭借其强大的数据处理能力和亚秒级的查询响应时间,已经在多个行业和业务场景中得到了广泛应用。本文将从个人的角度出发,分享多个成功案例,展示AnalyticDB如何助力企业在广告投放效果分析、用户行为追踪、财务报表生成等领域实现高效的数据处理与洞察发现。
14 0
|
18天前
|
SQL 分布式计算 大数据
大数据平台的毕业设计01:Hadoop与离线分析
大数据平台的毕业设计01:Hadoop与离线分析
|
21天前
|
分布式计算 Hadoop 数据挖掘
6个常用大数据分析工具集锦
6个常用大数据分析工具集锦
41 0
|
22天前
|
机器学习/深度学习 数据采集 数据可视化
如何理解数据分析及数据的预处理,分析建模,可视化
如何理解数据分析及数据的预处理,分析建模,可视化
37 0