您的位置:首页 > 其它

R语言数据挖掘值关联规则挖掘

2014-07-06 15:18 225 查看

关联规则挖掘步骤及代码如下:

【1】设定工作目录

setwd("E:/project/Rexample/EnterpResponser_apriori")

【2】加载两个包

library("Matrix")

library("arules")

【3】读取数据:帮助文档(http://127.0.0.1:16781/library/arules/html/read.transactions.html )
tr<-read.transactions("my_transactions.txt",format="single",sep="\t",cols<-c(1,2),rm.duplicates=TRUE)

其中format表示输入数据的格式,transactions可以接受两种数据格式,即single型和basket型

single型表现为两列,第一列为交易号,第二列为该交易中包含的一项,例如:

1 可乐

1 雪碧

2 芬达

1 美年达

2 王老吉

basket型一行表示一条交易记录,交易项之间用分隔符分开,分隔符在sep参数中设定:

可乐 雪碧 美年达

芬达 王老吉

当single型数据中包含重复的行时,该方法会报错。可使用参数
rm.duplicates=TRUE   去除重复的行

也可以在导入交易数据前先对数据集进行处理,出去重复的行:(http://127.0.0.1:16781/library/base/html/duplicated.html )

origindata<-read.table("origindata.txt",...)

dup<-duplicated(origindata)   返回一个布尔向量和前面重复了则为TRUE[FLASE,FALSE,FALSE,TRUE,FALSE,TRUE......]

rmdupdata<-origindata[!dup,]   返回一个dataframe只保留了不重复的行

write.table(file="rmdupdata.txt",sep="\t",quote=FALSE,row.names=FALSE)   将去重的datafrme写入文档

【4】查看transactions

 >tr                        输出tr摘要
 >inspect(tr[1:n])   输出tr前n行      

【5】关联分析  参考http://www.douban.com/note/276365088/
rules = apriori(tr,parameter = list(support = 0.01,confidence = 0.2))

inspect(sort(rules,by="support")[1:10])          #按支持度查看前10条规则

inspect(sort(rules,by="confidence")[1:10])     #按置信度查看前10条规则

itemFrequencyPlot(tr,support = 0.05,cex.names =0.8)                    #数据画频繁项的图

plot(rules, shading="order", control=list(main = "Two-key plot"))                    #见chart.1

plot(rules, method="grouped")                         #见chart.2

plot(rules, method="graph")                              #见chart.3
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息