[机器学习] Apriori算法
适用场合
Apriori算法包含两部分内容:1,发现频繁项集 2,挖掘关联规则。
通俗地解释一下,就是这个意思:1.发现哪些项目常常同时出现 2.挖掘这些常常出现的项目是否存在“如果A那么B”的关系。
举个例子:网店购物订单常常会出现这样一种情况:那就是某几种物品常常一起买。比如锅和铲子、手机和手机壳等就会常常出现在同一个订单中,因此挖掘出哪些项目常常同时出现就是1中的问题。再进一步,对于这些常常出现的频繁项集,如果能挖掘出“若A则B”的更强关系,那就更好了。比如买了手机的常常会再买个手机壳,但是反过来不成立。
发现频繁项集
发现频繁项集最直观的想法,就是想办法对所有的项目进行全组合,也就是产生2n种,然后对这些不同的种类挨个计算出现最频繁的组合。但是这种方法的搜索空间太大,速度非常慢。Apriori定理可以很大程度上缩小搜索空间,其内容是:任一频繁项集的所有非空子集也必须是频繁的,也就是说,任何一个非频繁项集的超集一定也是非频繁项集。这样就可以直接删除所有包含非频繁项集的集合,很大程度上减少了搜索空间。
转载了一张图,非常明晰地说明了其中的道理:

(图片来源:http://www.jianshu.com/p/00103435ef89)
挖掘关联规则
挖掘关联规则是以频繁项集为基础的。假设我们已经找到了几个频繁项集,现在要找到其中是否蕴含“若A则B”的因果关系。
要想计算是否存在因果关系,很直观的想法就是计算条件概率P(B|A),看看在A条件下B的概率是否足够高。
术语
假设项集有A,B。
有了上述的铺垫,现在引入术语定义:
支持度(support):P(AB),A和B同时出现概率。越大越频繁。
置信度(confidence):P(B|A),条件概率。越大说明因果越强。
提升度(lift):P(B|A)/P(B),有A这个条件和没有A这个条件时,B出现的概率之比。
实现
[机器学习] Apriori算法的更多相关文章
- 机器学习实战 - 读书笔记(11) - 使用Apriori算法进行关联分析
前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习心得,这次是第11章 - 使用Apriori算法进行关联分析. 基本概念 关联分析(associat ...
- Python两步实现关联规则Apriori算法,参考机器学习实战,包括频繁项集的构建以及关联规则的挖掘
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...
- 机器学习实战(Machine Learning in Action)学习笔记————07.使用Apriori算法进行关联分析
机器学习实战(Machine Learning in Action)学习笔记————07.使用Apriori算法进行关联分析 关键字:Apriori.关联规则挖掘.频繁项集作者:米仓山下时间:2018 ...
- 【机器学习实战】第11章 使用 Apriori 算法进行关联分析
第 11 章 使用 Apriori 算法进行关联分析 关联分析 关联分析是一种在大规模数据集中寻找有趣关系的任务. 这些关系可以有两种形式: 频繁项集(frequent item sets): 经常出 ...
- 【机器学习】Apriori算法——原理及代码实现(Python版)
Apriopri算法 Apriori算法在数据挖掘中应用较为广泛,常用来挖掘属性与结果之间的相关程度.对于这种寻找数据内部关联关系的做法,我们称之为:关联分析或者关联规则学习.而Apriori算法就是 ...
- 机器学习——使用Apriori算法进行关联分析
从大规模的数据集中寻找隐含关系被称作为关联分析(association analysis)或者关联规则学习(association rule learning). Apriori算法 优点:易编码实现 ...
- 机器学习(八)—Apriori算法
摘要:本文对Apriori算法进行了简单介绍,并通过Python进行实现,进而结合UCI数据库中的肋形蘑菇数据集对算法进行验证. “啤酒与尿布”的例子相信很多人都听说过吧,故事是这样的:在一家超市中, ...
- 《机器学习实战》学习笔记第十一章 —— Apriori算法
主要内容: 一.关联分析 二.Apriori原理 三.使用Apriori算法生成频繁项集 四.从频繁项集中生成关联规则 一.关联分析 1.关联分析是一种在大规模数据集中寻找有趣关系的任务.这些关系可以 ...
- 机器学习(十五)— Apriori算法、FP Growth算法
1.Apriori算法 Apriori算法是常用的用于挖掘出数据关联规则的算法,它用来找出数据值中频繁出现的数据集合,找出这些集合的模式有助于我们做一些决策. Apriori算法采用了迭代的方法,先搜 ...
随机推荐
- 本地jar上传到本地仓库
转自:http://www.blogjava.net/fancydeepin/archive/2012/06/12/380605.html thanks!! Maven 确确实实是个好东西,用来管 ...
- 初试spring-session
一.简介 spring-session提供了用户会话信息管理的API和实现. 它将取代容器中的HttpSession.在没有容器会话集群方案的情况下,使得支持会话集群微不足道. 它支持在一个浏览器实例 ...
- Octopus——excel导入导出工具
Octopus Octopus是一个简易的Excel导入导出工具.目前主要就两个功能: 导入:将excel中一行数据转换为指定的java对象,并通过指定的正则表达式检查合法性. 导出:按照给定的xml ...
- [基础架构]PeopleSoft都有哪些进程运行在进程服务器上
PSPRCSRV:(PSPRCSRV.EXE) 该进程负责启动所有服务进程. 每隔15s,该进程就会去看进程调度器中是否有需要运行的进程请求.如果没有需要运行的则sleep15s,然后再次检查. 如果 ...
- POJ 2251 三维BFS(基础题)
Dungeon Master Description You are trapped in a 3D dungeon and need to find the quickest way out! Th ...
- 计算BMI
用一个小程序计算BMI 代码如下: package Day06; public class BMI { private String name; private int age; private do ...
- 如何在web项目中添加javamelody monitoring 监控。
1.在工程的maven pom中添加依赖javamelody-core <!-- monitoring监控 --><!-- https://mvnrepository.com/art ...
- 开发微信小程序中SSL协议的申请、证书绑定、TLS 版本处理等
在上篇随笔<基于微信小程序的系统开发准备工作>介绍了开发微信小程序的一些前期的架构设计.技术路线 .工具准备等方面内容,本篇随笔继续这个步骤,逐步介绍我们实际开发过程中对SSL协议的申请及 ...
- ABP从入门到精通(1):aspnet-zero-core项目启动及各项目源码说明
一.ABP的简单介绍 ABP是"ASP.NET Boilerplate Project (ASP.NET样板项目)"的简称. ASP.NET Boilerplate是一个用最佳实践 ...
- (转)PLSQL Developer导入Excel数据
场景:近来在做加班记录的统计,主要是统计Excel表格中的时间,因为我对于Excel表格的操作不是很熟悉,所以就想到把表格中的数据导入到数据库中,通过脚本语言来统计,就很方便了!但是目前来看,我还没有 ...