商品分析-品类篇-购物篮分析

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了商品分析-品类篇-购物篮分析相关的知识,希望对你有一定的参考价值。

参考技术A 之前写过购物相关的内容,这其中有几个指标,像支持度、置信度、提升度都要理解一下,详情参考:

这一篇也是正好要用到,就来回顾下

背景:
我想看看各品类之间的关联性,有没有出镜率比较高的组合品类

首先处理我们的订单数据,这里可以直接使用订单明细数据,因为我这里是品类,所以不需要到商品明细,我就做了个聚合,当然,不处理,直接在python中做个聚合也是一样的

数据格式如下:

我这里保留了:订单号、品类名、销量
这个销量在这里其实用不到,后面会转化掉的

这里的固定格式,就是mlxtend中需要的格式,因为我们要使用它的包,所以按照约定来就行了。

固定格式是这样的,每个订单一行,然后将品类拆分到column

就是上图这个样子,这里还可以看看每个品类之间的相关性
哦,这里的NaN需要填充0

pandas里看相关系数,非常简单

这就是两两品类之间的相关系数,
这里,再用数据热力图展示下

好像没啥特别的

当前我的单元格中是销量,这里需要统一转换为0、1也就是表示该品类是否在该订单中出现,只要标识是否出现即可,并不需要销量这种额外的东西

关于这个 apriori ,可以参考官方手册: Frequent Itemsets via Apriori Algorithm

这里传入了了一个参数,最小支持度
返回的结果集,就是一个DataFrame

从数据来看哈,我这里的品类之间的关联性很小

支持度最高的组合是面部护肤和面膜,这是不是说明,用户更倾向于购买单品类商品呢?

支持度是出现的一个概率,我们还要看看置信度

这里生成的是关联规则

我这里最高的置信度也就17%,提升度都是<1的,貌似没有啥关联性,哈哈哈

数据可视化之分析篇PowerBI分析模型:产品关联度分析

https://zhuanlan.zhihu.com/p/64510355

逛超市的时候,面对货架上琳琅满目的商品,你会觉得这些商品的摆放,或者不同品类的货架分布是随机排列的吗,当然不是。

应该都听说过啤酒与尿布的故事,这两个表面上毫不相关的商品,在超市中摆放在一起时二者的销量都大幅度提升。这里不论这个案例的真实性如何,但它对理解产品之间的关联十分形象,好的故事总是更有传播度。

购买某种商品的客户,对另一种商品,相对于其他商品,有更大的购买概率,这两种商品就具有更高的关联度,为了提高销售额,应尽可能将二者摆放到一起;网店也可以将一种产品放在另一种产品的推荐页中。

而要实现这个目的,首先就要挖掘出哪些商品之间存在更大的关联度。

下面用PowerBI来进行关联度分析。

 


假设一家超市的十几个产品的销售数据,我们要计算出购买产品A的客户中,有多少客户也同时购买了产品B?这些客户购买了产品B的金额有多大?

客户关联度

 

由于要分析的产品A和产品B都在产品表中,为了分别计算相互不影响,复制一个产品表,这里命名为‘关联产品表‘,与订单表建立虚线关系,数据模型如下图,

 

技术图片

 

将产品表中的产品名称拖入到表格中,作为产品A,然后利用下面这个度量值计算产品A的客户数量,

[客户数]=COUNTROWS(VALUES(‘订单表‘[客户ID]))

 

然后利用关联产品表中的产品名称,生成一个切片器,以便选择不同的产品,关联产品假设为产品B。

下面这个是计算关联分析的重点,购买了A的客户中,有多少客户也购买了产品B?

也就是同时购买A和B的客户数,度量值如下:

 

同时购买A和B的客户数 =
VAR Bcustomer=
CALCULATETABLE(
VALUES(‘订单表‘[客户ID]),
USERELATIONSHIP(‘关联产品表‘[产品ID],‘订单表‘[产品ID]),
ALL(‘产品表‘)
)
RETURN CALCULATE([客户数],Bcustomer)

 

通过以上两个度量值相除,就可以计算出关联产品的客户占比,

 

关联客户占比 = DIVIDE([同时购买A和B的客户数],[客户数])

 

把上面这几个度量值放入表格中,通过点击不同的关联产品,就可以自动计算出产品A和产品B之间的重复客户占比,

 

技术图片

 

但是两个产品的客户的重合度高,不代表带来的销售额就更高,所以还要分析一下,购买A的客户中,同时购买的产品B销售额有多少?通过金额这个维度来分析一下关联性。

 

销售金额关联性

 

先来写两个简单的度量值,产品A的销售额和产品B的销售额:

产品A的销售额:

 

销售额=SUM(‘订单表‘[销售金额])

 

产品B的销售额,

 

关联产品B的销售额 =
CALCULATE([销售额],
USERELATIONSHIP(‘关联产品表‘[产品ID],‘订单表‘[产品ID]),
ALL(‘产品表‘) )

 

由于产品B来自于关联客户表,而关联客户表与订单表是虚线关系,所以用 USERELATIONSHIP来激活关系。它主要是为了计算购买产品A的客户中,购买了产品B的金额有多少?

然后就可以计算同时购买A和B的客户中,购买产品B的金额。

 

A客户购买B的金额 =
VAR Acustomer=
CALCULATETABLE(VALUES(‘订单表‘[客户ID]))
VAR Bcustomer=
CALCULATETABLE(
VALUES(‘订单表‘[客户ID]),
USERELATIONSHIP(‘关联产品表‘[产品ID],‘订单表‘[产品ID]),
ALL(‘产品表‘))
RETURN
CALCULATE([关联产品B的销售额],
NATURALINNERJOIN(Acustomer,Bcustomer)))

 

这个度量值的含义是,先找出产品A和产品B的客户列表,然后通过 NATURALINNERJOIN函数找出这两个客户列表的交集,也就是同时购买了这两种产品的客户,然后计算这些客户的产品B销售额就可以了。

同样把这个度量值放到表格中,可以看出关联销售额,

 

技术图片

 

通过这个表格也可以看出,客户重合比例高的两个产品,带来的关联产品的销售额并不一定高,这个跟产品价格、购买数量都有关系。

 

关联度四象限分析

 

通过上面的几个度量值,获得了相关分析的数据,为了更直观的展示出产品之间的关联度,这里使用四象限分析法来展示。

其实就是制作一个散点图,将两个维度:客户占比作为Y轴,关联产品销售额作为X轴,并按客户占比、关联产品销售额的平均线作为恒线,切割出四个象限,并利用动态配色(请参考:利用这个新功能,轻松实现图表的动态配色)分别为每个象限的数据设置不同的颜色,显示效果如下:

 

技术图片

 

出现在第一象限(右上角)的产品,就是与切片器选中的产品不仅客户重合度高,而且带来的销售额也更高,具有高相关性,应该特别关注。

该模型还可以接着分析某一段时间的关联性,比如促销期间、节假日期间,客户的购买特征很可能与平时是不同的。

 

技术图片

 

至此,一个简单的关联分析模型建立完成,根据关联产品的不同,动态显示不同的高相关度产品,并且可以随着时间段的变化而变化,

如果有客户画像、销售地点等数据,还可以将这些数据作为外部筛选器,挖掘出不同客户、不同地域的关联产品组合。

当然,这个模型挖掘的关联产品只是初步结果,还应对这个结果进行进一步验证,避免因偶然或人为因素导致的关联性,比如是否有某两种商品的捆绑销售活动等。

关联分析是非常有用的数据挖掘方式,能够帮助企业进行精准产品营销、产品组合以及发现更多潜在客户,真正的利用数据,为企业创造价值。

 

以上是关于商品分析-品类篇-购物篮分析的主要内容,如果未能解决你的问题,请参考以下文章

Apriori商品关联分析

商品零售购物篮分析

商品零售购物篮分析

商品零售购物篮分析

商品零售购物篮分析

商品零售购物篮分析