大型超市购物篮问题

更新时间:2023-10-07 00:25:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

大型超市“购物篮”分析

摘要

本文通过对大型超市“购物篮”的分析,运用Apriori算法的思想,做出相应的改进,利用支持度和置信度的大小进行一定程度的筛选,结合商品的利润大小,引入促销系数,通过促销系数的比较,得到科学的商品组合情况,设计一定的商品促销手段,实现超市效益的进一步增大。 对于问题一,我们参考了一种最有影响的挖掘布尔关联规则频繁项集的算法——Apriori算法。用matlab编程,得到每两个商品同时出现的个数,并求得它们的支持度和相互的置信度,设定最低支持度为5%,得到符合的两种商品组合数为17组。设定最低置信度为20%,对17组数据进行筛选,得到12组商品组合。最后通过关联密切系数的大小,得到了12组商品组合彼此关联关系的密切程度。

对于问题二,仅考虑商品支持度的大小,求得在一定最小支持度下被频繁地同时购买的商品组合。用matlab编程,设置最小支持度为2.12%,筛选两个商品组合时,我们得到了1391种组合方式,在此基础上筛选三个商品组合时,我们得到了40种组合方式;再继续筛选四个商品组合得到35种,最后筛选五个商品得到一种组合,六个商品组合时则没有出现大于最小支持度的组合方式。因此,我们得到了尽可能多的商品被频繁同时购买的信息。

对于问题三,在结合商品利润的条件下,引入促销系数H,考虑1391个两种商品组合中各商品的利润、支持度和置信度,分别计算出三者的乘积之和进行比较。选取促销系数H较高的组合商品采取就近摆放、打折促销、消费送礼等捆绑销售方式得到一种促销方案,使得超市的效益进一步增大。

关键词:购物篮分析、Apriori算法、促销系数

一、问题重述

作为超市的经理,经常关心的问题是顾客的购物习惯。他们想知道:“什么商品组或集合顾客多半会在一次购物时同时购买?”。现在假设你们是某超市的市场分析员,已经掌握了该超市近一个星期的所有顾客购买物品的清单和相应商品的价格,需要你们给超市经理一个合理的“购物篮”分析报告,并提供一个促销计划的初步方案。

问题一: 附件1中的表格数据显示了该超市在一个星期内的4717个顾客对999种商品的购买记录,对数据进行分析,试建立一种数学模型,使该模型能定量表达超市中多种商品间的关联关系的密切程度。

问题二:根据问题1建立的模型,通过一种快速有效的方法从附件1中的购买记录中分析出哪些商品是最频繁被同时购买的,找到的最频繁被同时购买的商品数量越多越好。

问题三:附件2给出了这999中商品的对应的利润,根据在问题1、问题2中建立的模型,设定一种初步的促销方案,使超市的效益进一步增大。

二、模型的假设

1、假设各个商品的利润保持不变。

2、假设表格中的数据能真实地反映当地消费者的购物情况。 3、假设短时间内商品的销售情况维持稳定,不会出现大幅波动。

三、符号说明

符号 si

c(A=>B) c(B=>A) ci smin cmin

μ H

解释说明

组合i的支持度 规则A=>B的置信度 规则B=>A的置信度 组合i的平均置信度 最小支持度 最小置信度 关联密切系数 促销系数

四、问题分析

本题是关于大型超市“购物篮”的分析问题,涉及到数据挖掘、关联规则等相关问题。本题的三个问题是层层递进的关系,要求通过对商品购买数据的分析,找到关联程度较高且购买次数较高的商品,最后设计出合理的超市促销方案。

问题一,由于购物篮分析是关联规则挖掘的一个典型案例,因此我们采用一种最有影响的挖掘布尔关联规则[1]频繁项集的算法——Apriori算法[2-3]。利用其基本思想,进行了商品两种之间的支持度和置信度计算,在定义最小支持度和最小置信度后,进行筛选得到关联规则集。为定量地表达超市中多种商品间的关联关系的密切程度,本文引入一个关联密切系数进行衡量分别对12个组合求解平均置信度,进而得到该组的关联密切系数。由此认为,关联密切系数越大的商品组合,其关联关系密切程度较高。

问题二,在得到商品两种关联数据的基础上,仅考虑商品支持度的大小,求得在一定最小支持度下被频繁地同时购买的商品组合。同时为使商品数量尽量多,我们在两种组合的情况下延伸至三种组合,四种组合??以此得到尽可能多的商品被频繁同时购买的信息,尽量靠近最频繁被同时购买且商品数量越多的双重目标。

问题三,在结合商品利润的条件下,考虑两种组合中各商品的利润、支持度和置信度,分别计算出三者的乘积再求和,记为促销系数H,并以此作为衡量此组合商品是否进行促销的标准。当结果较高时,我们就采取就近摆放、打折促销、消费送礼等捆绑销售方式式得到一种促销方案,在方便顾客的购买的同时,增加消费者对该超市的有好感和信任度,最终使得超市的效益进一步增大。

五、模型的建立和求解

模型一:基于Apriori算法的关联规则挖掘[4]模型

1.模型的准备

设: I={ i1,i2......,im }是所有项目的集合. D是所有事务的集合(即数据库), 每个事务T是一些项目的集合, T包含在D中, 每个事务可以用唯一的标识符TID来标识.设X为某些项目的集合,如果X包含在T中,则称事务T包含X,关联规则则表示为如下形式(X包含在T)=>(Y包含在T)的蕴涵式,这里X包含在I中, Y包含在I中,并且X∧Y=Φ.其意义在于一个事务中某些项的出现,可推导出另一些项在同一事务中也出现(为简单化,将(X包含在T)=>(Y包含在T)表示为X=>Y,这里,‘=>’ 称为‘关联’操作,X称为关联规则的先决条件,Y称为关联规则的结果).

事务数据库D中的规则X=>Y是由支持度(ssupport)和置信度c(confidence)约束,置信度表示规则的强度, 支持度表示在规则中出现的频度。数据项集X的支持度s(X)是D中包含X的事务数量与D的总事务数量之比, 但为下文便于叙述, 数据项集X的支持度是用数据库D中包含X的数量来表示;

规则X=>Y的支持度s定义为: 在D中包含X∪Y的事务所占比例为s%, 表示同时包含X和Y的事务数量与D的总事务量之比。用该项集出现的次数除以TID总数即可得到,用如下公式表示:

Support(X)=Count(X)/Count(TID)

规则X=>Y的置信度c定义为: 在D中,c%的事务包含X的同时也包含Y, 表示D中包含X的事务中有多大可能性包含Y. 依据所求的频繁项集,及所求得的支持度,运用如下公式求解:

Confidence(X=>Y)=Support(X∪Y)/Support(X)

最小支持度阈值minsupport表示数据项集在统计意义上的最低主要性. 最小置信度阈值mincontinence表示规则的最低可靠性. 如果数据项集X满足X.support>=minsupport, 则X是大数据项集. 一般由用户给定最小置信度阈值和最小支持度阈值.置信度和支持度大于相应阈值的规则称为强关联规则, 反之称为弱关联规则. 发现关联规则的任务就是从数据库中发现那些置信度、支持度大小等于给定值的强壮规则.

基于上述概念,我们可以很容易得到一些基本结论:

(1) K维数据项集XK是频繁项集的必要条件是它所有K-1维子项集也为频繁项集,记为XK-1

(2)如果K维数据项集XK的任意一个K-1维子集XK-1,不是频繁项集,则K维数据项集XK本身也不是最大数据项集。

(3) XK是K维频繁项集,如果所有K-1维频繁项集集合XK-1中包含XK的K-1维子项集的个数小于K,则XK不可能是K维最大频繁数据项集。

证明:

很明显,数据项集XK-1:的K-1维子项集的个数为K-1。如果高频繁数据项集XK-1,中包含XK的K-1.维子项集的个数小于K,则存在XK的K-1维子项集不是频繁数据项集,由结论(2)知K维数据项集本身也不是高频繁数据项集。

2、模型的建立

(1)求关联规则集

第一步:从事务数据库D中找出所有支持度不小于指定的最小支持度阈值的频繁项集。

第二步:使用频繁项集产生所期望的关联规则,产生关联规则的基本原则是其置信度不小于指定的最小置信度阈值。第一步的任务是迅速高效地找出D中全部的频繁项集,这是关联规则挖掘的核心问题,是衡量关联规则挖掘算法的标准。对此,我们运用Matlab进行编程得出计算结果。第二步的求解比较容易和直接,先分别计算出不小于最小支持度的商品组合对应的置信度,降序后进行筛选。最后只留下支持度和置信度都较高的商品组合。

此建模过程可以表示为:

图1 关联规则挖掘模型示意图

(2)关联关系的密切程度表示

对商品组合数据的挖掘结果进行整理,得到关联规则表格,再利用表格中各商品组合对应的支持度和平均置信度表示组合的关联关系。例如:在组合i中,有两个编号分别为Ai、Bi的两个商品,其支持度为si,平均置信度为

1ci?[c(Ai??Bi)?c(Bi??Ai)],则该组合的关联关系可以表示为(s,c).

ii2为定量表达超市中多种商品间的关联关系的密切程度,我们引入一个关联密

切系数[5]来衡量,我们认为当支持度和置信度分别大于距离最低支持度和最低置信度时,其距离越远,关联程度越高,于是得到其公式为:

2??(si?smin)?(ci?cmin)2

其中,si为组合i的支持度,ci为该组合的平均置信度,smin和cmin分别为该类组合的最小支持度和最小置信度。

用图表示为:

图2 关联密切系数示意图

将12组商品组合的支持度和平均置信度带入关联密切系数的公式中进行计算,将所得数据列表降序排列,关联系数越大的商品组合的关联关系的密切程度越大。

3、模型的求解

对于问题1:

(1)将最小支持度设定为5%,从4717个原始数据项中得到个数为17的频繁项集。按支持度降序排列后,依次编号,整理得到表1:

本文来源:https://www.bwwdw.com/article/d37d.html

Top