在针对大型超市的购物篮分析中,我们将顾客购买的每一个商品看做一个元素,将一张购物小票上的所有商品看做一个集合。我们所希望的就是通过寻找集合中的频繁元素,发现顾客购物的规律。和顺序分析类似,我们使用0和1表示某一商品在集合中是否出现。
购物篮分析项集记录表
图是一张由五个集合、六个元素构成的项集记录表,其中1代表某个元素出现在了某个集合中,0代表没有出现。我们希望从中找出出现频率较高的组合,比如“啤酒+尿布”这种组合,这些组合就是我们所说的频繁项集。
首先,将每一种元素都单独拆开看,面包、牛奶、啤酒和尿布都出现了四次,可乐出现了两次,鸡蛋出现了一次,我们只关心那些频繁出现的项集,对于鸡蛋来说,即便知道顾客只要购买鸡蛋,就一定会购买牛奶,但由于购买鸡蛋的顾客实在太少了,因此这种频繁模式是没有意义的。因此接下来我们只关心面包、牛奶、啤酒和尿布这四种商品。
其次,我们要分析两两出现的商品组合的频率。四种商品能够两两成对,组成六对。这六对商品出现的频率分别是——三次,——三次,——两次,——三次,——两次,——三次。我们仍然只关心其中出现频率较高的组合,即四种出现了三次的商品组合。
在两个商品组成的频繁项集中继续添加商品,可以发现、、出现了两次,而只出现了一次。这四种商品全都出现的项集只有一次。
频繁模式剪枝原理示意图
根据购物篮分析项集记录表的分析,可以看出购物篮分析总是由小到大,从单个的商品分析到多个商品分析的。频繁模式剪枝原理示意图是对五种元素遍历搜索频繁模式的示意图。从图中可以看出,五种商品能够组合出的商品组合是非常多的,随着商品数目的增多,商品组合的数目还会飞快增长下去。因此找到一种能够快速剪枝的方法是非常必要的。
频繁模式剪枝原理如下:如果某一模式是项集的,那么它的子集全都是频繁的;如果某一项集是不频繁的,那么它的超集都是不频繁的。
譬如项集CDE是频繁的,那么它的子集C、D、E、CD、CE、DE都是频繁的,也就是图右上部分红色实线勾出的项集都是频繁的;项集AB不频繁的话,那么它的超集ABC、ABD、ABE、ABCD、ABCE、ABDE、ABCDE都是不频繁的,也就是图7.5左下部分红色虚线勾出的项集都是不频繁的。这两个原理的本质是等价的,但在实际应用中,我们更多的使用后一种关于不频繁项集的描述。
这一原理可以在购物篮分析项集记录表中得到验证,由于项集是不频繁的,因此我们在分析多个元素组成的频繁项集时,根本就没有考虑包含的多元素项集,因为我们知道,即便观察了包含的多元素项集,它们也一定是不频繁的。换言之,一旦发现不频繁项集,它所对应的超集即可被剪去。
购物篮分析结果示意图
有了剪枝原理,购物篮分析就能够极大地提高工作效率,可以在几十上百种商品中寻找频繁模式了。上图是一个购物篮分析的结果示意图,它涉及到了十种商品,且将所有频繁的两两组合连接了起来,连接两种商品的线条粗细代表了项集的频繁程度,线条越粗,项集就越频繁。
这些频繁模式有很多是意义不大的,比如鱼和新鲜蔬菜是一对频繁项集,但即便不做购物篮分析,售货员也知道要将鱼和新鲜蔬菜摆在一起卖,这是常识。频繁模式中有意义的只占少数,比如冷冻肉和啤酒这一搭配就让人比较惊奇,上图中将这组搭配用红线标了出来。
总的来说,购物篮分析所发现的频繁项集中只有百分之一是有指导意义的,数据分析师要有一双善于发现的眼睛,才能在沙子中寻找到黄金。
领取专属 10元无门槛券
私享最新 技术干货