0
点赞
收藏
分享

微信扫一扫

R实战—基于Apriori算法用户餐厅点餐菜品关联分析

R实战—基于Apriori算法用户餐厅点餐菜品关联分析_频繁项集

近几日

支付宝集“”字的活动

正在如火如荼的进行中

话说你集够了吗?

来来来

R实战—基于Apriori算法用户餐厅点餐菜品关联分析_频繁项集_03

R实战—基于Apriori算法用户餐厅点餐菜品关联分析_频繁项集_03

R实战—基于Apriori算法用户餐厅点餐菜品关联分析_频繁项集_03

送“”给你




      本文选取客户餐厅点餐菜品数据,研究菜品之间的关联度,通过对数据进行预处理,将事务数据整理成关联规则模型所需的数据结构,建立Apriori算法模型,借助R软件编程,得出客户同时点菜心香菇汤,红枣糕的概率为20%,当客户点菜心香菇汤后,再点红枣糕的概率是100%。以此做智能推荐,积极引导客户消费,提高顾客的就餐体验和餐饮企业的业绩水平。且Apriori算法模型可以在其他领域做很好的推广,应用效果显著。



一、引言


       客户在餐厅点餐时,面对菜单中大量的菜品信息,往往无法迅速找到满意的菜品,既增加了点菜的时间,也降低了客户的就餐体验。实际上,菜品的合理搭配是有规律可循的:顾客的饮食习惯、菜品的荤素和口味,有些菜品之间是相互关联的,而有些菜品之间是对立或竞争关系,这些规律都隐藏在大量的历史菜单数据中,如果能够通过数据挖掘发现客户点餐的规则,就可以快速识别客户的口味,当他下了某个菜品的订单时推荐相关联的菜品,引导客户消费,提高顾客的就餐体验和餐饮企业的业绩水平。



二、关联规则算法介绍


       关联规则分析是数据挖掘中最活跃的研究方法之一,目的是在一个数据集中找出各项之间的关联关系,而这种关系并没有在数据中直接表示出来。

       Apriori算法是最经典的挖掘频繁项集的算法,其核心思想是通过连接产生候选项及其支持度然后通过剪枝生成频繁项集。Apriori算法是最经典的挖掘频繁项集的算法,第一次实现了在大数据集上可行的关联规则提取,其核心思想是通过连接产生候选项与其支持度然后通过剪枝生成频繁项集。

       本次研究的流程图如图1所示:

R实战—基于Apriori算法用户餐厅点餐菜品关联分析_频繁项集_07

图1 Apriori算法模型模型流程图

       由图可知,模型主要由输入、算法处理、输出部分组成。输入部分包括:建模样本数据的输入;建模参数的输入。算法处理部分是Apriori关联规则算法。输出部分为关联规则的结果。

3.1 Apriori算法理论

      在了解了关联规则的三个度的基本定义之后,下一步则需要阐述清楚Apriori算法的基本定义。

       在讲Apripri算法之前,我们首先要清楚两个概念:

      1)设定最小支持度的阈值,如果一个项集的支持度大于等于最小支持度,则其为频繁项集,如果一个项集的支持度小于最小支持度,则其为非频繁项集。

       2)对于一个项集,如果它是频繁集,则它的子集均是频繁集;如果它是非频繁集,则它的父集都是非频繁集。这是因为一个项集的所有子集的支持度都大于等于它本身,一个项集的所有父亲的支持度都小于等于它本身。

       Apriori算法主要分为三步:

      1)设定最小支持度的阈值。从单项集开始,先计算所有单项集的支持度,过滤掉非频繁单项集及其父集;将剩余的单项集组合为二项集,先计算所有二项集的支持度,过滤掉非频繁二项集及其父集;不断地迭代上述过程,最后筛选出所有的频繁项集。

       2)设定最小置信度的阈值。对频繁项集进行计算,求出满足置信度条件的强关联规则。

       3)设定最小提升度的阈值。对第2)步进行计算,求出满足提升度条件的强关联规则,作为最后的关联规则的模型结果。相比于最原始的计算,使用Apripor算法计算频繁项集可以大大地减少运算量,提升计算效率。

3.2 关联规则和频繁项集

       如果某关联规则满足支持度大于最小支持度,且置信度大于最小置信度,称这条关联规则为强关联规则,否则称之为弱关联规则。同时满足最小支持度阀值和最小置信度阀值的规则称为强规则,如图2所示。

R实战—基于Apriori算法用户餐厅点餐菜品关联分析_关联规则_08

图2 频繁项集产生步骤图



三、数据预处理


      下面将结合餐饮行业的实例来讲解Apriori关联规则算法挖掘的实现过程。数据库中部分点餐数据如表1所示。

R实战—基于Apriori算法用户餐厅点餐菜品关联分析_关联规则_09

       首先将表事务数据整理成关联规则模型所需的数据结构,从中抽取10个点餐订单作为事务数据集,设支持度为0.2(支持度计数为2),为方便起见将菜品{18491,8842,8693,7794,8705}分别简记为a,b,c,d,e如表2所示。

R实战—基于Apriori算法用户餐厅点餐菜品关联分析_频繁项集_10



四、Apriori算法应用


       将该餐厅的点餐数据集编写入文本文件,此时是将表事务数据整理成关联规则模型所需的数据结构,以此来实现Apriori算法模型的构建,编入的数据类型如下图3所示:

R实战—基于Apriori算法用户餐厅点餐菜品关联分析_数据_11

图3 点餐数据类型

       运用R软件编程得出结果如表3所示:  

R实战—基于Apriori算法用户餐厅点餐菜品关联分析_关联规则_12

       由输出结果进行解释:客户同时点菜心香菇汤,红枣糕的概率为20%,当客户点菜心香菇汤后,再点红枣糕的概率是100%。针对不同的菜品需求情况,可以对顾客进行智能推荐,增加销量同时满足客户需求。



五、附录


    本文所使用的代码如下:

# 加载包
install.packages("arules")
library ( arules )


# 读入数据
tr <- read.transactions("C:\\Users\\27342\\Desktop\\menu_orders.txt", format = "basket", sep=",")
summary(tr)
inspect(tr)


# 支持度0.2,置信度0.5
rules0 <- apriori(tr, parameter = list(support = 0.2, confidence = 0.5))
rules0
inspect(rules0)




以上就是今天总结的R实战内容

学习数据分析

就是要多看,多练,多总结

还要结合实际的生活 

“纸上得来终觉浅,绝知此事要躬行”




R实战—基于Apriori算法用户餐厅点餐菜品关联分析_关联规则_14

举报

相关推荐

0 条评论