啤酒与尿布---神奇的购物篮分析

老高的购物篮分析

公告

“啤酒与尿布”是一个真实的故事,发生在1990年代的沃尔玛大卖场,代表卖场的购物篮商品之间存在着某种特定的关联关系,挖掘并利用这种关联关系,可以使得实体零售门店充分;了解顾客的购物场景,为选品与品类管理、定价与调价、促销策略及评估、关联陈列、顾客行为聚类等提供了有效的数据依据。

我在2008年撰写了《啤酒与尿布-神奇的购物篮分析》(清华大学出版),开辟本专栏,是为了与大家探讨实体门店购物篮管理的理念、计算方法及案例,以及能够与相关软件企业合作,开发相关应用软件产品

MP:13901022781 微信同号

统计

今日访问:385

总访问量:224172

经典购物篮分析--Apriori算法解析(一)

2023年08月16日

评论数(0)
Apriori算法介绍
相关性分析擅长寻找二组或多组线性变量之间的数据表现,但如果分析的多组事务不属于线性变量,而属于布尔型事务项集,就需要采取关联分析法,最典型算法就是购物篮分析。
购物篮分析算法有很多,最著名的是Apriori算法。
Apriori算法是由Agrawal和R.Srikant于1994年提出来的,是一种关联分析经典算法,至今依然是数据分析领域十大明星算法之一,可见其功能之强大。
Apriori名称来自于拉丁语,也有人写成A-priori,意思是“来自以前”,指的是根据过去频繁发生项目集合的先验知识,预测后续的事务关联关系。
Aprori算法主要用于关联规则数据挖掘,因此也被称为ARM算法(Association Rule Ming algorithms)。
Apriori算法用于寻找频繁项目集合,因此也被称为频繁模式算法(Frequent Pattern Algorithms),此处的频繁项目集合有二个含义:首先分析对象必须是频繁出现的事务项目集合(简称项集);其次频繁出现的项集预示着事物之间存在着关联关系,具体来说,Apriori算法采取了二阶段方法(Two-Phase Methodology):
第一阶段:找到频繁项集(Finding frequent itemsets),比如AB是ABCD、AB、ABD等项目的频繁项集 。
第二阶段:根据频繁项集生成关联规则(Generating association rules),比如A=>B。
Apriori算法来自于零售超市业态,目前已经应用到银行、保险、市场营销等不同领域,并获得了巨大的成功。
但是令人遗憾的是,当前Apriori算法在零售业的应用却处于停滞状况。
Apriori算法为沃尔玛、亚马逊等国际零售巨头的营销分析提供了新思路,使这些巨头们获得了巨大的成功。
为什么Apriori算法在零售业处于停滞状态?我们在后面会详细介绍。
一、Apriori算法的基本思路
我们以超市的购物篮为例,介绍Apriori算法的基本思路及指标体系。
假定有如下五个购物篮,购物篮数据已经按照Apriori算法的要求进行了数据预处理,购物篮及其中的商品构成如下:
购物篮1={苹果,牛奶、蔬菜};
购物篮2={啤酒、苹果、牛奶};
购物篮3={啤酒、蔬菜、凉菜};
购物篮4={苹果、啤酒};
购物篮5={牛奶};
1、Apriori算法对于购物篮的数据项及指标定义如下:
交易(transactional):单个顾客的单次购买行为构成一个独立的交易或一个独立的购物篮,比如上面有5个购物篮。
交易数据集(transaction dataset):一系列交易项组成的数据集就是交易数据集,零售业指的是购物篮数据集合,上面5个购物篮集合组成一个小交易数据集。
项和项集(item and itemsets):指的是交易中的项目和项目集合,对于零售业来说,就是购物篮中的商品和商品集合。
频繁项集(Frequent Itemset):经常在一起出现的交易项目集合,比如“啤酒与尿布”就是一种频繁项集;
非频繁项集(Infrequent itemset):指的是不经常一起出现的交易项目集合;
K-项集:含有K个项的项集称为K-项集,比如含有苹果、牛奶二个商品的购物篮被称为2-项集;
支持度计数(Sopport Conut):在一个数据集合中的某个项集出现在几个购物篮中,支持度计数就是几,比如{苹果、牛奶}出现在购物篮1、购物篮2中,所以{苹果、牛奶}的支持度计数为2,在零售业中支持度计数是一个非常重要的指标,可以表示交易集合在限定交易数据中的总量(购物篮数量),以此提示关联关系的商业价值,比如有些购物篮的关联规则看上去很强,但是购物篮总数不多,商业价值也不会太高。
支持度(support):指的是在特定交易集合中,特定数据项集出现的次数,比如上面5个购物篮中,{苹果、牛奶}的支持度计数为2,所以{苹果、牛奶}的支持度为2/5=40%,即40%的人同时购买了苹果和牛奶。表示为support 苹果=>牛奶=40%。 支持度公式为:Support A=(包含项目A的购物篮数量)/(购物篮总数)。
支持度的意义在于找出某个项集(比如啤酒、尿布)在整体交易中的占比 ,支持度 是关联规则的第一个指标,对于零售业来说,评估关联规则在交易中的占比非常重 要,前面讲述过的PI值(购物篮渗透率),其意义与支持度基本类似。
比如在某个超市的88163个购物篮中,含有橙汁、半脱脂牛奶、橙汁、半脱脂牛奶的支持度计数(Support count)、支持度(support)如下:
商品名称 Support count  Support
{橙汁}                   579                   0.657%  
{半脱脂牛奶}            2885                   3.273%
{橙汁、半脱脂牛奶}       140                   0.158%
上述数据表明,在88163笔交易中,半脱脂牛奶的购物篮数量最多,为2885个,购物篮占比为3.273%。
置信度(confidence):表示为购物篮中既有啤酒、又有尿布的情况,可以写成 (购物篮项目:“啤酒 ”) ? (购物篮项目:“尿布”) 。
置信度的公式表示为:Cofiddence(A=>B)=P(A/B);
或表示为置信度=(包含交易A和B的购物篮数量)/(所有含有A的购物篮数量)。      
假定有50个购物篮中含有A商品,其中有25个购物篮中中同时有B商品,则(A=>B) 二个商品的置信度为50%。
提升度(Lift):简单理解就是含有苹果的购物篮条件下同时含有牛奶的概率,与含有牛奶的总体发生的概率比,是一种简单的相关度量方法,定义如下:
项集A的出现独立于项集B的出现,如果P(A∪B)=P(A)P(B);否则,作为事件,项集A和项集B是依赖的和相关的。
公式:lift(A,B)=P(A∪B)P(A)P(B)=P(B|A)P(B)=conf(A→B)sup(B).
以上面的购物篮为例,苹果与牛奶的提升度Lift(苹果->牛奶)=P(苹果/牛奶)/P(牛奶)=40%/60%=67%。
提升度有时也被称改善度,可以用来衡量二个事务之间关联关系的强弱、以及关联的方向(即正、负),提升度的指标含义如下:
提升度Lift >1,代表二个事务之间的关联关系为正向关联;
提升度Lift <1,代表二个事务之间的关联关系为负关联关系;
提升度Lift =1,代表二个事务之间的关联关系为无关关联关系;假定在一家店铺中,A是可口可乐,B是百事可乐,现在一共有200笔交易,可口可乐、百事可乐各自出现在100笔交易中,只有一个交易中同时有可口可乐、百事可乐;
则sup(A∪B)=1/200=0.005, sup(A)Xsup(B)=(100/200) x (100/200)=0.25, 则sup(A∪B)<sup(A)Xsup(B),此时可以说可口可乐与百事可乐是负关联。
? 频繁项集最小值:人为设置的关联指标门槛值,是数据分析时进行条件筛选的门槛,也称为阈值,比如将支持度最小值设置为30%,那么上述购物篮中的频繁项集{苹果、牛奶}的支持度40%就满足这一最小值。


文章为作者独立观点,不代表联商专栏立场。

联商专栏原创文章由作者授权发表,转载须经作者同意,并同时注明来源:联商专栏+老高与购物篮分析。