当前课程知识点:互联网大规模数据分析技术 >  第二章 关联规则 >  第3讲 Apriori算法 >  第3讲 Apriori算法

返回《互联网大规模数据分析技术》慕课在线视频课程列表

第3讲 Apriori算法在线视频

下一节:第4讲 Apriori算法的改进与兴趣度度量

返回《互联网大规模数据分析技术》慕课在线视频列表

第3讲 Apriori算法课程教案、知识点、字幕

同学们好

欢迎来到

互联网大规模数据分析技术课堂

我是这节课的主讲教师张蕊

来自武汉理工大学

这节课我们一起来了解一下

Apiori算法

上一节课

我们了解了频繁项集

和关联规则的基本概念

这一节课我们来了解一下

怎样去挖掘关联规则

也就是了解相关的算法

发现关联规则的算法可以分为两步

第一步发现所有的频繁项集

第二步

从频繁项集产生强关联规则

现在先考虑第二步

产生强关联规则

如果我们已经有了频繁项集

那我们怎么去产生强关联规则呢

假定我们有一个频繁项集L

那我们可以产生它的所有的非空子集

对它的任意一个非空子集S来说

我们试图产生这样的规则S->(L-S)

这个规则是否是强关联规则呢

首先它一定满足最小支持度阈值

为什么呢

因为

规则左部S并规则右部L-S的结果就是L

L的出现概率

显然要大于等于最小支持度阈值

不然它就不是频繁项集了

那接下来的问题就是

它的可信度应该是多少呢

根据可信度的定义

也就是要知道s出现的情况下

L出现的条件概率是多少

那么

规则左部S和规则右部L-S同时出现的概率

除以S出现的概率就是答案

我们已经找出了频繁项集

知道l和s的支持度了

那么可信度计算最后就变成了

L的支持度除以S的支持度

如果这个值大于等于

最小支持度阈值的话

那它一定是强关联规则

从这里可以看出

已经得到频繁项集的情况下

生成关联规则并不是那么困难

相对来说

如何得到频繁项集

面临的挑战更大

那么如何得到频繁项集呢

下面给大家介绍下历史悠久的Apriori算法

它是频繁项集挖掘的经典算法之一

在提出后的几十年内不断被改进

在了解Apriori算法之前

我们先来看这样一个性质

任何频繁项集的子集一定是频繁的

当然这里的子集不包括空集

是不是这样呢

我们可以考虑啤酒尿布坚果这个3项集

如果他是频繁的

就是说他的出现次数

大于等于给定的支持度阈值

那可以想象,它的子集

比如

啤酒尿布的出现次数

肯定是大于等于

啤酒、尿布、坚果共同出现的次数

因此一定是频繁的

为什么呢

因为只要包含了啤酒尿布坚果的事务

一定包含了啤酒和尿布

因此

一个项集的任何非空子集

出现的次数只会多

不会少于该项集

所以任何频繁项集的非空子集

一定是频繁的

这个,又叫做Apriori性质

也有研究者认为这具有反单调性

所谓反单调性是指

如果一个集合不能通过测试

则它的所有超集也不能通过相同的测试

Apriori算法

应用Apriori性质来进行剪枝

怎样进行剪枝呢

就是如果一个项集是非频繁的

那么它的超集不需要生成或测试

Apiori算法大致可以分为四步

第一步

扫描数据库来得到所有的频繁1-项集

第二步

由长度为k的频繁项集

生成长度为k+1的候选项集

第三步

扫描数据库来测试候选项集

得到长度为k+1的频繁项集

第二步和第三步连接起来进行迭代

直到没有频繁项集或者是

候选项集可以生成才停止

我们来看一个小例子

假定我们有一个

含有四条事务的事务数据库

并且取最小支持度阈值为2

首先,第一次扫描数据库

得到所有的候选1-项集c1

c代表candidate,1代表长度是1

这里候选1-项集

就是A B C D E这些单个的项

并且得到这些单个项目的计数分别是

A出现了两次,B出现了3次

C出现了3次,D出现了1次,E出现了3次

因为最小支持度阈值是2

那么除了D以外都满足

所以频繁1-项集L1应该是:A B C E

这里的L代表的是Large

这里其实不是大,而是频繁

不过由于历史原因

约定俗成由L来表示频繁项集

然后我们由频繁1项集生成

候选2项集C2

注意,这里我们不需要考虑D

因为根据Apriori性质

D是非频繁的

那么

包含D的所有其他集合都是非频繁的

因此由频繁项集A B C E生成了

6个候选2-项集:AB AC AE BC BE CE

再次扫描数据库

得到了所有项集的计数

分别是AB 1次,AC 2次,AE 1次,

BC 2次,BE 3次,CE 2次

然后去掉低于最小支持度的AB和AE

得到频繁2-项集L2为AC BC BE CE

接下来按同样的方式生成候选3-项集

这里

你认为候选3-项集应该是什么呢

是AC和BC连接生成ABC

AC和CE连接生成ACE

BC和BE连接生成BCE吗

实际上,在Apriori算法里

这里只有BCE

原因等下我们来讨论

第三次扫描数据库

得到频繁3-项集BCE

然后

因为没有办法继续生成候选4-项集

所以算法停止

现在我们一起来看一下

Apriori算法的形式化描述

算法的输入是事务数据库和最小支持度

输出是频繁项集

第一步找出所有的频繁1-项集

然后最外面的for循环迭代

找出所有的频繁项集

对于每次迭代

先由频繁k项集生成所有的候选k+1项集

接下来的那个双重for循环

进行候选项集计数

当无法生成频繁k-项集时算法停止

并返回所有找出的频繁项集

这里需要注意的是怎样由频繁k项集

生成所有的候选k+1项集

大家还记得刚才的那个小例子吧

由频繁2-项集L2的AC BC BE CE

我们只生成了一个候选3-项集 BCE

这是为什么呢

实际上

Apriori算法在这里有约束

要求连接的两个k项集l1和l2

必须按同样的顺序有序排列

然后,前k-1个项l1和l2相同

最后一个项l1小于l2

大家想想

按照这个约束

AC BC BE CE是不是只能生成BCE了

因为AC和BC、AC和CE都不满足这个约束

所以不能连接

最后

只由BC和BE连接生成了BCE

但为什么要这样约束呢

这样难道不会失去一些可能的

频繁项集吗

实际上

的确也有其他算法是按我们之前的思路

如果只有一个项不同

就连接生成候选项集

但Apriori算法这样约束是有道理的

它不会丢掉频繁项集

为什么

例如还是刚才的这个例子

我们来思考下

AC和BC不加约束的话可以生成ABC

现在按Apriori算法它们没有生成

但我们可以断言

如果ABC是频繁的

它可以由其他项集连接生成

如果ABC不是频繁的

不连接生成正好压缩了候选项集的大小

这就具有一定的优势

那为什么如果ABC是频繁的

它就可以由其他项集连接生成呢

因为如果ABC是频繁的

那么根据Apriori性质

AB和AC肯定是频繁的

所以ABC可以由AB和AC生成

本节课的内容到此结束

谢谢大家的观看

互联网大规模数据分析技术课程列表:

第一章 大数据与数据挖掘概述

-第1讲 大数据与数据挖掘概述

--第1讲 大数据与数据挖掘概述

第二章 关联规则

-第2讲 频繁项集和关联规则的基本概念

--第2讲 频繁项集和关联规则的基本概念

-第3讲 Apriori算法

--第3讲 Apriori算法

-第4讲 Apriori算法的改进与兴趣度度量

--第4讲 Apriori算法的改进与兴趣度度量

第三章 分类算法

-第5讲 分类的基本概念

--第5讲 分类的基本概念

-第6讲 决策树

--第6讲 决策树

-第7讲 简单贝叶斯分类

--第7讲 简单贝叶斯分类

第四章 聚类算法

-第8讲 聚类的基本概念

--第8讲 聚类的基本概念

-第9讲 K-Means & K-Medoids Clustering

--第9讲 K-Means & K-Medoids Clustering

-第四章 聚类算法--习题

第五章 大数据平台与技术

-第10讲 大数据处理平台Hadoop

--第10讲 大数据处理平台Hadoop

-第11讲 MapReduce编程

--第11讲 MapReduce编程

-第12讲 大数据处理平台Spark

--第12讲 大数据处理平台Spark

-第13讲 NoSQL数据库

--第13讲 NoSQL数据库

第六章 信息检索

-第14讲 Web信息检索简介

--第14讲 Web信息检索简介

-第15讲 信息检索之倒排索引

--第15讲 信息检索之倒排索引

-第16讲 信息检索之TFIDF

--Video

-第17讲 信息检索之相似度排序

--第16讲 信息检索之TFIDF

第七章 Web链接分析

-第18讲 Web搜索之链接分析

--第18讲 Web搜索之链接分析

-第19讲 Web搜索之PageRank

--第19讲 Web搜索之PageRank

-第20讲 Lucene信息检索平台

--第20讲 Lucene信息检索平台

-第七章 Web链接分析--习题

第八章 推荐系统

-第21讲 推荐系统简介

--第21讲 推荐系统简介

-第22讲 推荐系统之协同过滤

--第22讲 推荐系统之协同过滤

-第23讲 Mahout数据挖掘平台

--第23讲 Mahout数据挖掘平台

-第24讲 信息过滤评价体系

--第24讲 信息过滤评价体系

-第八章 推荐系统--习题一

-第八章 推荐系统--习题二

自我提升练习

-综合编程题

第3讲 Apriori算法笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。