大型超市购物篮问题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

模式识别期中作业

--挖掘布尔关联规则频繁项集的算法——Apriori算法

一、问题重述

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

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

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

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

二、模型的假设

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

2、假设表格中的数据能真实地反映当地消费者的购物情况。

3、假设短时间内商品的销售情况维持稳定,不会出现大幅波动。

三、符号说明

符号解释说明

s i组合i的支持度

c(A=>B)规则A=>B的置信度

c(B=>A)规则B=>A的置信度

c i组合i的平均置信度

s min最小支持度

c min最小置信度

μ关联密切系数

H促销系数

四、问题分析

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

问题一,由于购物篮分析是关联规则挖掘的一个典型案例,因此我们采用一种最有影响的挖掘布尔关联规则[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是由支持度s(support)和置信度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中全部的频繁项集,这是关联规则挖掘的核心问题,是衡量关联规则挖掘算法的标

相关文档
最新文档