如何利用R软件做关联分析?
1、安装并加载程序包arules和rattle,可以使用代码,也可以直接在R软件菜单栏安装和加载。
install.packages("arules")
install.packages("rattle")
library(arules)
library(rattle)

2、这里以早餐食品销售数据为例,ID为客户编号,goods为客户种类。利用table函数可以看到每个顾客对应购买的食品,结果中1表示购买了该项产品,0表示没有购买。
代码如下:
##查看数据
Sales<-data.frame(ID=c(1,1,1,2,2,3,3,3,3,4,5,5,6,6,6,6,7,7,8,8,9,9,10),
goods=c("bread","milk","meat","egg","milk","fruit juice","bread",
"cola","sandwich","meat","milk","egg","fruit juice","egg","bread","sandwich",
"cola","sandwich","milk","meat","fruit juice","bread","egg"))
table(Sales)

3、关联规则需要的数据为transactions形式,可以看到返回的结果是10行7列的数据。
##转换数据集
Sales_trans<- as(split(Sales$goods,Sales$ID),
"transactions")
Sales_trans

4、建立模型,要用到函数apriori(data, parameter = NULL, appearance = NULL, control = NULL),data为transactions形式的数据集, parameter为参数列表,包含最低支持度support(0.1)、最低置信度confidence(默认0.8),appearance可以限制项集的出现,一个项即出现某一种商品,control可以控制算法的性能,比如对项集排序等。
##建立关联规则
Sales_apriori_model <- apriori(Sales_trans, parameter=list(support=0.2,
confidence=0.1))

5、查看模型结果。
summary(Sales_apriori_model)

6、查看模型结果,并取置信度(Confidence)排在前五的结果。lift表示提升度,count表示数量。
inspect(sort(Sales_apriori_model, by="confidence")[1:5])
