文章目录
- 第三章 关联数据挖掘
- 首先明确本章需要学习掌握的内容
- 几个重要概念
- 关联规则挖掘算法
- 关联规则评估(理解)
- 1.什么是关联规则挖掘?
- 经典例子——购物篮分析
- 其他应用举例
- [考点]数据集中支持度的计算
- 频繁项集
- 项集
- 支持度计数 support count
- 支持度 support
- [考点]关联规则的强度——置信度和支持度的计算
- 关联规则
- 衡量关联规则的强度——支持度 置信度
- 2.挖掘关联规则的一般步骤
- 1.**频繁项集产生**(Frequent Itemset Generation)
- Brute-force 方法
- 降低产生频繁项集计算复杂度的方法
- ==重点!Apriori算法==
- 2.规则的产生(Rule Generation)
- 频繁项集到规则产生
- 计算复杂度
- 3.提高Apriori算法的方法
- 改进Apriori
- 提高算法的方法
- 基于Hash(散列)的技术
- 事务压缩
- 划分
- 抽样
- 4.FP增长算法
- 基本思想:
- 如何构造FP树?
- 构造FP树例1
- 构造FP树例2
- FP树特点
- 如何在FP树中进行频繁模式挖掘?
- 1.构建条件模式基(子数据库)
- 2.构建条件FP树
- 3.挖掘频繁项集
- FP增长算法的优缺点
- 优点:
- 缺点:
- 5.基于约束的关联规则挖掘
- 1.基于约束的数据挖掘
- 2.Apriori算法:一个例子
- 3.朴素算法:Apriori + 约束
- 4.有关的其他方法
- 6.关联模式的评估
- 7.本章重要概念
- 1.几个重要概念
- 2.关联规则挖掘算法
- 3.关联规则评估(理解)
第三章 关联数据挖掘
首先明确本章需要学习掌握的内容
本章内容可以说是很多了 所以在最开始确定一下重点
回头也可以有目的地去进行了解~
几个重要概念
这些概念一定要非常清楚
要达到能随意应用的程度
- 支持度
- 置信度
- 频繁项集
- 关联规则(掌握!)
关联规则挖掘算法
考试很有可能要考这个哦~ 所以要重点掌握
尤其是 Apriori算法 要重点进行掌握~
- Apriori算法——掌握
- FP-Growth算法——理解
关联规则评估(理解)
以上内容需要熟记于心~
1.什么是关联规则挖掘?
经典例子——购物篮分析
假设我们是一个超时的市场分析员
我们在清点顾客的购买清单时发现——
有一些商品的组合频繁地被顾客购买
于是~专业的我们 准备挖掘商品组合之间的关系 这 就是关联数据挖掘
关联数据挖掘的目的:在事务、关系数据库中的项集和对象中发现频繁模式、关联规则、相关性或者因果结构
频繁模式:数据库中频繁出现的项集
其他应用举例
购物篮分析 交叉销售 医疗诊断 网页挖掘 科学数据分析 产品目录设计生物信息学
[考点]数据集中支持度的计算
这是个考点诶~给个表格 计算置信度和支持度 可见还是重要的
例子——
给定一个数据集
接下来看一看数据集相关的一些概念
频繁项集
满足最小支持阈值的所有项集
也就是出现次数大于给定阈值的项集
项集
- 包含0个或多个项的集合
——例如:{Milk,Bread,Diaper}
- k-项集:包含k个项的项集
支持度计数 support count
- 包含特定项集的事务个数
——例如:
{Milk,Bread,Diaper}的支持度计数=2
支持度 support
- 包含项集的事务数/总事务数
小例子:
support({Milk,Bread,Diaper})=2/5
[考点]关联规则的强度——置信度和支持度的计算
关联规则
形如X—>Y的蕴含表达式
其中X Y是不相交的项集
例如:{milk,diaper}——>{Bear}
衡量关联规则的强度——支持度 置信度
- 支持度 support(X—>Y)
确定项集的频繁程度
- 置信度 Confidence(X—>Y)
确定Y在包含X的事务中出现的频繁程度
表示事务包含集合A B中每个项的概率
2.挖掘关联规则的一般步骤
1.频繁项集产生(Frequent Itemset Generation)
–其目标是发现满足最小支持度阈值的所有项集,这些项集称作频繁项集。
Brute-force 方法
- 把格结构中每个项集作为候选项集
- 将每个候选项集和每个事务进行比较,确定每个候选项集的支持度计数。
为何Brute-force是蛮力方法呢?
–蛮力方法把所有的k-项集都看作可能的候选,然后使用候选剪枝除去不必要的候选
–第k层产生的候选项集的数目为
–虽然候选产生是相当简单的,但是候选剪枝的开销极大,因为必须考察的项集数量太大。
–设每一个候选项集所需的计算量为O(k),这种方法
的总复杂度为
降低产生频繁项集计算复杂度的方法
- 减少候选项集的数量
先验(apriori)原理
- 减少比较的次数
替代将每个候选项集与每个事务相匹配,可以使用更高级的数据结构,或存储候选项集或压缩数据集,来减少比较次数
重点!Apriori算法
这个算法是非常重要的~
建议重点学习嗷
之后尽量写一篇Apriori算法的入门学习文章
知识点所在处——
老师给的ppt 的 chapter3 p19-27
性质一:如果一个项集是频繁的,则它的所有子集一定也是频繁的
性质二:相反,如果一个项集是非频繁的,则它的所有超集也一定是非频繁的
2.规则的产生(Rule Generation)
其目标是从上一步发现的频繁项集中提取所有高置信度的规则,这些规则称作强规则(strong rule)
频繁项集到规则产生
- 思考:怎样有效的从频繁项集中产生关联规则?
- 关联规则的提取:将一个项集 Y划分成两个非空的子集 X 和Y-X 使得X —> Y – X满足置信度阈值
如果n{A,B,C,D} 是频繁项集, 候选项集为:
ABC —>D, ABD —>C, ACD —>B, BCD —>A,
A —>BCD, B —>ACD, C —>ABD, D —>ABC
AB —> CD, AC —> BD, AD —> BC, BC —>AD,
BD —> AC, CD —> AB,
- 一般来说 计算关联规则的置信度并不需要再次扫描事务数据集 规则 {A,B,C} —>{D}的置信度为support(ABCD)/support(ABC)
计算复杂度
3.提高Apriori算法的方法
改进Apriori
- 减少事务数据库的扫描遍数
- 压缩候选数量
- 便于候选计数
提高算法的方法
这里简要介绍四种可以改进Apriori算法那的方法
- Hash-based itemset counting(散列项集计数)
- Transaction reduction(事务压缩)
- Partitioning(划分)
- Sampling(采样)
基于Hash(散列)的技术
基本思想:压缩候选k项集
- 散列项集到对应的桶中,一个hash桶的计数小于阈值的k-itemset 不可能是频繁的——
事务压缩
基本思想:删除 不可能对寻找频繁项集有用的 事务(对象)
- 不包含任何频繁k项集的事务不可能包含任何频繁k+1项集 因此这些事务在其后的考虑中,可以加上标记或删除。
划分
基本思想:分而治之
- 项集在数据库中是频繁的 则项集必须至少为数据库的一个划分中是频繁的
第一次扫描——划分数据库 并找出局部频繁模式
第二次扫描——求出全局频繁模式
抽样
基本思想:选取原数据库的一个样本, 使用Apriori算法在样本中挖掘频繁模式
第一次扫描——验证在样本中发现的频繁模式
第二次扫描——再次扫描数据库 找出遗漏的频繁模式
4.FP增长算法
该算法不同于Apriori算法那的“产生-测试”范型
而是使用一种称作FP树的紧凑数据结构组织数据,并直接从该结构中提取频繁项集
基本思想:
- 将代表频繁项集的数据库压缩到FP树上
- 将FP树划分为一组条件数据库(每个数据库关联一个频繁项或模式段)挖掘每个条件数据库 获取频繁项集
如何构造FP树?
1.先进行支持度排序
扫描一次数据集,确定每个项的支持度计数,丢弃非频繁项。
将频繁项按照支持度的递减排序
2.构建FP树
第二次扫描数据集,读入第一个事务{a, b}之后,创建标记为a和b的结点。然后形成null->a->b路径。
该路径上的所有结点的频度计数为1。
**如果两个事务有相同的前缀 则路径是相交的
构造FP树例1
至此 FP树构造完成
构造FP树例2
FP树特点
- 通常,FP树的大小比未压缩的数据小,因为购物篮数据的事务常常共享一些共同项。如果共同项较少,FP树对存储空间的压缩效果将不明显。
- FP树的大小也依赖于项如何排序,一般按照支持度计数递减序可以导致较小的FP树。(但也有一些例外)
- FP树还包含一个连接具有相同项的结点的指针列表,这些指针有助于方便快捷地访问树中的项
如何在FP树中进行频繁模式挖掘?
1.构建条件模式基(子数据库)
**条件模式基:**一个“子数据库”,由FP树中与该后缀模式一起出现的前缀路径集组成。
2.构建条件FP树
把条件模式基看作为事务数据库 构造条件FP树
项I5 ——
项I3 ——
3.挖掘频繁项集
对每一(条件)树 有两种情况:
1)如果(条件)FP树为单个路径 则产生该路径下所有模式的组合
2)如果(条件)FP树为多路径 则针对树的头表中的每一个项 产生对应模式获取频繁模式
FP增长算法的优缺点
优点:
- FP增长算法对长和短的模式都是有效且可伸缩的
- 效率比Apriori算法快乐一个数量级
缺点:
- 对内存要求较大 算法实现相对复杂
5.基于约束的关联规则挖掘
1.基于约束的数据挖掘
自动地找出数据库中的所有模式是不现实的!
——因为模式可能太多 并不聚焦
- 数据挖掘应当是一个交互的过程
- ——用户使用数据挖掘查询语言(或图形用户界面)指导需要挖掘什么
- 基于约束的挖掘
- ——用户灵活性:提供挖掘的约束
- ——系统优化:考察限制,寻找有效的挖掘(基于约束的挖掘)
2.Apriori算法:一个例子
3.朴素算法:Apriori + 约束
4.有关的其他方法
- 挖掘频繁闭项集合和最大模式
CLOSET (DMKD’00)
- 挖掘序列模式
FreeSpan (KDD’00), PrefixSpan (ICDE’01)
- 频繁模式的基于限制的挖掘
Convertible constraints (KDD’00, ICDE’01)
6.关联模式的评估
这部分的具体内容再ppt p59-63
具体内容还是比较复杂的哈~
关联分析算法往往产生大量的规则 而其中很大一部分可能是我们不感兴趣的。
所以 建立一组广泛接受的评价关联模式质量的标准是非常重要的
第一组标准——可以通过统计论据建立
涉及相互独立的项或覆盖少量事务的模式被认为是不令人感兴趣的,因为它们可能反映数据中的伪联系。(这些令人感兴趣的模式可以使用客观兴趣度度量来排除)
第二组标准——可以通过主观论据建立
一个模式被主观认为是无趣的,除非它能够揭示料想不到的信息或提供导致有益的行动的有用信息。
例如:{黄油}-{面包}可能不是有趣的,尽管有很高的支持度和置信度,但是它表示的关系显而易见。另一方面,规则{尿布} -{啤酒}是有趣的,因为这种联系十分出乎意料,并且可能为零售商提供新的交叉销售机会。
7.本章重要概念
1.几个重要概念
- 支持度
- 置信度
- 频繁项集
- 关联规则(掌握!)
2.关联规则挖掘算法
考试很有可能要考这个哦 所以要重点掌握
- Apriori算法——掌握
- FP-Growth算法——理解
3.关联规则评估(理解)