【机器学习】关联规则分析(一):Apriori
一、Apriori原理
Apriori是关联分析中较早的一种方法,主要用来挖掘那些频繁项集合,其思想是:
1.如果一个项目集合不是频繁集合,那么任何包含它的项目(超集)也一定不是频繁集。
2.如果一个项目集合是频繁集合,那么它的任何非空子集(子集)也是频繁集合。
二、关联分析
1.发现频繁项集→ 经常出现在一起的样本集合
2.发现关联规则→ 暗示两种样本之间可能存在很强的关系
3.Apriori原理可减少支持度计算量
***************************************************
支持度:数据集里包含该项集的记录所占的比例
可信度:针对一条eg.{A}→{B}的关联规则来确定的,定义为:可信度 =
支持度{A,B} / 支持度{A}
支持度(比例大小)→特定数据集/总数据集→ 反映频繁项集
可信度(关联规则)→支持度{A,B}/支持度{A} →反映关联度
用户自行设定最小支持度minSupport作为参数,当集合/列表(set/list)支持度大于最小支持度,则为频繁项集
***************************************************
三、算法步骤
1.生成候选项集
流程:
********************************
对数据集里每条记录item:
对每个候选项集can:
检查can是否为item的子集:
如果是,则增加can的计数值
对每个候选项集can:
如果其支持度不小于最小值,则保留该项集
返回所有频繁项集列表
***********************************
2.完整Apriori流程
***********************************
当集合中项的个数>0:
构建k个项组成的候选项集列表
检查数据以确定每个项集都是频繁的
保留频繁集并构建k+1项组成的候选项集列表
***********************************
Apriori需要扫描项目多遍,从一个项目开始,舍去掉那些不频繁项目,得到集合成为l,然后对l中每个元素进行自组合,生成比上次扫描多一个项目的集合,该集合成为c,接着又去扫描那些非频繁项目,重复……
看下面这个例子:
元素项目表格:
如果每个步骤不去掉非频繁项目集,则其扫描过程的树形结构如下:
在其中某个过程中,可能出现非频繁的项目集,将其去掉(用阴影表示)为:
【机器学习】关联规则分析(一):Apriori的更多相关文章
- Weka关联规则分析
购物篮分析: Apriori算法: 参数设置: 1.car 如果设为真,则会挖掘类关联规则而不是全局关联规则. 2. classindex 类属性索引.如果设置为-1,最后的属性被当做类属性. 3. ...
- 【数据挖掘】关联分析之Apriori(转载)
[数据挖掘]关联分析之Apriori 1.Apriori算法 如果一个事务中有X,则该事务中则很有可能有Y,写成关联规则 {X}→{Y} 将这种找出项目之间联系的方法叫做关联分析.关联分析中最有名的问 ...
- 机器学习经典算法之Apriori
一. 搞懂关联规则中的几个概念 关联规则这个概念,最早是由 Agrawal 等人在 1993 年提出的.在 1994 年 Agrawal 等人又提出了基于关联规则的 Apriori 算法,至今 Apr ...
- 关联规则挖掘之apriori算法
前言: 众所周知,关联规则挖掘是数据挖掘中重要的一部分,如著名的啤酒和尿布的问题.今天要学习的是经典的关联规则挖掘算法--Apriori算法 一.算法的基本原理 由k项频繁集去导出k+1项频繁集. 二 ...
- 零起点PYTHON足彩大数据与机器学习实盘分析
零起点PYTHON足彩大数据与机器学习实盘分析 第1章 足彩与数据分析 1 1.1 “阿尔法狗”与足彩 1 1.2 案例1-1:可怕的英国足球 3 1.3 关于足彩的几个误区 7 1.4 足彩·大事件 ...
- (转载)微软数据挖掘算法:Microsoft 关联规则分析算法(7)
前言 本篇继续我们的微软挖掘算法系列总结,前几篇我们分别介绍了:微软数据挖掘算法:Microsoft 决策树分析算法(1).微软数据挖掘算法:Microsoft 聚类分析算法(2).微软数据挖掘算法: ...
- 机器学习理论与实战(十一)关联规则分析Apriori
<机器学习实战>的最后的两个算法对我来说有点陌生,但学过后感觉蛮好玩,了解了一般的商品数据关联分析和搜索引擎智能提示的工作原理.先来看看关联分析(association analysis) ...
- 关联规则算法(The Apriori algorithm)详解
一.前言 在学习The Apriori algorithm算法时,参考了多篇博客和一篇论文,尽管这些都是很优秀的文章,但是并没有一篇文章详解了算法的整个流程,故整理多篇文章,并加入自己的一些注解,有了 ...
- 数据挖掘-关联规则分析[ZZ]
1.什么是关联规则 "尿布与啤酒"的故事大家都有听过,这里就不罗嗦了. 按常规思维,尿布与啤酒风马牛不相及,若不是借助数据挖掘技术对大量交易数据进行挖掘分析,沃尔玛是不可能发现数据 ...
随机推荐
- 纯CSS3实现关闭按钮
在线演示 本地下载
- Android OTA在线升级二(升级包编译原理分析) 【转】
本文转载自:http://blog.csdn.net/huryjiang/article/details/7590015 1 升级包的制作 基本命令: Ø makeMtk [project[flav ...
- Linux Network Namespace
Linux Network Namespaces Linux kernel在2.6.29中加入了namespaces,用于支持网络的隔离,我们看一下namespace是如何使用的 创建与配置 创建一个 ...
- 算法(Algorithms)第4版 练习 1.3.41
方法实现: //1.3.41 public Queue(Queue<Item> q) { Queue<Item> result = new Queue<Item>( ...
- php一维数组的创建
php一维数组的创建 (1)通过array函数声明数组 使用array 函数定义数组,该函数返回通过所接受接收的参数建立的数组.array 函数使用的格式如下. $arry_name = array( ...
- CSS重置 reset.css
1. [文件] reset.css ~/*------------------------------------------* site:ifnoif.net* Style author:ifnoi ...
- Chrome_01_点击 Google搜索结果在新的页面打开
方法一:Ctrl + 左键 Chrome浏览器中,通过 Ctrl + 左键 ,是在新标签中打开的,通过 Shift + 左键 ,是在新窗口中打开的. 方法二: 1.登录 Google 2.进入下面的设 ...
- Java微信小程序开发_00_资源帖
1.微信小程序开发:http://blog.csdn.net/column/details/13721.html?&page=1 2.微信小程序栏目:http://blog.csdn.net/ ...
- 关键字volidate和transient(转)
Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值.而且,当成员变量发生变化时,强迫线程将变化值回写到主内存.这样在任何时刻,两个不同的线程总是看到某个成员变量的同一 ...
- 一种解决 MacBook 里的 App Store 无法登录的问题
刚刚买回来的 2018 款带有 touchbar 的 MacBook Pro 15 inc 在用 App Store 安装 app 时一直无法登录成功(网络链接都是好的),导致软件都无法更新,折腾了挺 ...