[backcolor=rgb(249, 249, 249) !important]应用关联规则模型提高超市销量 来源于:http://www.ibm.com/developerworks/cn/data/library/techarticle/dm-1108zhangzy/index.html
[size=0.95em]本文要介绍的预测分析模型是“关联规则模型”,我们将为大家简要介绍关联规则的理论,然后结合 IBM SPSS Modeler 产品为大家详细讲述如何利用关联规则模型来解决客户的具体商业问题——如何优化超市商品的摆放以提高销量。
Statistics 和 Modeler作为 IBM SPSS 软件家族中重要的成员,是专业的科学统计、数据挖掘分析工具,具有功能强大,应用广泛的特点。其核心 组成部分——预测分析模型,不仅是软件功能实现的关键,时也是软件应用的关键。
[size=1.166em]Statistics中的模型侧重于统计分析技术, 而Modeler则侧重于数据挖掘技术。它们都依据现有数据,运用某个或某几个特定的算法,来预测用户所关注信息的未来值。Statistics 和 Modeler提供众多的预测模型,这使得它们可以应用在多种商业领域中:如超市商品如何摆放可以提高销量;分析商场营销的打折方案,以制定新的更为有效的方案;保险公司分析以往的理赔案例,以推出新的保险品种等等,具有很强商业价值。
[size=1.166em]Statistics和 Modeler产品中含有大量基于高级数学统计算法的预测模型,为了保证算法的严密性及结果的精确性,模型往往还需要许多详细的参数设定,这样就要求用户具有一定的统计专业知识,只有理解预测模型中的各项设置及运算结果的真实意义,才有可能结合结果做出正确的决策判断;另外,为了满足不同行业用户的需求,Statistics和 Modeler涉及到数学领域中多个不同的范畴,即使专业用户也很难了解所有模型,从而挑选出最适合他们应用的模型。
[size=1.166em]因此,为了让更多的用户更好更准确地使用我们的产品,最大地发挥其商业价值,我们将通过一系列的相关文章来介绍IBM SPSS软件家族中Statistics 和 Modeler的典型预测模型以及他们在解决相应的商业问题中的实际应用。
[size=1.166em]本系列文章从实际问题出发,通过一些实际生活中常见的商业问题来引出IBM SPSS 软件家族中的典型预测模型,手把手地指导用户如何在软件中对该模型进行设置,如何查看运行结果,讲解运行结果的真实意义,最后引申到如何将该结果应用于解决这个具体的商业问题中来。用这种最直观简单的方式使即使缺乏统计学背景的用户也能容易地理解这些预测模型,从而很好地使用我们的产品。 同时,文中也涉及了一定的统计知识,使具有专业知识的用户能依此线索尽可能多的了解我们的产品的方方面面,从而选择最适合他们问题的模型。
[size=1.166em]下面,我们将会陆续给大家介绍IBM SPSS 软件家族中的Statistics 和 Modeler包含的典型预测模型。
超市典型案例[size=1.166em]如何摆放超市的商品引导消费者购物从而提高销量,这对大型连锁超市来说是一个现实的营销问题。关联规则模型自它诞生之时为此类问题提供了一种科学的解决方法。该模型利用数据挖掘的技术,在海量数据中依据该模型的独特算法发现数据内在的规律性联系,进而提供具有洞察力的分析解决方案。以下我们将通过一则超市销售商品的案例,利用 IBM SPSS Modeler 产品中的“关联规则模型”,来分析商品交易流水数据,以其发现合理的商品摆放规则,来帮助提高销量。文中将详细地描述产品的设置和使用方法,以及对计算结果的分析及应用。
关联规则简介关联规则的定义[size=1.166em]关联规则表示不同数据项目在同一事件中出现的相关性,就是从大量数据中挖掘出关联规则。为了更直观的理解关联规则,我们首先来看下图的场景。
图 1. 超市市场分析员分析顾客购买习惯
[size=1.166em]在上图中,超市市场分析员分析顾客购买商品的场景,顾客购买面包同时也会购买牛奶的购物模式就可用以下的关联规则来描述:
[size=1.166em]面包 => 牛奶 [ 支持度 =2%, 置信度 =60%] (式 1)
[size=1.166em]式 1中面包是规则前项(Antecedent),牛奶是规则后项 (Consequent)。实例数(Instances)表示所有购买记录中包含面包的记录的数量。支持度(Support)表示购买面包的记录数占所有的购买记录数的百分比。规则支持度(Rule Support)表示同时购买面包和牛奶的记录数占所有的购买记录数的百分比。置信度(confidence)表示同时购买面包和牛奶的记录数占购买面包记录数的百分比。提升(Lift)表示置信度与已知购买牛奶的百分比的比值,提升大于 1 的规则才是有意义的。关联规则 式 1的支持度 2% 意味着,所分析的记录中的 2% 购买了面包。置信度 60% 表明,购买面包的顾客中的 60% 也购买了牛奶。如果关联满足最小支持度阈值和最小置信度阈值,就说关联规则是有意义的。这些阈值可以由用户或领域专家设定。就顾客购物而言,根据以往的购买记录,找出满足最小支持度阈值和最小置信度阈值的关联规则,就找到顾客经常同时购买的商品。
数据格式关联规则使用的数据可能是交易格式,也可能是表格格式,如下所述。
交易数据对于每个交易或项目具有一个单独的记录。例如,如果客户进行了多次采购,则每次采购都会有一个单独的记录,并且相关联的商品与客户 ID 相链接。这种格式有时称为 行穷尽格式。
表 1. 交易格式数据[td]
| 客户 | 采购 | 
| 1 | jam | 
| 2 | milk | 
| 3 | jam | 
| 3 | bread | 
| 4 | jam | 
| 4 | bread | 
| 4 | milk | 
表格数据(也称为篮子数据或真值表数据),由单独的标志表示项目,其中每个标志字段表示一个特定项目的存在或不存在。每个记录表示一个相关项目的完整集合。标志字段可以是分类的,也可以是数字的。
表 2. 表格格式数据[td]
| 客户 | Jam | Bread | Milk | 
| 1 | T | F | F | 
| 2 | F | F | T | 
| 3 | T | T | F | 
| 4 | T | T | T | 
关联规则挖掘算法Aprior、Carma 和序列节点是常用的关联规则挖掘算法,它们都可以使用交易格式和表格格式数据进行挖掘处理。其中 Aprior 算法,处理速度快,对包含的规则数没有限制,是一种最有影响的挖掘关联规则的方法。
IBM SPSS Modeler 关联规则模型的使用[size=1.166em]IBM SPSS Modeler 作为一种可视化的数据挖掘和建模工具,支持 Aprior、Carma 和序列节点关联规则挖掘模型,本章节将重点介绍 Aprior 模型的设置、使用方法和结果分析。
[size=1.166em]对于超市市场分析员分析顾客购买习惯的案例,现在让我们设定一个实际的场景,市场分析员利用超市海量的购物清单,从中分析出顾客购买啤酒会和哪些商品一起购买,依次来合理安排商品的摆放,进而提高啤酒的销量。
[size=1.166em]对于此案例,我们使用 IBM SPSS Modeler 自带的安装目录下的 Demos 文件夹下的 BASKETS1n 数据。我们希望分析出哪些商品会和啤酒一起购买,以此来合理安排商品的摆放,进而提高啤酒的销量。
[size=1.166em]此数据属于表格格式数据,每条记录表示顾客的一次购物。记录的字段包括卡号、顾客基本信息、付款方式和商品名称(每个商品一个字段 , 该商品字段值为 T, 表示购买该商品 , 值为 F 表示未购买,具体可参考表 2, 表格格式数据)。商品名称都有 fruitveg(水果蔬菜),freshmeat(生鲜肉),dairy(奶制品),cannedveg(罐装蔬菜),cannedmeat(罐装肉),fozenmeal(冻肉),beer(啤酒), wine(酒类),softdrink(软饮),fish(鱼), confectionery(甜食)。如何对这些数据进行分析和处理,本节会给出详细的演示。
[size=1.166em]在做详细介绍以前,让我们先了解下 IBM SPSS Modeler 的建模过程,关于详细的过程,可以参考本文给出的参考资料。IBM SPSS Modeler 中处理的基本对象是流,在流中可以添加数据节点、类型节点、建模节点等,运行后会生成模型节点,进而对模型节点进行分析,得出结论。
[size=1.166em]现在让我们开始介绍如何创建一条包含关联规则模型的流,来解决市场分析员的问题。本节使用 IBM SPSS Modeler 14.2 进行演示。首先打开 Modeler 产品,会出现一张空白的流界面,这时用户可以在里面创建自己的流。
图 2. IBM SPSS Modeler 界面
[size=1.166em]第一步,为流添加一个数据节点,这里选择 Modeler 自带的 Demo 数据。将界面下方选项卡的“源”选项中的“可变文件”拖放到空白界面中,双击打开,在文件选项卡中选择 Modeler 自带的 Demo 数据 BASKETS1n,如图所示。
图 3. 选择添加数据节点
[size=1.166em]点击确定按钮,这时就成功的创建了数据节点。
[size=1.166em]第二步,为流添加类型节点,类型节点是显示和设置数据每个字段的类型、格式和角色。从界面下方的“字段选项”卡中,将“类型”节点拖放到界面中,接着将数据节点和类型节点连接起来,或者直接在“字段选项”卡中双击“类型”节点,将两者连接起来。这时双击打开“类型”节点,此时“类型”节点中显示了数据的字段和其类型,点击“类型”节点界面上的“读取值”按钮,这时会将数据节点中的数据读取过来。如下图所示。
图 4. 设置类型节点
[size=1.166em]接着可以为参与建模的数据字段设置角色,角色分“输入”,“目标”,“两者”和“无”。输入表示该字段可供建模使用,目标表示该字段为建模的预测目标,两者表示该字段为布尔型的输入字段,无表示该字段不参与建模。Apriori 节点需要一个或多个输入字段和一个或多个目标字段,输入字段和输出字段必须是符号型字段。在此可以选择一个或多个字段为目标字段,表明该模型的预测目标字段;对于 Apriori 建模节点,也可以不设置目标字段,则需要在建模节点中设置“后项”。
[size=1.166em]第三步,为流添加 过滤节点,将不参与的字段排除在外。该步骤为可选步骤。从“字段选项”卡中选择“过滤”节点,并将其拖入到界面中,将“过滤”节点加入到流中。双击打开“过滤”节点,在不参与建模字段的箭头上点击,会出现一个红叉,表示该字段被过滤掉了,不参与建模,如图所示。
图 5. 设置过滤节点
[size=1.166em]对于一些与建模关系不大的节点可以将其过滤掉,比如卡号、性别、家乡和年龄字段。
[size=1.166em]第四步,有了这些前期的准备过程,接下来就可以开始创建关联规则模型节点了,在此之前,让我们先添加一个图形节点—— 网络节点,建立此节点的目的是为了让用户首先可以直观的看到商品之间的关联程度,有一个感性认识。选择“图形”选项卡中的“网络”节点,将此拖入界面,将“网络”节点加入流中,与“过滤”节点连接起来。双击打开网络节点,在“字段”列表中选择添加字段,可以将所有的商品字段添加进来;也可以点击“仅显示真值标志”,将只显示那些“两者”的字段,如图所示。
图 6. 网络节点设置
[size=1.166em]点击“选项”卡,进入选项设置,用户可以在此设置链接数量的显示范围,不显示一些链接数量低的链接,如图所示。
图 7. 网络节点选项设置
[size=1.166em]点击“运行”按钮,这时会生成一个商品之间关联程度(链接数量)的网络图,用户可以在下方的调节杆上调节链接数量的显示范围。
图 8. 网络节点运行结果
[size=1.166em]上图中,线的粗细和深浅代表联系的强弱,可以直观的看到 beer 和 frozenmeat,cannedeg 联系程度比较强。接下来将开始本章节的重点部分,关联规则模型节点的设置和使用。
[size=1.166em]第五步,添加“建模”节点到流中,开始关联规则模型设置和使用的篇章。首先点击界面下方“建模”选项卡,再点击“关联”分类,将 Apriori 节点拖放到界面中,连接该节点到过滤节点上,或者双击 Apriori 节点。接着设置 Apriori 节点的参数,建立关联规则模型。双击打开 Apriori 节点,如下图所示。
图 9. Apriori 建模节点
[size=1.166em]该“字段”选项卡,是设置参与建模的字段和目标字段的,可以看到其中包括两个选项,“使用类型节点设置”和“使用定制设置”,这里将为用户分别呈现两种选项的使用方法。这里无论选择哪个选项,都需要将市场分析员重点关注的商品包括在其中,其他商品可以不包括。