购物篮指的是超级市场内供顾客购物时使用的装商品的篮子,当顾客付款时这些购物篮内的商品被营业人员通过收款机一一登记结算并记录。所谓的购物篮分析(Market Basket Analysis)就是通过这些购物篮子所显示的信息来研究顾客的购买行为。主要的目的在于找出什么样的东西应该放在一起。藉由顾客的购买行为来了解是什么样的顾客以及这些顾客为什么买这些产品,找出相关规则,企业藉由这些规则的挖掘获得利益与建立竞争优势。举例来说,零售店可藉由此分析改变置物架上的商品排列或是设计吸引客户的商业套餐等等。
购物篮分析最主要的目的在于找出什么样的东西应该放在一起?商业上的应用在由顾客的购买行为来了解是什么样的顾客以及这些顾客为什么买这些产品,找出相关的联想(association) 规则,企业由这些规则的挖掘获得利益与建立竞争优势。举例来说,零售店可由此分析改变置物架上的商品排列或是设计吸引客户的商业套餐等等。
购物篮分析基本运作过程包含下列三点:
(1)选择正确的品项:这里所指的正确乃是针对企业体而言,必须要在数以百计、千计品项中选择出真正有用的品项出来。   (2)经由对共同发生矩阵(co-occurrence matrix)的探讨挖掘出联想规则。   (3)克服实际上的限制:所选择的品项愈多,计算所耗费的资源与时间愈久(呈现指数递增),此时必须运用一些技术以降低资源与时间的损耗。
购物篮分析技术可以应用在下列问题上:
(1)针对信用卡购物,能够预测未来顾客可能购买什么。   (2)对于电信与金融服务业而言,经由购物篮分析能够设计不同的服务组合以扩大利润。   (3)保险业能藉由购物篮分析侦测出可能不寻常的投保组合并作预防。   (4)对病人而言,在疗程的组合上,购物篮分析能作为是否这些疗程组合会导致并发症的判断依据。
该案例通过一个简单的超市购物的数据来演示购物篮分析的方法和思想。工作流如下:

完成该案例需要以下几步:
第一步,读取数据《购物篮.csv》。配置如下图:


第二步,剔除只有一种物品的购物篮子。
首先,使用统计节点统计id字段(即为购物篮id)值的个数。配置如下:


其次,使用选择节点筛选出计数=1的记录。配置如下:

过滤后的表一共有174行,这些都是购物篮中只有一种物品的情况。如下表所示:

第三步,生成购物篮。
首先,使用类型转换节点将id和卡号由浮点型转化为字符型。

其次,使用汇总节点派生购物篮。注意,这里应该以id为购物篮id,而不是卡号,因为同一卡可能有多次购买。但是并不是不能以卡号为研究对象,如果您想把一个人作为一个购物篮对象,也可以用卡号,但是此处经分析重复购买的人并不多,因此以人为研究对象没有意义。节点配置如下:


再次,使用参考行过滤节点,从汇总表中过滤掉过虑表中的数据。配置如下:

再次过滤后的数据如下表所示:

第四步,使用Apriori节点生成训练规则。配置如下:

生成的规则预览如下:

第五步,派生规则质量字段。
首先,使用选择节点过滤前项为空的规则。配置如下:

其次,使用过滤节点删除下面分析中不用的字段。配置如下:

然后,使用派生字段节点,派生规则质量字段。规则质量=支持度*规则置信度。配置如下:

最后,使用排序节点对数据按照规则质量和前项进行二重降序排列。排在前面的即为规则质量比较高的规则。节点配置如下:

第六步,提取规则质量较高的规则,如下表所示:


规则解释如下:
如果客户购买啤酒和蔬菜罐头的话,他还有87.4%的可能购买冻肉;
如果客户购买啤酒和冻肉的话,他还有85.9%的可能购买蔬菜罐头;
如果客户购买蔬菜罐头和冻肉的话,他还有84.4%的可能购买啤酒;
如果客户购买啤酒的话,他还有62.7%的可能购买啤酒;
如果客户购买蔬菜罐头的话,他还有60.5%的可能购买啤酒;
如果客户购买鱼类的话,他还有53.7%的可能购买水果;
如果客户购买糖果的话,他还有53.9%的可能购买啤酒;
......
小结:数据挖掘分为两种,一种是经验验证型,即您或者领导有个想法,然后让您验证一下是不是那样的,您分析之后的回答只有是或者不是,这属于验证型。还有一种是知识发现型的,即原来并不知道有这样的规律,分析之后发现的,即为意想不到的新发现。在这里,我们发现的规则中,啤酒、蔬菜罐头、冻肉同时被购买的可能性较大,这一点可能是大家都知道的,这个结果只是验证了我们以前的想法,而鱼类和水果一起购买的可能性很大,我们可能就不知道了,因此这就属于知识发现。因此,对于这家超市而言,应该把水果和鱼类排放的近一些,这样可以提高销量。还有一点要注意的是,数据挖掘的结果没有普遍适用性,对这家超市有这样的规律,并不代表其他超市也是这样。但是方法论是通用的,不同的超市可以使用同样的方法论进行知识发现和验证。