读书笔记 -- 011_数据挖掘_频繁模式_关联性_相关性_1
来源:互联网 发布:淘宝客推广怎么样 编辑:程序博客网 时间:2024/05/19 13:14
概念
频繁模式(frequent pattern):是频繁地出现在数据集中的模式(如项集、子序列或子结构)。频繁模式挖掘搜索给定数据集中反复出现的联系。
支持度(support)和置信度(confidence)是关联规则的两种度量。他们分别反映所发现规则的有用性和确定性。例如:
computer=>antivirus_software[support = 2%; confidence = 60%],
其中支持度2%表示所有事务的2%显示电脑和杀毒软件被同时购买,置信度60%表示购买计算机的顾客也购买了杀毒软件。
2、关联规则
设
其中,
给定事务的集合
为了避免不必要的开销,事先对规则剪枝,而无须计算它们的支持度和置信度的值将是有益的。提高关联规则挖掘算法性能的第一步是拆分支持度和置信度要求。由公式1可以看出,规则
{啤酒,尿布}->{牛奶},{啤酒,牛奶}->{尿布},
{牛奶,尿布}->{啤酒},{啤酒}->{尿布,牛奶},
{尿布}->{牛奶,啤酒},{牛奶}->{尿布,啤酒}
如果项集{啤酒,尿布,牛奶}是非频繁的,则可以立即去掉这6个候选规则,则不必计算他们的置信度值。
因此,关联规则的挖掘是一个两步的过程:
(1)找出所有的频繁项集:根据定义,这些项集的每一个频繁出现的次数至少与预定义的最小支持度计数
(2)由频繁项集产生强关联规则:根据定义,这些规则必须满足最小支持度和最小置信度。
可以使用附加的兴趣度度量来发现相关联的项之间的相关联系。由于第二步的开销远小于第一步,因此挖掘关联规则的总体性能由第一步决定。
例:
上表中:规则
3、频繁项集的产生
发现频繁项集的一种原始的方法是确定每个候选项集的支持度计数。为了完成这一个任务,必须将每个候选项集与每个事务进行比较。
有几种方法可以降低产生频繁项集的计算复杂度:
(1)减少候选项集的数目:下面介绍的先验(apriori)原理,是一种不用计算支持度值而删除某些候选项集的有效方法。
(2)减少比较次数:替代将每个候选项集与每个事务相匹配,可以使用更高级的数据结构,或者存储候选项集或者压缩数据集,来减少比较的次数。
4、Apriori算法,通过限制候选产生发现频繁项集
(1)先验原理:
(a)定理:如果一个项集是频繁的,则它的所有非空子集也一定是频繁的;
(b)单调性:令
(2)Apriori算法
**算法原理:**Apriori使用一种称之为逐层搜索的迭代方法,其中
令
(1)该算法初始通过单遍扫描数据集,确定每个项的支持度。一旦完成这一步,就得到所有频繁1-项集的集合
(2)接下来,该算法将使用上一次迭代发现的频繁(k-1)-项集,产生新的候选k-项集(步骤5)。候选的产生使用apriori-gen函数实现。
(3)为了对候选项的支持度计数,算法需要再次扫描一遍数据集(步骤6~10)。使用子集函数确定包含在每一个事务t中的
(4)计算候选项的支持度计数之后,算法将删去支持度计数小于
(5)当没有新的频繁项集产生,即
Apriori算法的频繁项集产生的部分有两个重要的特点:第一,它是逐层算法,他每次遍历项集格中的一层;第二,它使用产生-测试(generate-and-test)策略发现频繁项集。该算法总的迭代次数是
(3)候选的产生和剪枝
a.候选项集的产生,连接步:为了找出
b.候选项集的剪枝,剪枝步:扫描数据库,确定候选的计数,删除支持度计数小于
(3.a)连接步:候选项集的产生
a.蛮力方法:把所有的k-项集都看作可能的候选,然后使用候选剪枝除去不必要的候选。第
b.
c.
(4)基于Hash树进行支持度计数
在Apriori算法中,候选项集划分为不同的桶,并存放在Hash树中。在支持度计数期间,包含在事务当中的项集也散列到相应的桶中。这种方法不是将事务中的每个项集与所有的候选项集进行比较,而是将它与同一个桶内候选项集进行匹配。图略。
5、由频繁项集产生关联规则
一旦由数据库中产生频繁项集,就可以直接由他们产生强关联规则(强关联规则满足最小支持度和最小置信度)。
对于置信度,可以用如下公式进行计算:
对于支持度,可以用如下的公式计算:
每个频繁
计算关联规则的置信度并不需要再次扫描事务数据集。因为置信度
6、基于置信度的剪枝
不像支持度度量,置信度不具有任何单调性。例如:规则
定理: 如果规则
7、频繁项集的紧凑表示
(a)极大频繁项集:极大频繁项集的直接超集都不是频繁的。极大频繁项集有效地提供了频繁项集的紧凑表示。换句话说,极大频繁项集形成了可以导出所有频繁项集的最小的项集的集合。
(b)闭项集:如果项集
(c)闭频繁项集:如果一个项集是闭的,并且它的支持度大于或等于最小支持度阈值。闭频繁项集的集合包含了频繁项集的完整信息。不会存在其它的项总是和闭频繁项集一起出现,否则闭频繁项集就包含它了。
例:
腾讯应用宝使用Apriori算法实现的App推荐
- 读书笔记 -- 011_数据挖掘_频繁模式_关联性_相关性_1
- 读书笔记 -- 012_数据挖掘_频繁模式_关联性_相关性_2
- 数据挖掘--频繁模式、关联性和相关性
- 读书笔记 -- 006_数据挖掘_聚类_概念知识
- [_数据挖掘_] 决策树
- 数据挖掘_频繁项集/关联规则
- 读书笔记 -- 007_数据挖掘_聚类_基于划分的方法
- 读书笔记 -- 008_数据挖掘_聚类_基于层次的方法
- 数据挖掘_数据流挖掘
- [_数据挖掘_] SVM学习
- [_数据挖掘_] 决策树实现
- 读书笔记_简单之美_1
- 嵌入式操作系统的基本概念_读书笔记_1
- ^_^
- ^_^
- ^_^
- ^_^
- *_&
- leetcode:9 Palindrome Number-每日编程第二十八题
- 【Caffe实践】基于Caffe的人脸检测实现
- 基本语法元字符
- 修改MFC标题栏上的图标和修改MFC窗口标题
- SystemUIDialog 小结
- 读书笔记 -- 011_数据挖掘_频繁模式_关联性_相关性_1
- 内存分析工具 MAT 的使用
- 使用Spring框架实现文件上传
- 线程的同步和协调
- 斐波那契数列算法分析
- 使用匿名方法 委托
- Java NIO使用及原理分析(三)
- swift学习日记(七)下标 继承
- leetcode -- Sort Colors -- 重点,排序,two pointers