SPSS Clementines 预测分析模型----啤酒+尿片故
事的实现机理(使用 11 版本实现)
SPSS Clenmentines 提供众多的预测模型,这使得它们可以应用在多种商业领域中:
如超市商品如何摆放可以提高销量;
分析商场营销的打折方案,以制定新的更为有效的方案;
保险公司分析以往的理赔案例,以推出新的保险品种等等,具有很强的商业价值。
超市典型案例
如何摆放超市的商品引导消费者购物从而提高销量,这对大型连锁超市来说是一个现实的营
销问题。关联规则模型自它诞生之时为此类问题提供了一种科学的解决方法。该模型利用数
据挖掘的技术,在海量数据中依据该模型的独特算法发现数据内在的规律性联系,进而提供
具有洞察力的分析解决方案。通过一则超市销售商品的案例,利用“关联规则模型”,来分
析商品交易流水数据,以其发现合理的商品摆放规则,来帮助提高销量。
关联规则简介
关联规则的定义
关联规则表示不同数据项目在同一事件中出现的相关性,就是从大量数据中挖掘出关联规则。
有关数据挖掘关联规则的具体理论依据这里不做详细讲解,大家可以参看韩家炜的数据挖掘
概论。为了更直观的理解关联规则,我们首先来看下面的场景。
一个市场分析人员经常要考虑这样一个问题:哪些商品是频繁被顾客同时购买的?
顾客 1:牛奶+面包+谷类
顾客 2:牛奶+面包+糖+鸡蛋
顾客 3:牛奶+面包+黄油
顾客 4:糖+鸡蛋
以上的情景类似于当年沃尔玛做的市场调查:啤酒+尿片摆放在同一个货架上,销售业绩激
增的著名关联规则应用。
市场分析员分析顾客购买商品的场景,顾客购买面包同时也会购买牛奶的购物模式就可用以
下的关联规则来描述:
面包 => 牛奶 [ 支持度 =2%, 置信度 =60%] (式 1)
式 1中面包是规则前项(Antecedent),牛奶是规则后项 (Consequent)。实例数(Instances)
表示所有购买记录中包含面包的记录的数量。
支持度(Support)表示购买面包的记录数占所有的购买记录数的百分比。
规则支持度(RuleSupport)表示同时购买面包和牛奶的记录数占所有的购买记录数的百分
比。
置信度(confidence)表示同时购买面包和牛奶的记录数占购买面包记录数的百分比。
提升(Lift)表示置信度与已知购买牛奶的百分比的比值,提升大于 1 的规则才是有意义
的。
关联规则 式 1的支持度 2% 意味着,所分析的记录中的 2% 购买了面包。置信度 60% 表明,
购买面包的顾客中的 60% 也购买了牛奶。如果关联满足最小支持度阈值和最小置信度阈值,
就说关联规则是有意义的。这些阈值可以由用户或领域专家设定。就顾客购物而言,根据以
往的购买记录,找出满足最小支持度阈值和最小置信度阈值的关联规则,就找到顾客经常同
时购买的商品。
此处进行关联规则应用可以使用两种数据格式:1,交易数据格式,2,表格格式。
1.交易格式
CustomerID
ITEM
1
2
3
3
4
2.表格格式
bread
jam
juice
jam
milk
CustomerID
bread
jam
juice
milk
1
2
3
4
T
F
F
F
F
T
T
F
F
F
T
F
F
F
F
T
关联规则挖掘算法
Aprior、Carma 和序列节点是常用的关联规则挖掘算法,它们都可以使用交易格式和表格格
式数据进行挖掘处理。其中 Aprior 算法,处理速度快,对包含的规则数没有限制,是一种
最有影响的挖掘关联规则的方法。
本次试验将使用 SPSS Clementine11 自带的安装目录下的 Demos 文件夹下的
BASKETS1n 数据。希望分析出哪些商品会和啤酒一起购买,以此来合理安排商品的摆放,
进而提高啤酒的销量。
此数据属于表格格式数据,每条记录表示顾客的一次购物。记录的字段包括卡号、顾客基本
信息、付款方式和商品名称(每个商品一个字段 , 该商品字段值为 T, 表示购买该商品 , 值
为 F 表示未购买,具体可参考表 2, 表格格式数据)。商品名称都有 fruitveg(水果蔬菜),
freshmeat(生鲜肉),dairy(奶制品),cannedveg(罐装蔬菜),cannedmeat(罐
装肉),fozenmeal(冻肉),beer(啤酒), wine(酒类),softdrink(软饮),fish
(鱼), confectionery(甜食)。
首先打开 Clementine ,会出现一张空白的流界面,这时用户可以在里面创建自己的流。
第一步,为流添加一个数据节点,这里选择 Clementine 自带的 Demo 数据。将界面下方选
项卡的“数据源”选项中的“可变文件”拖放到空白界面中,双击打开,在文件选项卡中选
择 Clementine 自带的 Demo 数据 BASKETS1n,如图所示。
点击确定按钮,这时就成功的创建了数据节点。
第二步,为流添加类型节点,类型节点是显示和设置数据每个字段的类型、格式和角色。从
界面下方的“字段选项”卡中,将“类型”节点拖放到界面中,接着将数据节点和类型节点
连接起来,或者直接在“字段选项”卡中双击“类型”节点,将两者连接起来。这时双击打
开“类型”节点,此时“类型”节点中显示了数据的字段和其类型,点击“类型”节点界面
上的“读取值”按钮,这时会将数据节点中的数据读取过来。如下图所示。
接着可以为参与建模的数据字段设置角色,角色分“输入”,“目标”,“两者”和“无”。
输入表示该字段可供建模使用,目标表示该字段为建模的预测目标,两者表示该字段为布尔
型的输入字段,无表示该字段不参与建模。Apriori 节点需要一个或多个输入字段和一个或
多个目标字段,输入字段和输出字段必须是符号型字段。在此可以选择一个或多个字段为目
标字段,表明该模型的预测目标字段;对于 Apriori 建模节点,也可以不设置目标字段,
则需要在建模节点中设置“后项”。
第三步,为流添加 过滤节点,将不参与的字段排除在外。该步骤为可选步骤。从“字段选
项”卡中选择“过滤”节点,并将其拖入到界面中,将“过滤”节点加入到流中。双击打开
“过滤”节点,在不参与建模字段的箭头上点击,会出现一个红叉,表示该字段被过滤掉了,
不参与建模,如图所示。
对于一些与建模关系不大的节点可以将其过滤掉,比如卡号、性别、家乡和年龄字段。
第四步,有了这些前期的准备过程,接下来就可以开始创建关联规则模型节点了,在此之前,
让我们先添加一个图形节点—— 网络节点,建立此节点的目的是为了让用户首先可以直观
的看到商品之间的关联程度,有一个感性认识。选择“图形”选项卡中的“网络”节点,将
此拖入界面,将“网络”节点加入流中,与“过滤”节点连接起来。双击打开网络节点,在
“字段”列表中选择添加字段,可以将所有的商品字段添加进来;也可以点击“仅显示真值
标志”,将只显示那些“两者”的字段,如图所示。
点击“选项”卡,进入选项设置,用户可以在此设置链接数量的显示范围,不显示一些链接
数量低的链接,如图所示。
点击“运行”按钮,这时会生成一个商品之间关联程度(链接数量)的网络图,用户可以在
下方的调节杆上调节链接数量的显示范围。
上图中,线的粗细和深浅代表联系的强弱,可以直观的看到 beer 和 frozenmeat,cannedeg
联系程度比较强。
第五步,添加“建模”节点到流中,开始关联规则模型设置和使用的篇章。首先点击界面下
方“建模”选项卡,再点击 Apriori,节点拖放到界面中,连接该节点到过滤节点上,或者
双击 Apriori 节点。接着设置 Apriori 节点的参数,建立关联规则模型。双击打开 Apriori
节点,如下图所示。
该“字段”选项卡,是设置参与建模的字段和目标字段的,可以看到其中包括两个选项,“使
用类型节点设置”和“使用定制设置”,这里将为用户分别呈现两种选项的使用方法。这里
无论选择哪个选项,都需要将市场分析员重点关注的商品包括在其中,其他商品可以不包括。
如果用户选择“使用定制设置”选项,则需要将啤酒设置在“后项”列表中,将其他重点关
注的商品设置在“前项”列表中,如下图所示。
这里,分区允许您使用指定字段将数据分割为几个不同的样本,分别用于模型构建过程中的
训练、测试和验证阶段。如果设置了“分区”,除了在此选择分区字段外,还需要在“模型”
选项卡中,勾上“使用分区数据”的选择框。关于“分区”的概念、作用和使用方法,本文
不做详细介绍。