04_从啤酒与尿布,聊关联规则推荐
“把啤酒放在尿布旁,有助于提升啤酒销售量”是关联规则推荐的经典案例,今天,和大家聊聊“关联规则推荐”,正文不含任何公式,保证PM弄懂。
一、概念
什么是关联规则(Association Rules)?
答:关联规则是数据挖掘中的概念,通过分析数据,找到数据之间的关联。电商中经常用来分析购买物品之间的相关性,例如,“购买尿布的用户,有大概率购买啤酒”,这就是一个关联规则。
画外音:如果把买尿布记作A,买啤酒记作B。
“买尿布的用户有较大概率买啤酒”这个关联规则记作A -> B。
什么是关联规则推荐(Association Rule Based Recommendaion)?
答:顾名思义,利用关联规则,来实施推荐。关联规则推荐的目标,是希望达到
“将尿布放入购物车之后,再推荐啤酒”
比
“直接推荐啤酒”
获取有更好的售卖效果。
画外音:这个目标非常非常重要,有些场景,或许直接推荐更有效。
关联规则推荐的典型应用:
线下,可以将尿布和啤酒放在一起
线上,可以在用户将尿布放入购物车后,立刻推荐啤酒
二、如何实施
假设某电商会售卖ABCD四种商品,历史上共5笔订单,分别卖出{A,B,C}, {B,C,D}, {A,B,C,D}, {A,C}, {C} 如何来实施“关联规则”推荐呢?
第一步:数据准备
如上图,纵坐标是所有历史订单,横坐标是每笔订单售出的商品。
第二步:计算关联规则(组合商品)的支持度
什么是支持度(support)?
答:共5笔订单,3笔包含商品A,A的支持度是3/5。
很容易计算出,各个商品的支持度。从支持度可以看出,Best Seller是商品C,100%的订单中都包含商品C,C的支持度是1。
除了单个商品,组合商品也有支持度。
共5笔订单,2笔同时包含AB,即A->B的支持度是2/5。
画外音:全局总共4种商品,假设关联规则只关联2种商品,则一共需要计算C(4,2)共6种组合商品的支持度{AB,AC,AD,BC,BD,CD}。
支持度评估商品包含在订单中的“概率”,一个订单,有多大概率包含这个商品。
画外音:一般会先对支持度高的商品实施推荐,如果先实优化支持度低的商品,即使推荐效果翻倍,总体订单提升效果也会很有限。
第三步:计算关联规则的置信度
什么是置信度(confidence)?
答:已知购买了A,有多大概率购买了B(即同时购买了AB),称A -> B的置信度。
可以看到,商品A有3次购买,这3次中有2次购买了B,A->B的置信度是2/3。
画外音:额,本来不想贴公式的
confidence(A->B) = support(A->B)/support(A)= (2/5)/(3/5) = 2/3
这也相对比较好理解,
分子:support(A->B)是同时购买AB的比例
分母:support(A)是只购买A的比例
二者相除,得到“购买了A,有多大概率购买B”,置信度的本质是条件概率。
这里需要注意的是,X->Y与Y->X的置信度不一定相等。
如上图:
B->C的置信度是1,买商品B时,100%会买C,
C->B的置信度是3/5,买商品C时,只有3/5买了B。
画外音:
support(B->C)=3/5
support(C->B)=3/5
confidence(B->C)=support(B->C)/support(B)=1
confidence(C->B)=support(C->B)/support(C)=3/5
公式是给程序看的,excel表格是给人看的,结果都一样。
第四步:计算关联规则的提升度
上一个例子里,confidence(B->C)=1,即:如果用户购买商品B,100%会买C,那是不是意味着,如果用户将商品B放入购物车,就可以向用户推荐商品C呢?
答:不是。
我们来回顾一下,关联规则推荐的目标,是希望达到
“将尿布放入购物车之后,再推荐啤酒”
比
“直接推荐啤酒”
获取有更好的售卖效果。
虽然购买商品B,100%会买C
画外音:confidence(B->C)=1
但直接推荐C,用户也100%会买C
画外音:support(C)=1
会发现,购买B与购买C是独立事件,用户买不买C和用户买不买B没有直接关系。这里的关联规则推荐,并没有比直接推荐获取更好的效果。
用什么指标来评估关联规则推荐的效果呢?
答:提升度。
什么是提升度(lift)?
答:A->B关联规则推荐,与直接推荐B,的比值,可以用来评估推荐效果:
大于1,说明有效,在购买A时推荐B,比直接推荐B,效果更好
等于1,说明无关,购买A与购买B,是独立事件
小于1,说明负相关,购买A时推荐B,效果还不如直接推荐B
画外音:又有公式了
lift(A->B) =confidence(A->B)/support(B)
这也相对比较好理解,
分子:confidence(A->B),购买A时,有多大概率同时购买B
分母:support(B),有多大概率直接购买B
二者相除,得到效果是否更好。
还是通过两个直观的例子来看。
来看看关联规则A->B,与直接推荐B,效果有没有提升:
有3个订单购买A,这3个订单中有2个订单购买了B,所以A->B的置信度是2/3,即买了A有2/3的概率会买B
直接推荐B的话,5个订单中有3个购买了B,所以B的支持度是3/5,即有3/5的概率会直接买B
会发现,关联规则推荐的效果更好。
画外音:根据公式
confidence(A->B) =support(A->B)/support(A) = 2/3
support(B) = 3/5
lift(A->B) =confidence(A->B)/support(B) = 10/9
lift(A->B) > 1,故关联规则推荐是正相关的。
来看看关联规则A->D,与直接推荐D,效果有没有提升:
有3个订单购买A,这3个订单中有1个订单购买了D,所以A->D的置信度是1/3,即买了A有1/3的概率会买D
直接推荐D的话,5个订单中有2个购买了B,所以D的支持度是2/5,即有2/5的概率会直接买D
会发现,关联规则推荐的效果很差,还不如直接推荐。
画外音:根据公式
confidence(A->D) =support(A->D)/support(A) = 1/3
support(D) = 2/5
lift(A->D) = confidence(A->D)/support(D)= 5/6
lift(A->B) < 1,故关联规则推荐是负相关的。
三、总结
关联规则A->B推荐,目标是,在“用户将A放入购物车时,推荐B”比“单独推荐B”获取更好的效果
A->B的支持度,是用户同时购买A和B概率
A->B的置信度,是用户购买A的同时,有多大概率购买B
A->B的提升度,是“用户购买A的同时,有多大概率购买B”与“直接购买B的概率”的比值
(1)这个值大于1时,说明A->B有正向效果
(2)这个值等于1时,说明A和B是独立事件
(3)这个值小于1时,说明A->B有负向效果
希望这1分钟,大家能有收获。
《1分钟了解协同过滤,pm都懂了》
《1分钟了解基于内容的推荐,pm又懂了》
《1分钟了解相似性推荐,pm真懂了》
原创: 58沈剑 架构师之路 4月9日
04_从啤酒与尿布,聊关联规则推荐相关推荐
- Matlab关键规则挖掘尿片啤酒,数据挖掘:“啤酒+尿布”的关联规则是怎么来的?...
关联,其实很简单,就是几个东西或者事情 是经常同时呈现 的,"啤酒+尿布"就是十分 典型的两个关联商品. 假定 两项或多项属性之间存在关联,那么其中一项的属性值就能够 依据 其他属 ...
- 关联分析(Association Analysis)--挖掘啤酒与尿布的关联规则
通过本文我们将了解: x->y的含义 挖掘关联分析规则的两个步骤 aproori原理 算法优化–剪枝 如何生成频繁项集 没有重复的k-项候选集如何产生->剪枝–>计数–频繁k-项集 ...
- 从啤酒和尿布讲关联规则,大数据集处理算法Apriori以及改进的PCY算法
本文将讲解关联规则的相关概念.处理相关规则的一般算法.改进的大数据处理关联规则的Apriori算法以及进一步优化的PCY算法. 啤酒和尿布的故事已经广为人晓.很多年轻的父亲买尿布的时候会顺便为自己买一 ...
- 关联规则概念、啤酒加尿布引出购物篮分析、频繁项集、支持度+置信度+提升度
关联规则概念.啤酒加尿布引出购物篮分析.频繁项集.支持度+置信度+提升度 目录
- 啤酒和尿布:一文看懂关联规则
啤酒和尿布:一文看懂关联规则 一.关联规则 二.Apriori算法 2.1 相关概念 2.2 实现步骤 2.3 代码实现 谈到大数据在零售业的应用,不得不提到一个经典的营销案例–啤酒和尿布的故事,有个 ...
- 如何用Python挖掘“啤酒和尿布”的关系?(Apriori算法挖掘关联规则)
一.什么是关联规则挖掘? "啤酒与尿布"的故事大家都听过吧,一些年轻的父亲在去超市给孩子买尿布的时候,会顺便给自己买点啤酒,超市发现这个规律之后,就把啤酒和尿布的货架放在一起,这次 ...
- 3分钟了解“关联规则”推荐
转载自 3分钟了解"关联规则"推荐 "把啤酒放在尿布旁,有助于提升啤酒销售量"是关联规则推荐的经典案例,今天,和大家聊聊"关联规则推荐",正 ...
- 都2020年了,别再迷信啤酒与尿布!数据分析的真相在这
一提人工智能大数据,必有人提啤酒与尿布,有意思的是,都2020年了,还有人信这个老掉牙的都市传说.今天我们系统讲解一下. 一.站在背后的关联规则 支持啤酒与尿布故事的,是关联规则算法.注意:关联规则算 ...
- 都2020年了,还在迷信啤酒与尿布!数据分析的真相是……
一提人工智能大数据,必有人提啤酒与尿布,有意思的是,都2020年了,还有人信这个老掉牙的都市传说.今天我们系统讲解一下. 1 站在背后的关联规则 支持啤酒与尿布故事的,是关联规则算法.注意:关联规 ...
最新文章
- 让PyTorch训练速度更快,你需要掌握这17种方法
- 部署FTP服务器及其管理
- SpringBoot 集成 Elasticsearch
- echarts自动生成图片的解决方案
- [Swift]LeetCode649. Dota2 参议院 | Dota2 Senate
- RabbitMQ指南(中)
- 【VB.NET】自定义控件(一)属性说明
- 2.3.7 操作系统之管程和java中实现管程的机制
- 3.QT中的debug相关的函数,以及文件锁的使用
- 智慧交通day02-车流量检测实现03:辅助功能(交并比and候选框的表现形式)
- install maven3 on ubuntu
- Python编程及应用--数据分析与科学计算可视化培训班
- 头像上传html js版,javascript头像上传代码实例
- mac mysql php_Mac下搭建PHP开发环境(Apache+PHP+MySQL+phpMyAdmin)
- 如何用python编写财务记账软件_Python实现简单的记账本功能
- Python解二元一次方程
- robot_marm catkin_make报错
- BitTorrent Tracker 搭建及使用
- Qt 3D Overview
- 女神节 | 那些奋斗在IT领域的“女神”们