尿布和啤酒—关联规则详解
http://www.ikeguang.com/
在一家超市里,有一个有趣的现象:尿布和啤酒赫然摆在一起出售。但是这个奇怪的举措却使尿布和啤酒的销量双双增加了。这不是一个笑话,而是发生在美国沃尔玛连锁店超市的真实案例,并一直为商家所津津乐道。这是数据挖掘算法关联规则在实际中的成功应用案例,那么关联规则算法的理论根基又是什么呢?
这就是关联规则的思想,即如果顾客购买一部分商品,那么他有多大可能购买其它商品?
什么是关联规则,能简单通俗解释一下吗?可以。
假设下面是商场5位顾客的购买交易记录:
交易记录 |
商品(代号) |
1 |
牛奶(A)、面包(B)、饼干(C)、橙汁(D) |
2 |
面包(B)、饼干(C)、汽水(E)、泡面(F) |
3 |
牛奶(A)、饼干(C)、水果(G) |
4 |
牛奶(A)、面包(B)、橙汁(D)、泡面(F)、水果(G) |
5 |
饼干(C)、汽水(E)、水果(G) |
示例数据
代号是从前往后取的,这只是一个标签几号,怎么贴标签都行!当然了,这些数据实际的数据库存储应该是每行一个用户对应一个商品的存储方式,这样有助于数据的存储与读取和后面的数据计算矩阵的生成。
当然了,计算机处理数据时,首先需要将这个不规则的表进行规则化——生成一个交易记录~商品代号的表格,才能进行进一步的计算!
构造过程是这样的:
1、获取所有商品;
2、取一个用户,如果该用户购买了商品,对应位置赋值1.否则0;
3、直到为所有用户构造了相应的商品购买向量,得到一个二维0~1二元数据表格(取值0/1),结束。
示例数据二元数据表:
交易记录 |
牛奶(A) |
面包(B) |
饼干(C) |
橙汁(D) |
汽水(E) |
泡面(F) |
水果(G) |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
2 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
3 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
4 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
5 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
第一个用户购买了A、B、C、D四种商品,故对应位置为1,其它位置为0,其它交易二元向量的生成方法类似,这些交易二元向量组成了一个二元数据表。
观察这个表,我们发现好像购买牛奶(A)与面包(B)同时出现概率较大,有两次,面包(B)与饼干(C)也出现了两次。而牛奶(A)与汽水(E)没有一次同时出现过,它们之间没有直接关联!
交易记录 |
牛奶(A) |
面包(B) |
饼干(C) |
橙汁(D) |
汽水(E) |
泡面(F) |
水果(G) |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
2 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
3 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
4 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
5 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
牛奶与面包
交易记录 |
牛奶(A) |
面包(B) |
饼干(C) |
橙汁(D) |
汽水(E) |
泡面(F) |
水果(G) |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
2 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
3 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
4 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
5 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
牛奶与汽水
聪明的我们是不是就有什么想法,牛奶与面包搭在一起卖是不是更好,好像它们搭在一起吃挺好,牛奶与汽水好像就属于两种差异很大的东西了,交易中没有同时被购买过。
那么,它们相互之间又有怎样的联系呢?这个关系又是怎样衡量的呢,就像学生在老师眼中的排名是用成绩衡量的一样吧。所以就有了关联规则的一套衡量指标、规则。
衡量规则
关联规则利用支持度、置信度和增益三个衡量指标来分别表示其显著性、正确性和价值。通过最小支持度和置信度作为对应门槛,然后才能进行下一步的增益价值的评估。
什么意思呢?不懂。
试想一下,评价年级三好学生,每个班级的倒数第一也能参加评比吗,原则上是可以的,但是————有希望吗!一般会从每个班评选几个最优秀的————门槛。这就相当于最下支持度和置信度的作用。再比如说,一个组织只需要几个人参加比赛,首先需要筛选出几个最优希望、优秀的成员(这就是门槛)参加,然后进行最终的比赛,有句话说得好,参加比赛你有你的权利,人人都能参加,参不参加是一回事,获不获奖就是一回事了。
扯远了,言归正传。下面给出官方对于那三个概念的定义。
假设我们要衡量购买(X)也会购买(Y),X==>Y的概率,那么需要通过定义计算相应的几个衡量指标。
支持度:支持度衡量前提项目(X)与结果项目(Y)一起出现的概率,支持度会把一些显著性小的去掉,相当于经过一个筛选,把精华留下来,对于用户~商品二元表格就表示,商品同时出现概率。这个概率太小就没有意义了。比如,有1000条购买记录,I商品与J商品同时出现过一次,这就没有必要考虑I与Y的置信度和增益价值了。有两个菇凉,一个约十次出来了9次,一个约十次出来了一次,该考虑哪个,相信你智商没有问题,就是这个意思。
比如,这里牛奶(A)与面包同时出现了两次,一共有5次购买行为,那么顾客同时购买牛奶(A)与面包(B)的概率就是
如果,我们规定这个支持度概率必须达到0.5,那么牛奶与面包直接关联性就被枪毙了!
置信度:置信度衡量衡量前提项目(X)出现的形况下,结果项目(Y)才有就会出现的条件概率。比如,你不约女神出来,她怎么知道呢,何谈约10次能成功几次呢,只有约了,才会有可能产生赴约次数这个量!
这里,五次交易记录中牛奶(A )出现了3次,其中这3次中,面包出现了2次,
交易记录 |
牛奶(A) |
面包(B) |
饼干(C) |
橙汁(D) |
汽水(E) |
泡面(F) |
水果(G) |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
3 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
4 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
那么,购买牛奶(A)的条件下购买面包(B)的概率(置信度)为:
实际上就是牛奶与面包同时出现概率(2/5)再除以牛奶出现概率(3/5)这一个条件概率。
增益:增益衡量用于比较置信度与结果项目Y单独发生时两者大小,怎么比较大小,有一种方法是两者相除。如果大于一,表明前者较大,即X发生条件下Y发送概率变大。
那么,这里购买牛奶(A)的情况下购买面包(B)的概率2/3,与单独购买面包的概率(3/5)比值为
显然牛奶==>面包就是一个有效的信息,因为牛奶出现的条件下,面包出现的概率比面包单独出现的概率大。
Apriori算法
为了便于理解,没有写的那么严格数学化。类似A===>B的关联规则,A为条件项目,B为结果项目,那么:
1、计算出单一项目集,即每种条件项目的在5条记录中出现的概率,比如如果这里最小支持度记为0.5,那么,单一项目集{A,B,C,D,E,F,G},删除小于最小支持度后就是{A,B,C,G},其它出现次数小于3次。
2、同理,计算2,3,4,...项目集,比如2-项目集就是形如(X,Y)===>C的形式,然后与最小支持度比较删除小于最小支持度的;
3、经过前两步后,留下了大于最小支持度0.5的项目集,下面就计算对应置信度,还是根据前面介绍的X==>Y的计算形式,就是X(可能是多个条件,比如(X1,X2,...)===>>Y的形式)发生条件下Y发生概率与Y单独发生的概率的比值是否大于一。
4、挑选出增益值大于1的关联规则,即可。
这就是关联规则的基本原理,就到这里文章太长可能看着都累,后面将会介绍关联规则的一些特点、实际数据处理方法的一些具体应用。选择用R来做,为什么,R语言有一些现成的包,其实明白原理后自己用Python写一个也未尝不可以,但是数据量不是特别大的情况下用R来做或许方便些。
然后,(计算机操作)如果想要学习R语言基础与高级编程,点击【阅读原文】领取【全额优惠券】后,直接购买可以全额抵消,免费获得,机会不再来。
尿布和啤酒—关联规则详解相关推荐
- 关联规则java apriori_关联规则算法(The Apriori algorithm)详解
一.前言 在学习The Apriori algorithm算法时,参考了多篇博客和一篇论文,尽管这些都是很优秀的文章,但是并没有一篇文章详解了算法的整个流程,故整理多篇文章,并加入自己的一些注解,有了 ...
- 详解python实现FP-TREE进行关联规则挖掘(带有FP树显示功能)附源代码下载(3)
详解python实现FP-TREE进行关联规则挖掘(带有FP树显示功能)附源代码下载(3) 上一节简单讲了下FP树的生成,在这一节我将描述FP树的挖掘过程. 首先我们回顾一下要挖掘的特征项及样本空间: ...
- 04_从啤酒与尿布,聊关联规则推荐
"把啤酒放在尿布旁,有助于提升啤酒销售量"是关联规则推荐的经典案例,今天,和大家聊聊"关联规则推荐",正文不含任何公式,保证PM弄懂. 一.概念 什么是关联规则 ...
- python中fp是什么意思_详解python实现FP-TREE进行关联规则挖掘(带有FP树显示功能)附源代码下载(3)...
详解python实现FP-TREE进行关联规则挖掘(带有FP树显示功能)附源代码下载(3) 上一节简单讲了下FP树的生成,在这一节我将描述FP树的挖掘过程. 首先我们回顾一下要挖掘的特征项及样本空间: ...
- 啤酒公司与尿布公司的关联规则挖掘
啤酒公司与尿布公司的关联规则挖掘 啤酒公司与尿布公司他们可能聘用有相同的员工.有共同的投资人.有业务往来,那么他们之间就有的关联规则挖掘关系. 税务.工商管理就有意义. 可以实现挖掘企业间的投资关系, ...
- 大白话解析Apriori算法python实现(含源代码详解)
大白话解析Apriori算法python实现(含源代码详解) 一.专业名词解释 二.算法思路 三.python代码实现 四.Aprioir的优点.缺点及改进方法 本文为博主原创文章,转载请注明出处,并 ...
- Apriori算法详解与实现
Apriori算法详解与实现 一.摘要 二.绪论 三.算法介绍 1.项目 2.项集 3.项集的支持度 4.关联规则 5.关联规则的置信度 6.频繁k项集 7.算法流程 四.代码实现 五.引用 一.摘要 ...
- 汇编语言典型例子详解_数据分析常用的7大思维方法详解
今天老李继续给大家讲解数据分析经典的思维模型,上篇为大家介绍了目标思维.假设思维.溯源思维.逆向思维4个思维:数据分析必备7大经典模型详解!建议收藏!(上) 今天继续给大家介绍结构思维.演绎推理思维. ...
- 云计算、大数据、人工智能傻傻分不清楚?本文详解这三者的关系
云计算.大数据.人工智能傻傻分不清楚?本文详解这三者的关系 提示: 今天跟大家讲讲云计算.大数据和人工智能.这三个词现在非常火,并且它们之间好像互相有关系. 一般谈云计算的时候会提到大数据.谈人工智能 ...
最新文章
- 甘利俊一 | 信息几何法:理解深度神经网络学习机制的重要工具
- rodbc 连接oracle,在R中加密密码 – 使用RODBC连接到Oracle DB
- charles 过滤指定域名
- python 动态加载与静态加载_python中的元类、静态方法、类方法,动态添加方法...
- 数据仓库之电商数仓-- 4、可视化报表Superset
- 训练日志 2018.8.29
- 东师2016年秋季计算机基础,东师2016年秋季《计算机基础》期末考核答案(1).doc
- java中两种遍历集合的方式_Java中Map集合的两种遍历方式
- kubernetes视频教程笔记 (18)-service
- Springboot课程试题库管理系统毕业设计源码271129
- 服装收银系统 服装收银 服装收银软件 收银软件 收银系统 好用的服装软件
- 2021年中国茶叶电商发展现状及未来发展趋势分析[图]
- UnityVR-初识Unity-实践-制作一个工程场景
- 分类问题的评价指标(Precision、Recall、Accuracy、F1-Score、Micro-F1、Macro-F1)以及混淆矩阵、ROC曲线
- 在Ubuntu中用Qt基于OpenCV调用大恒相机
- 人生无意义,才更值得过,推石上山的搏斗本身,足以充实一颗人心,认清生活的荒诞,对它报之以微笑,就是对抗荒诞的最好方式
- 计算机如何进行加减乘除计算—(计算机基础课十三)​​​​​​​​​​​​​​
- Android P(9.0) 证书加密算法变更
- 基于奇特物联MQTT协议设备接入示例
- 计算机基础实验指导第3版答案,计算机基础实验指导(第3版)
热门文章
- python爬取微博评论_python爬虫抓取新浪微博数据
- sql 查询每科的前三名
- 计算机网络技术实验TCP,计算机网络实验3TCP实验
- 动态修改spine动画渲染层次
- 安装Chrome插件-ChroPath
- HDL语言三种描述方式--结构化描述方式、数据流描述方式、行为级描述方式
- phpexcel出现无法访问此网站,ERR_INVALID_RESPONSE
- python批量读取图片gps位置_某少儿不宜网站图片拍摄位置分析,Python批量读取图片GPS位置!...
- mac笔记本怎么外接显示屏_Mac电脑外接显示器全攻略
- 置液晶显示器的台式计算机,台式电脑液晶显示器怎么购买