第八章 关联规则(1)
大数据商业分析 课程教学大纲

《大数据商业分析》课程教学大纲一、课程基本信息英文名称Big Data and Business Analytics 课程代码课程性质专业选修课授课对象管理科学与工程学分 2.0 学时36主讲教师修订日期2021年9月9日指定教材张瑾,翁张文著《大数据商业分析》,中国人民大学出版社,2021年版二、课程目标(一)总体目标:本课程将围绕商业数据分析这一核心问题介绍三部分内容:一、以目前进行商业数据分析最主要的编程语言Python为主,介绍Python编程语法;二、介绍进行商业数据分析的主要算法和模型,包括统计方法、数据挖掘方法、机器学习方法以及深度学习方法;三、以商业管理中常见的应用问题为例,介绍4-5个商业数据分析案例,包括市场营销方面的消费者细分、在线社区中虚假评论的识别、房地产经济分析、金融投资领域中的行业研究报告分析等。
(二)课程目标:课程目标1:能掌握Python编程基本概念;课程目标2:能掌握商业数据分析主要方法,包括数据挖掘方法、机器学习方法和深度学习方法;课程目标3:能将数据分析方法应用于实践。
三、教学内容第一章Python简介1.教学目标:了解Python发展历程和Python在不同系统安装方法2.教学重难点:Python在不同系统安装方法3.教学内容:3.1. 发展历程3.2. 特点3.3. 语言标准3.4. Python 安装与运行4.教学方法:讲授5.教学评价:以课堂问答方式来评价教学效果。
第二章数据类型1.教学目标:了解Python数据类型相关概念2.教学重难点:Python不同数据类型3.教学内容:3.1. 概述3.2. 数字类型3.3. 列表与元组3.4. 字符串3.5. 字典3.6. 集合3.7. 基本运算符4.教学方法:讲授5.教学评价:以课堂问答方式来评价教学效果。
第三章条件与循环1.教学目标:了解Python条件与循环语句2.教学重难点:列表推导与其他语句3.教学内容:3.1. 条件3.2. 循环3.3. 列表推导与其他语句4.教学方法:讲授5.教学评价:以课堂问答方式来评价教学效果。
关联规则

剪 枝
由Lk-1生成Ck, 所有Lk都在Ck中,但Ck可能仍 然很大,需要对Ck进行剪枝,再使Ck减小, 得到最后的候选集。剪枝过程如下: 再判断Ck中k-1子项目集是否在Lk-1中,如不 在,那么这个Ck就不会是频繁项目集。从Ck 删除。 Ck就会大大减小。 由{i1, i3 ,i4 ,i6} ,{i1, i3 ,i4 ,i8}产生的{i1, i3 ,i4 ,i6, ,i8} 如{ i3 ,i4 ,i6, ,i8}或 {i1,,i4 ,i6, ,i8}……不在Lk-1中, {i1, i3 ,i4 ,i6, ,i8}就应删去。
22
Apriori 算法说明
例子:最小支持度设为2。 D(数据库) C1 (候选集)
TID T100 T200 T300 T400 T500 T600 T700 T800 T900 D中的项目 i1 i2 i2 i1 i1 i2 i1 i1 i1 i2 i5 i4 i3 i2 i4 i3 i3 i3 i2 i3 i5 i2 i3 项集 支持度 {i 1 } {i 2 } {i 3 } {i 4 } {i 5 } 6 7 6 2 2
10
3、若有事务T,其中 X T, Y T, X∩Y=, X∪Y T, X、Y也为项目集;则形如 XY 的规则称为关联规则;(即购物事务,购买X, 也购买Y); 4、在数据库D中,若s% 的事务包含X∪Y,则关联 规则XY的支持率为s%;在数据库 D 中,若c% 包含项目集X的事务的也包含项目集Y,则关联 规则XY的置信度为c%。
13
关联规则挖掘分为两步:
1、找频繁(大)项目集 大于最小支持度项集 2、找强关联规则 大于最小支持度和最小置信度的关联规则
第二个任务已经圆满解决。关联规则挖掘的研 究工作多为找频繁集的各种算法。
关联规则

C3 itemset
{2 3 5}
扫描 D
L3 itemset sup
{2 3 5} 2
{2,3}->{5}
21
Apriori 够快了吗? — 性能瓶颈
Apriori算法的核心:
用频繁的(k – 1)-项集生成候选的频繁 k-项集 用数据库扫描和模式匹配计算候选集的支持度 巨大的候选集: 多次扫描数据库:
给定数据库D,关联规则的挖掘就是找出所有存 在于数据库D中的强关联规则。因此整个关联规 则挖掘过程可以分解为以下两个子问题:
找出所有的频繁项目集; 根据找到的频繁项目集导出所有的强关联规则。
13
强关联规则的产生
第一个子问题的求解,需要多次扫描数据库D,这意味着 关联规则挖掘算法的效率将主要取决于数据库扫描、I/O操 作和频繁项目集的计算上。因此如何迅速、高效地找出所 有的频繁项目集是关联规则挖掘的中心问题 第二个子问题的求解比较容易,R. Agrawal等人已提出了 有效的解决办法,具体过程如下: 对每个频繁项目集I,产生所有的非空真子集:对I的任意 非空真真子集m,若support(I)/Support(m) minconfidence,则产生强关联规则m->(l-m)。
第二步: 修剪
forall itemsets c in Ck do
forall (k-1)-subsets s of c do if (s is not in Lk-1) then delete c from Ck
19
生成候选集的例子
L3={abc, abd, acd, ace, bcd} 自连接 : L3*L3
关联规则 PPT

2. 2 挖掘过程
第一阶段 找出所有频繁项集 (Large Itemsets) 第二阶段 由频繁项集产生强关联规则(Association Rules )
3. 1 相关算法
Apriori算法 基于划分的算法 FP-Grow算法
3.2 Apriori算法
思想:
首先,找出频繁1-项集,以L1表示.L1用来寻找L2,即频繁2-项集 的集合.L2用来寻找L3,以此类推,直至没有新的频繁k-项 集被发现.每个Lk都要求对数据库作一次完全扫描.
2.1 基本概念
交易数据库(D) 交易/事务 (T)
T I
交易标识符(TID) 项集(I)
I {i1,i2,..i.m},
规则 i1 i2
支持度support: D中包含i1和 i2 的事务数与总的事务数的比值
s(A B)|{ | TD| |AD| |B|T}||
可信度 confidence: D中同时包含i1和i2的事务数与包含i1的事务数的比值
2.1 基本概念
阈值 最小支持度 – 表示规则中的所有项在事务中出现的频度 最小可信度 - 表示规则中左边的项(集)的出现暗示着右
边的项(集)出现的频度
项集 – 任意项的集合 k-项集 – 包含k个项的项集 频繁 (或大)项集 – 满足最小支持度的项集 强规则:那些满足最小支持度和最小可信度的规则.
Apriori算法
候选项集生成的示例 L3={ abc, abd, acd, ace, bcd } 自连接: L3*L3 由abc 和abd 连接得到abcd 由acd 和ace 连接得到acde 剪枝: 因为ade 不在L3中acde 被剪除
Apriori算法
挑战: 多次扫描事务数据库 巨大数量的候选项集 繁重的计算候选项集的支持度工作 改进 Apriori: 大体的思路 减少事务数据库的扫描次数 缩减候选项集的数量 使候选项集的支持度计算更加方便
关联规则

1 引言关联规则挖掘发现大量数据中项集之间有趣的关联或相关联系。
它在数据挖掘中是一个重要的课题,最近几年已被业界所广泛研究。
关联规则挖掘的一个典型例子是购物篮分析。
关联规则研究有助于发现交易数据库中不同商品(项)之间的联系,找出顾客购买行为模式,如购买了某一商品对购买其他商品的影响。
分析结果可以应用于商品货架布局、货存安排以及根据购买模式对用户进行分类。
Agrawal等于1993年首先提出了挖掘顾客交易数据库中项集间的关联规则问题[AIS93b],以后诸多的研究人员对关联规则的挖掘问题进行了大量的研究。
他们的工作包括对原有的算法进行优化,如引入随机采样、并行的思想等,以提高算法挖掘规则的效率;对关联规则的应用进行推广。
最近也有独立于Agrawal的频集方法的工作[HPY00],以避免频集方法的一些缺陷,探索挖掘关联规则的新方法。
也有一些工作[KPR98]注重于对挖掘到的模式的价值进行评估,他们提出的模型建议了一些值得考虑的研究方向。
2 基本概念设I={i1,i2,..,i m}是项集,其中i k(k=1,2,…,m)可以是购物篮中的物品,也可以是保险公司的顾客。
设任务相关的数据D是事务集,其中每个事务T是项集,使得T⊆I。
设A是一个项集,且A⊆T。
关联规则是如下形式的逻辑蕴涵:A⇒ B,A⊂I, A⊂I,且A∩B=Φ。
关联规则具有如下两个重要的属性:支持度: P(A∪B),即A和B这两个项集在事务集D中同时出现的概率。
置信度: P(B|A),即在出现项集A的事务集D中,项集B也同时出现的概率。
同时满足最小支持度阈值和最小置信度阈值的规则称为强规则。
给定一个事务集D,挖掘关联规则问题就是产生支持度和可信度分别大于用户给定的最小支持度和最小可信度的关联规则,也就是产生强规则的问题。
3 关联规则种类1) 基于规则中处理的变量的类别,关联规则可以分为布尔型和数值型。
布尔型关联规则处理的值都是离散的、种类化的,它显示了这些变量之间的关系。
关联规则基本概念-Read

关联规则基本概念设I={i 1,i 2,…i m }是项的集合。
设任务相关的数据D 是数据库事务的集合,其中每个事务T 是项的集合,使得I T ⊆。
每个事务有一个标识符,称作TID 。
设A 是一个项集,事务T 包含A 当且仅当T A ⊆。
关联规则是诸如A ⇒B 的蕴涵式,其中I A ⊂,I B ⊂,并且φ=⋂B A 。
(1)支持度与置信度规则的支持度和置信度是两个规则兴趣度量值,它们分别表示发现规则的有用性和确定性。
规则A ⇒B 在事务级中D 中成立,具有支持度s ,其中s 是D 中事务包含B A ⋃(即A 和B 二者)的百分比,它是概率)(B A P ⋃。
规则A ⇒B 在事务集中具有置信度c ,其中D 中包含A 的事务同时也包含B 的百分比是c 。
这是条件概率)(A B P 。
即是)()(sup B A P B A port ⋃=⇒ (7.21)即:关联模式的支持度是模式为真的任务相关的元组(或事务)所占的百分比。
对于关联规则 A ⇒B (其中A 和B 是项目的集合),支持度定义为:元组总数的元组数和包含)支持度(B A =⇒B A )()(A B P B A confidence =⇒ (7.22)即:每个发现模式都应当由一个表示其有效性或“值得信赖性”的确定性度量。
对于关联规则A ⇒B (其中A 和B 是项目的集合),其确定性度量置信度定义为:()的元组数包含的元组数和包含置信度A B A B A =⇒ 同时满足最小支持度阈值(min_sup )和最小置信度阈值(min_conf )的规则称作强规则,我们用0%和100%之间的值而不是用0到1之间的值表示支持度和置信度。
如果我们想象全域是商品的集合,则每种商品有一个布尔变量,表示该商品的有无。
每个篮子则可用一个布尔向量表示。
可以分析布尔向量,得到反映商品频繁关联或同时购买的购买模式。
这些模式可以用关联规则的形式表示。
例如,购买计算机也趋向于同时购买财务管理软件可以用以下关联规则表示:computer ⇒financial_management_software[support=2%,confidence=60%]上面关联规则的支持度2%意味分析中的全部事务的2%同时购买计算机和购买财务管理软件,置信度60%以为购买计算机的顾客60%也购买财务管理软件。
第八章 关联规则挖掘
{3 5}
2
规则: 2 35 3 25 5 23 23 5 25 3 35 2
置信度: 2/3=66%({2,3,5}频度/{2}频度) 2/3=66%({2,3,5}频度/{3}频度) 2/3=66%({2,3,5}频度/{5}频度) 2/2=100%({2,3,5}频度/{2,3}频度) 2/3=66%({2,3,5}频度/{2,5}频度) 2/2=100% ({2,3,5}频度/{3,5}频度)
C3 itemset {2 3 5}
扫描 D
L3 itemset sup {2 3 5} 2
6、产生的关联规则
L1 前面的例子中,得到一个频繁集{ 2,3, itemset sup. L2 itemset sup L3 itemset sup {1} 2 {1 3} 2 {2 3 5} 2 5},非空真子集有{2},{3},{5}, {2} 3 {2 3} 2 {3} 3 {2 5} 3 {2,3},{2,5},{3,5}
ID号 001 002 003 004 购买的商品 A,B,C A,C A,D B,E,F A C C A (50%, 66.6%) (50%, 100%)
二、关联规则挖掘算法Apriori
1、术语
项集:在数据库中出现的属性值的集合。 K_项集:包含K个项的项集。 频繁项集:满足最小支持度要求的项集。 关联规则一定是在满足用户的最小支持度要求 的频繁项集中产生的,因此,关联规则挖掘也 就是在数据库中寻找频繁项集的过程。
多次扫描数据库:
如果最长的模式是n的话,则需要n次数据库扫描
为提高Apriori算法的性能,有许多改进的算法。
8、如何在概念分层挖掘多层关联规则
关联规则
在数据挖掘的知识模式中,关联规则模式是比较重要的一种。
关联规则的概念由Agrawal、Imielinski、Swami 提出,是数据中一种简单但很实用的规则。
关联规则模式属于描述型模式,发现关联规则的算法属于无监督学习的方法。
一、关联规则的定义和属性考察一些涉及许多物品的事务:事务1 中出现了物品甲,事务2 中出现了物品乙,事务3 中则同时出现了物品甲和乙。
那么,物品甲和乙在事务中的出现相互之间是否有规律可循呢?在数据库的知识发现中,关联规则就是描述这种在一个事务中物品之间同时出现的规律的知识模式。
更确切的说,关联规则通过量化的数字描述物品甲的出现对物品乙的出现有多大的影响。
现实中,这样的例子很多。
例如超级市场利用前端收款机收集存储了大量的售货数据,这些数据是一条条的购买事务记录,每条记录存储了事务处理时间,顾客购买的物品、物品的数量及金额等。
这些数据中常常隐含形式如下的关联规则:在购买铁锤的顾客当中,有70 %的人同时购买了铁钉。
这些关联规则很有价值,商场管理人员可以根据这些关联规则更好地规划商场,如把铁锤和铁钉这样的商品摆放在一起,能够促进销售。
有些数据不像售货数据那样很容易就能看出一个事务是许多物品的集合,但稍微转换一下思考角度,仍然可以像售货数据一样处理。
比如人寿保险,一份保单就是一个事务。
保险公司在接受保险前,往往需要记录投保人详尽的信息,有时还要到医院做身体检查。
保单上记录有投保人的年龄、性别、健康状况、工作单位、工作地址、工资水平等。
这些投保人的个人信息就可以看作事务中的物品。
通过分析这些数据,可以得到类似以下这样的关联规则:年龄在40 岁以上,工作在A 区的投保人当中,有45 %的人曾经向保险公司索赔过。
在这条规则中,“年龄在40 岁以上”是物品甲,“工作在A 区”是物品乙,“向保险公司索赔过”则是物品丙。
可以看出来,A 区可能污染比较严重,环境比较差,导致工作在该区的人健康状况不好,索赔率也相对比较高。
关联规则
关联规则关联规则是形如X→Y的蕴涵式,其中且, X和Y分别称为关联规则的先导(antecedent或left-hand-side, LHS)和后继(consequent或right-hand-side, RHS) 。
从啤酒与尿布的故事说起在描述有关关联规则的一些细节之前,先来看一个有趣的故事: "尿布与啤酒"的故事。
在一家超市里,有一个有趣的现象:尿布和啤酒赫然摆在一起出售。
但是这个奇怪的举措却使尿布和啤酒的销量双双增加了。
这不是一个笑话,而是发生在美国沃尔玛连锁店超市的真实案例,并一直为商家所津津乐道。
沃尔玛拥有世界上最大的数据仓库系统,为了能够准确了解顾客在其门店的购买习惯,沃尔玛对其顾客的购物行为进行购物篮分析,想知道顾客经常一起购买的商品有哪些。
沃尔玛数据仓库里集中了其各门店的详细原始交易数据。
在这些原始交易数据的基础上,沃尔玛利用数据挖掘方法对这些数据进行分析和挖掘。
一个意外的发现是:"跟尿布一起购买最多的商品竟是啤酒!经过大量实际调查和分析,揭示了一个隐藏在"尿布与啤酒"背后的美国人的一种行为模式:在美国,一些年轻的父亲下班后经常要到超市去买婴儿尿布,而他们中有30%~40%的人同时也为自己买一些啤酒。
产生这一现象的原因是:美国的太太们常叮嘱她们的丈夫下班后为小孩买尿布,而丈夫们在买尿布后又随手带回了他们喜欢的啤酒。
按常规思维,尿布与啤酒风马牛不相及,若不是借助数据挖掘技术对海量交易数据进行挖掘和分析,沃尔玛是不可能发现数据内在这一有价值的规律的。
数据关联关联规则的定义根据韩家炜等观点,关联规则定义为:假设I是项的集合。
给定一个交易数据库,其中每个事务(Transaction)t是I的非空子集,即,每一个交易都与一个唯一的标识符TID(Transaction ID)对应。
关联规则在D中的支持度(support)是D中事务同时包含X、Y的百分比,即概率;置信度(confidence)是包含X的事务中同时又包含Y的百分比,即条件概率。
关联规则分析
关联规则分析近年来,数据挖掘技术越来越受到业界的关注,其中具有代表性的一项技术就是关联规则分析。
关联规则分析是一种可以挖掘数据中存在的关联关系的技术,通过挖掘数据中的规律,从而为企业的决策制定提供支持。
本文将对关联规则分析技术进行深入的阐述,并探讨其在实际应用中的意义和价值。
一、关联规则分析的原理关联规则分析的核心就是寻找数据集中项之间存在的频繁集合和规则。
所谓频繁集合,就是指出现频率达到一定阈值的项组合。
在寻找频繁项时,通常需要依靠支持度和置信度来作为衡量指标。
支持度是指该项集在整个数据集中出现的频率,而置信度则是指该项集中的某些项出现时,另一项也很可能出现的概率。
举个例子,假设我们有一组销售记录,其中有许多顾客购买了商品A,并且部分顾客还购买了商品B。
为了进一步挖掘数据集中的关联关系,我们可以通过关联规则分析来寻找商品A和商品B之间的关联关系。
我们可以设置一个支持度的阈值(比如说10%),并且只分析那些出现频率超过这一阈值的数据集合。
这样就可以找到所有同时购买A和B的顾客,也就是频繁项集。
在这个过程中,我们可以计算A和B同时出现的置信度,即出现A 就很可能会出现B的概率,这可以为我们后续的销售战略制定做出重要贡献。
二、关联规则分析的应用领域关联规则分析在实际应用中有着广泛的应用领域,其中最为显著的一个应该就是电子商务领域。
在电子商务平台中,很多商家会通过关联规则分析技术来寻找不同商品之间的关联关系,从而制定出更为有效的销售策略。
例如通过寻找数据中的频繁项集,我们可以找到顾客们在购买某件商品时,最可能还需要购买哪些其他商品,进而为顾客提供更加便捷的购物体验。
除此之外,在金融领域、医疗领域以及网络推荐系统等领域中,也都可以使用关联规则分析技术来寻找业务中的关联关系。
例如在医疗领域,我们可以通过关联规则分析找出不同疾病之间的关联关系,这对于医生的诊疗决策具有重要帮助。
三、关联规则分析技术的局限性虽然关联规则分析技术在应用中具有很大的价值,但是它也存在着一定的局限性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在第一次扫描时,算法读取每一个分区, 每个分区内计算局部频繁项集。在第二次 扫描时,算法计算整个DB中所有局部频繁 扫描时,算法计算整个DB中所有局部频繁 集的支持度。如果项集对于整个数据库来 集的支持度。如果项集对于整个数据库来 说是频繁的,那么它至少需要在一个分区 中是频繁的。因此,第二次扫描完成计算 中是频繁的。因此,第二次扫描完成计算 所有潜在的频繁项集的超集。 随着数据库大小的增加,取样成为数据挖 掘的一个不可多得的有效途径,基于取样 的算法需要以数据库进行两次扫描。
请注意: 请注意:并不是所有的强关联规则都是有用 的或者有意义的。例如,一个谷类早餐的 零售商对5000名学生的调查的案例。数据 零售商对5000名学生的调查的案例。数据 表明:60%的学生打篮球,75%的学生吃 表明:60%的学生打篮球,75%的学生吃 这类早餐,40%的学生即打篮球吃这类早 这类早餐,40%的学生即打篮球吃这类早 餐。假设支持度阈值s=0.4,置信度阈值 餐。假设支持度阈值s=0.4,置信度阈值 c=60%。基于上面数据和假设我们可挖掘 c=60%。基于上面数据和假设我们可挖掘 出强关联规则“(打篮球)→(吃早餐)”,因为 出强关联规则“(打篮球)→(吃早餐)”,因为 其(打篮球)和(吃早餐)的支持度都大于支持 打篮球) 吃早餐) 度阈值,都是频繁项,而规则的置信度 c=40%/60%=66.6%也大于置信度阈值。 c=40%/60%=66.6%也大于置信度阈值。
在挖掘2 项集时,因为2 在挖掘2-项集时,因为2-项集的任何子集都 是频繁项集,所以Apriori算法使用L 是频繁项集,所以Apriori算法使用L1*L1来 产生候选集。* 产生候选集。*运算通常定义为: Lk*Lk={X∪Y 其中X,Y∈Lk,|X∩Y|=k+1} ={X∪ 其中X,Y∈ 注:|X∩Y|=k+1即X和Y合取容量为k+1 :|X∩Y|=k+1即 合取容量为k+1 当k=1时,因此,C2包含在第二次迭代中作 k=1时,因此,C 为候选集由运算|L 为候选集由运算|L1|·|L1-1|/2所产生的2-项集。 1|/2所产生的2 本例中为:4·3/2=6。用该列表来扫描DB, 本例中为:4·3/2=6。用该列表来扫描DB, 计算每一个候选集的s,并与s 比较2 计算每一个候选集的s,并与smin比较2-项 集L2。图8-2给出了所有这些步骤和第二次 。图8 迭代的结果。
因为本例的L3无法产生候选的4 因为本例的L3无法产生候选的4-项集,所以 算法停止迭代过程。
该算法不仅计算所有频繁集的s 该算法不仅计算所有频繁集的s,也计 算那些没有被删除的非频繁候选集的s 算那些没有被删除的非频繁候选集的s。 所有非频繁但被算法计算s 所有非频繁但被算法计算s的候选项集 的集合被称为负边界。因此,如果项 集非频繁的,但它的子集都是频繁的, 那么它就在负边界之中。
8.4 提高Apriori算法的效率 提高Apriori算法的效率
因为挖掘频繁项集时所处理的数据量越来 越大,所以很有必要提高算法的效率。 Apriori算法扫描DB的次数完全依赖于最大 Apriori算法扫描DB的次数完全依赖于最大 的频繁项集中项的数量。为了解决这个问 题,该算法作了一些改进。 基于划分的Apriori算法只需要对DB进行两 基于划分的Apriori算法只需要对DB进行两 次扫描。DB被划分成若干个非重叠的分区, 次扫描。DB被划分成若干个非重叠的分区, 分区与内存相匹配。
8.1 购物篮分析
购物篮是顾客在一次事务中所购买项的集 合,所谓事务是一个明确定义的商业行为。 事务数据库研究的一个最普通的例子就是 寻找项的集合,或叫做项集。包含i 寻找项的集合,或叫做项集。包含i个项的 项集被称为i 项集被称为i-项集。包含该项集的事务的百 分数叫做该项集的支持度。支持度超过指 定阈值的项集叫做频繁项集。
基本概念: 设I={i1,i2,…im}是项的集合,DB为事务集合, 是项的集合,DB为事务集合, T⊆I 其中每个事务T 其中每个事务T是项的集合,且有 。每一 个事务有一个标识符,称作TID。 个事务有一个标识符,称作TID。 设X为一个 X⊆T 项集,当且仅当 时,即T包含X 时,即T包含X。关联 X X⇒Y 规则是形如 的蕴涵式,其中 , ⊆I X ⊆ I ,且 X I Y = ∅ 。规则 X ⇒ Y 在事务集 DB中成立,具有支持度s,其中s是DB中事 DB中成立,具有支持度s,其中s DB中事 务包含X 务包含X和Y两者的百分比。规则 X ⇒ Y 在 事务集DB中具有置信度c,如果DB中包含X 事务集DB中具有置信度c,如果DB中包含X 的事务同时也包含Y的百分比是c 的事务同时也包含Y的百分比是c。
100
计算的复杂性成指数增长,这是影响一些 新关联规则挖掘算法发展的一个主要因素。
频繁模式增长(FP-growth)方法是在大型数 频繁模式增长(FP-growth)方法是在大型数 据中挖掘频繁项集的一个有效算法。算法 进行中不存在产生候选集的繁琐过程,当 DB很大时,FP-增长算法首先进行数据库 DB很大时,FP投影,得到频繁集,然后通过构造一个压 缩的数据库结构---FP缩的数据库结构---FP-树再进行挖掘。
在本例中,负边界由项集{D},{A,B},{A,E} 在本例中,负边界由项集{D},{A,B},{A,E} 组 成。负边界在一些Apriori的改进算法中更为 成。负边界在一些Apriori的改进算法中更为 重要,例如生成大项集或导出负关联规则 时提高了有效性。
8.3 从频繁项集得到关联规则
第二阶段的工作是在第一阶段的基础上, 来挖掘关联规则。如果规则为{x 来挖掘关联规则。如果规则为{x1,x2,x3}→x4, 那么项集{x 那么项集{x1,x2,x3,x4}和{x1,x2,x3}都必须是频 繁的。然后,规则置信度c= 繁的。然后,规则置信度c= P({x4}|{x1,x2,x3})=s(x1,x2,x3,x4)/s(x1,x2,x3)。 置信度c 置信度c大于给定的阈值的规则就是强规则。
第八章 关联规则
本章目标 举例说明使用HITs、LOGSOM和路径遍历 举例说明使用HITs、LOGSOM和路径遍历 算法来进行Web挖掘的可行性。 算法来进行Web挖掘的可行性。 在指定提炼和萃取阶段的基础上定型文本 挖掘的构架。
关联规则是数据挖掘的主要技术之一, 也是在无指导学习系统中挖掘本地模 式的最普遍形式。 本章除了重点介绍关联规则挖掘的 Apriori技术外,还将讨论一些和Web Apriori技术外,还将讨论一些和Web 挖掘、文本挖掘相关的数据挖掘方法。
然而,以上的关联规则很容易产生误解,因 为吃早餐的比例为75%,大于66%。也就是 为吃早餐的比例为75%,大于66%。也就是 说,打篮球与吃早餐实际上是负关联的。 为了消除这种误导的规则,应该在关联规则 A→B的置信度超过某个特定的度量标准时, A→B的置信度超过某个特定的度量标准时, 定义它为有意义的。因此挖掘关联规则的正 确方法是: s(A,B)/s(A)s(A,B)/s(A)-s(B)>d 或者: s(A,B)s(A,B)-s(A) ·s(B)>k 式中d 式中d或k是适当的常量。(计算上例)
例如,以表8 例如,以表8-1中的数据为例。假设 smin=50%。 =50%。
在第一次迭代的第一步中,所有单项集都 作为候选集,产生一个候选集列表。在下 一步中,计算每一项的支持度,然后在smin 一步中,计算每一项的支持度,然后在s 的基础上选择频繁项集。图8 的基础上选择频繁项集。图8-1中给出第一 次迭代的结果。
8.2 APRIORI算法 APRIORI算法
Apriori算法利用几次迭代来计算数据库中的 Apriori算法利用几次迭代来计算数据库中的 频繁项集。第i次迭代计算出所有频繁i 频繁项集。第i次迭代计算出所有频繁i项集 (包含i个元素的项集)。每一次迭代有两个步 包含i个元素的项集) 骤:产生候选集;计算和选择候选集。 在第一次迭代中,产生的候选集包含所有1 在第一次迭代中,产生的候选集包含所有1项集,并计算其支持度s 大于阈值的1 项集,并计算其支持度s,s大于阈值的1-项 集被选为频繁1 集被选为频繁1-项集。 第二次迭代时,Apriori算法首先去除非频繁 第二次迭代时,Apriori算法首先去除非频繁 1-项集,在频繁1-项集的基础上进行产生频 项集,在频繁1 繁2-项集。原理是:如果一个项集是频繁, 那么它的所有子集也是频繁的。
支持度是概率 P(X U Y) 。 置信度是概率 P(Y | X) 。 置信度可以表示规则的可信性,支持度表示 模式在规则中出现的频率。具有高置信度和 强支持度的规则被称为强规则。 挖掘关联规则的问题可以分两个阶段: 1.发掘大项集,也就是事务支持度s大于预 1.发掘大项集,也就是事务支持度s 先给定的最小阈值的项的集合。 2.使用大项集来产生数据库中置信度c大于 2.使用大项集来产生数据库中置信度c 预先给定的最小阈值的关联规则。 Apriori算法是解决这个问题的常用方法。 Apriori算法是解决这个问题的常用方法。
8.5 频繁模式增长方法(FP-增长方法) 频繁模式增长方法(FP一个Apriori算法的可伸缩的问题。如果生成 一个Apriori算法的可伸缩的问题。如果生成 一个长度100的频繁模式,例如 一个长度100的频繁模式,例如 {a1,a2,…,a100},那么所产生的候选集的数 量至少为:
100 = 2100 − 1 ≈ 10 30 ∑ i i
候选集C 运用L 候选集C3 运用L2*L2来产生,运算结果得到 {A,B,C},{A,C,E},{B,C,E},但只有{B,C,E}的 {A,B,C},{A,C,E},{B,C,E},但只有{B,C,E}的 所有子集是频繁项集,成为候选的3 所有子集是频繁项集,成为候选的3-项集。 然后扫描DB,并且挖掘出频繁3 然后扫描DB,并且挖掘出频繁3-项集,见 图8-3所示。
第一次扫描,从DB中选择一个样本,并且 第一次扫描,从DB中选择一个样本,并且 产生一个在整个DB中很可能为频繁的候选 产生一个在整个DB中很可能为频繁的候选 项集的集合。第二次扫描,算法计算这些 项集的实际支持度和它们的负边界的支持 度。如果在负边界中没有项集是频繁的, 那么说明已挖掘出所有频繁项集。否则, 负边界中的项集的一些超集可能就是频繁 的,但它的支持度还没有计算出来。取样 算法在随后的扫描时,会产生并计算所有则技术的建模特性。 分析大型数据库的基本特性。 描述Apriori算法,并通过示例来解释算法的 描述Apriori算法,并通过示例来解释算法的 所有步骤。 将频繁模式增长方法同Apriori算法进行比较。 将频繁模式增长方法同Apriori算法进行比较。 概述从频繁集中产生关联规则的方法。