【R语言 数据挖掘】R语言如何做关联规则?

一、前言
提到数据挖掘,我们第一反应就是之前听到的啤酒和尿不湿的故事,该故事就是典型的数据挖掘中的关联规则。购物篮分析区别于传统的线性回归的主要区别为,关联分析针对离散数据;下面我们利用R语言的arules包及Apriori算法对商品交易数据进行关联规则挖掘,

二、常见关联规则:

  1. 关联规则:牛奶=>鸡蛋【支持度=2%,置信度=60%】
  2. 支持度:分析中的全部事务的2%同时购买了牛奶和鸡蛋,需设定域值,来限定规则的产生;
  3. 置信度:购买了牛奶的筒子有60%也购买了鸡蛋,需设定域值,来限定规则的产生;
  4. 最小支持度阈值和最小置信度阈值:由挖掘者或领域专家设定。

三、与关联分析相关的专业术语包括:

  1. 项集:项(商品)的集合
  2. k-项集:k个项组成的项集
  3. 频繁项集:满足最小支持度的项集,频繁k-项集一般记为Lk
  4. 强关联规则:满足最小支持度阈值和最小置信度阈值的规则

四、算法步骤(两步法)

  1. 第一步先找出所有的频繁项集;
  2. 第二步再由频繁项集产生强关联规则

五、R语言实现过程

######以arules包中的数据集Groceries为例。

#####1、加载arules包,获取数据集。

library(arules)

data(Groceries)

#####2、eclat算法求频繁项集。

freq_sets <- eclat(Groceries,parameter=list(support=0.05,maxlen=5))#求频集

inspect(freq_sets[1:10])#查看频繁项集的前十项

inspect(sort(freq_sets,by="support")[1:10]) #根据支持度对求得的频繁项集排序并查看,结果如图。

这里写图片描述

结果解读:第一个项集表示,如果有100个人去买东西,那么可能有25个人会买“whole milk”,可能有19个人会买“other vegetables”,等等。

#####3、apriori算法求关联规则。

rules=apriori(Groceries,parameter=list(support=0.01,confidence=0.3))

inspect(sort(rules,by="support")[1:10])#查看前十条关联规则

这里写图片描述

结果解读:第一条规则,support=0.0748表示“other vegetables”与“whole milk”同时购买的概率为0.0748;confidence=0.3868表示购买了“other vegetables”的同时,还购买“whole milk”的概率为0.3868,lift=1.51>1.00表明购买“other vegetables”对于提升购买“whole milk”的作用度为1.51.

注:lift是判断关联规则是否可靠的一个指标,lift=1说明两个条件没有任何关联;lift<1说明两个条件是相斥的;一般在数据挖掘中选择当提升度大于3时,才承认挖掘出的关联规则是有价值的。

#####4、根据需求条件求关联规则子集。

x=subset(rules,subset=rhs%in%"whole milk"&lift>=1.2)#求rhs为“whole milk”且作用度大于1.2的规则。

inspect(sort(x,by="support")[1:8])

这里写图片描述

 #####5、关联规则可视化

Library(arulesViz,quietly=TRUE)

plot(rules,method="Graph")

这里写图片描述

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页