SPSS Modeler——超市商品购买关联分析

摘要

关联分析,用于发现隐藏在大型数据集中的有意义的联系。这种联系反映一个事物与其他事物之间的相互依存性和关联性。如果两个或者多个事物之间存在一定的关联关系,那么,其中一个事物就能够通过其他事物预测到。

超市在运营中保存了交易明细帐数据,考虑根据顾客购买商品的情况,分析商品购买之间的关联,从而为超市提供合理的建议。本次试验主要有两个分析方向,分别是分析商品之间的潜在联系和分析顾客可能还会购买的商品。

第一章 引言
1.1数据分析的背景
    关联分析,用于发现隐藏在大型数据集中的有意义的联系。这种联系反映一个事物与其他事物之间的相互依存性和关联性。如果两个或者多个事物之间存在一定的关联关系,那么,其中一个事物就能够通过其他事物预测到。
    超市在运营中保存了交易明细帐数据,考虑根据顾客购买商品的情况,分析商品购买之间的关联,从而为超市提供合理的建议。关联分析可以处理两个关键问题:(一)从大型事务数据集中发现模式可能在计算上要付出很高的代价—关联分析的基本概念和用来有效地挖掘这种模式的算法。(二)所发现的某些模式可能是虚假的,因为它们可能是偶然发生的—处理发现模式的评估问题,以避免产生虚假结果。
1.2分析的目的与意义
给定一个事务集合 T, 关联规则挖掘的目标是找出所有的满足以下条件的规则:支持度 ≥ minsup 阈值、置信度 ≥ minconf 阈值。顾客在选购商品时,经常会同时选购若干商品,这些商品之间存在一定关联。通过关联分析,我们可以找出顾客购买商品之间的关联,然后商家就可以根据我们得到的结果,对货物的摆放进行更新,以便于更好的售出商品。 
第二章 数据审核与数据预处理
2.1原始数据表说明
    在原始数据表中,我们可以看到,表中共有2800条记录,有5个字段,分别是会员ID,商品,数量,单价,小计。其中,商品这个字段共有11个属性,分别是冻肉、罐装肉、罐装蔬菜、牛奶、啤酒、葡萄酒、蔬菜水果、甜食、鲜肉、饮料、鱼。如图2-1所示。

图2-1 原始表格信息

2.2数据分布与数据审核
    再观察过原始数据表之后,对原始数据进行数据审核,可以清楚地观察到各个字段的分布情况及其数据类型。分别如图2-2、2-3所示。在图2-2中可以看到5个字段的分布情况,及其最小最大值、平均值标准差等指标。在图2-3中可以看到各字段的属性,有连续型和名义型。从图中可以看到,5个字段的有效数据都是2800条,与总数据量是相同的,说明每条记录都是可用的有效的记录。

图2-2 数据审核结果之数据分布

图2-3 数据审核结果之数据质量

2.3数据预处理
    在2.2节中我们可以看到,“会员ID”字段的属性是连续型,但是作为一个对会员作区分的字段,它并没有实际意义,所以应该把会员ID的属性更改为名义型。如图2-4、2-5所示,在类型节点中进行修改,并将该字段的小数点显示位数改为0。这里说一句额外的话,如果把会员ID更改为名义类型后自动变成无类型的,那就是流属性的问题,在文件菜单里面找到流属性,将名义字段的最大成员数前面的勾取消掉就可以了。

图2-4 将会员ID类型修改为名义型

图2-5 将会员ID的小数点位数修改为0

修改之后的结果,有利于接下来的分析过程,如图2-6显示了修改之后的数据表的显示情况。

图2-6 修改后的数据表

通过查找“36405”这个会员ID,发现这个顾客购买了冻肉、啤酒和饮料三种商品。根据直观观察来看,原始的数据集中是以每个会员ID每购一件商品为一条记录的,可能是以商品名为升序排列的。而购物篮分析是根据购物篮中的所有商品来分析其关联关系的。于是,先根据会员ID将数据表进行排序。得到结果如图2-7所示。

图2-7 将表格按照“会员ID”排序

但是这仍然还达不到我们做关联分析的需求,我们想要的数据形式是每行代表一个用户,后面的字段是商品名,数据表中能体现出该用户是否购买了该商品。为了达到这个目的,选择设为标志节点进行处理,用商品字段进行标志操作,把名义变量的各类别设为多个新的变量,新变量的值出现为T,不出现F。过程和结果分别如图2-8和2-9所示。

图2-8 设置标志节点

图2-9 标志节点的结果

因为新出现的字段前面都有“商品_”前缀,造成视觉上的冗余,所以用过滤节点将之过滤掉。如图2-10所示,结果不再用图片展示,以免占用篇幅。

图2-10 过滤节点去掉冗余前缀

至此,数据预处理阶段的工作已经全部完成了,下面将会对得到数据进行关联分析。

第三章 数据分析
3.1总体思路
通过网络节点和模型,分析出这个商家售出的11中商品在被顾客购买时的关系,通过得到的结论,为商家提供建议。
第一步,用网络图观察商品之间的关联关系;
第二步,用Apriori模型对商品做关联分析。
3.2基于SPSS Modeler的数据分析过程
3.2.1使用网络图节点进行分析
    在前面数据预处理得到的数据基础上,选择网络节点,网络图节点的基本功能是显示两个或多个名义或标志字段的值之间关系的紧密程度。设置的过程如图3-1所示。

图3-1 设置网络节点的属性

网络节点的输出结果,能够反映出属性之间的关联程度,属性与属性之间连接线的粗细表示连接强度,如图3-2所示。

图3-2 网络节点的输出结果

网络图下方的阈值条限定图中显示连线的频数值。拉动阈值条,将会得到新的网络图,线条的粗细会有变化。在高阈值下限的时候,关联程度低的商品就不会再显示在网络图中,示例如图3-3所示。

图3-3 高阈值下限时候的网络图

在网络图的输出结果里面,也可以看到汇总的数据,我将阈值下限拉倒100,再看新的结果,如图3-4所示。

图3-4 阈值下限100上限200的网络图

网络图中也可以只定向输出自己观测的商品之间的联系,例如啤酒、葡萄酒、饮料,得到图3-5里面的结果。

图3-5 指定商品之间的网络图

3.2.2选用Apriori模型进行关联分析
    接下来,将使用Apriori模型继续对商品做关联分析。首先添加“类型”节点,改变各字段的角色为“任意”,表示在建模中各变量既是条件与是结果。如图3-6所示。

图3-6 类型节点改角色为任意

然后,在模型里面选择Apriori节点,运行结果如图3-7所示。

图3-7 Apriori模型的结果

从结果中可以看出,对已经购买了啤酒和罐装蔬菜的顾客来说,他们很可能继续购买冻肉。原因:在历史数据中,我们发现同时购买啤酒和罐装蔬菜的顾客有167人,占总人数的17.785%,在这些顾客中,有146例即87.425%的顾客也同时购买了冻肉。同时购买了此三种商品的顾客占比为15.548%,采用此规则向客户推荐冻肉比随机推荐该商品会提升效率2.718倍,该规则适用于2.236%的顾客 。

        将Apriori模型的结果用表格形式输出,可以看到结果是比较乱的,如图3-8所示。

图3-8 Apriori模型的表格

但是,为了让结果更直观,希望最终的结果只有会员ID号以及相应的推荐商品,于是进行过滤。如图3-9所示。

图3-9 过滤不需要的字段

过滤之后,再使用选择节点,使用@NULL(FIELD)函数:若当前观测在变量FIELD上取系统缺失值$null$,则返回为真,否则返回为0。设置和结果分别如图3-10和3-11所示。

图3-10 设置选择节点的函数

图3-11 经过选择过滤后的输出结果

3.3完整数据流

图3-12 完整数据流

至此,对于商品购买数据所做的关联分析全部完成了,下面将会根据得到的结果,向商家提供一些建议。

第四章 结论及建议
4.1对商家提的对策和建议
    优化商品布局,通过网络图,能够分析出罐装蔬菜、啤酒、冻肉很容易被同时购买,甜食和葡萄酒很容易被同时购买,蔬菜水果和鱼很容易被同时购买,在超市进行商品排列时,可以把这些商品摆放得靠近一些,或者在同一通道内。既方便购买,又可能增加冲动购物。
    设计促销方案:依据商品关联分析的结果,将关联性强的商品可以设计捆绑促销,如同时购买这两种商品,可以优惠5%等。
    快速商品推荐:顾客购买完商品后,通过关联分析结果,可以推测该顾客还可能购买的商品,从而向他进行推荐。
4.2针对此次分析目的的结论
    根据此次分析的结果可以看到,顾客在超市购物的时候,确确实实是存在购买某种商品后更容易购买其他商品的相关性,超市商家可以在这方面加强服务方式,以达到多卖商品的目的。
4.3其他发现
    在做实验的过程中,虽然有PPT可以参考,但是也有额外的小问题。其一,修改会员ID为名义型时,要把整个流属性里面限制名义型最大数的选项勾选掉。其二,在设为标志的那一步,“F”后面在做的的时候多了一个空格,导致后面运算模型的时候运算失败,把空格删除后问题得到解决。
 

猜你喜欢

转载自blog.csdn.net/youxinyuchu/article/details/83578397