R语言 运行apriori算法,用gephi画品牌社区图

有购物篮数据,每行表示一个篮子,篮子里用逗号分隔出一个个品牌。 现在采用频繁模式挖掘出品牌关联,主要是频繁二项集。将关联看成一条边,出现次数看作边的权重,这样就得到了一张图,对图进行社区发现,可以看到品牌间是否有关联。

原始数据下载:http://pan.baidu.com/s/1jGHr8iy

R 代码如下:

library(arules)
x <- readLines("D:\\baiduyundownload\\user2items.csv")
data <- list()
for(n in 1:length(x)){data[n]<- strsplit(x[n],",")}
trans <- as(data,"transactions")
frequentsets <- eclat(trans,parameter=list(support=0.004,maxlen=10))
inspect(frequentsets[1:10])#查看频繁项集
#这里如果支持度选的比较大,也许没有10这么多,这里就不能写[1:10].
inspect(sort(frequentsets,by="support")[1:10])#排序后查看
#多选几次支持度阈值,更好的发现频繁模式。

#求关联规则
rules <- apriori(trans,parameter=list(support=0.004,confidence=0.001))
summary(rules)
inspect(rules)
#可以使用sink(file="")将inspect结果导入到文件

里用R挖掘出的频繁二项集(好吧,其实我自己写代码挖的,用R太蛋疼了),导出为文件 格式如下:

source    target    weight
10999    11679    2
10999    16110    2
10999    16540    2
xxx    xxx    xxx

打开gephi,新建一个项目,切换到数据窗口,选择输入表格,选中文件,选择分隔符,导入的是边。导入完成后,运行社区发现算法,看到模块度是0.75,打开分割窗口,对运行后的结果按模块着色得到下面的社区关系图,可以看出品牌之间确实是有关联的。R语言 运行apriori算法,用gephi画品牌社区图_第1张图片

你可能感兴趣的:(R语言 运行apriori算法,用gephi画品牌社区图)