R语言 运行apriori算法,用gephi画品牌社区图
R语言 运行apriori算法,用gephi画品牌社区图
一只小桃子 发表于4年前
R语言 运行apriori算法,用gephi画品牌社区图
  • 发表于 4年前
  • 阅读 4896
  • 收藏 3
  • 点赞 1
  • 评论 8
摘要: R语言 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,打开分割窗口,对运行后的结果按模块着色得到下面的社区关系图,可以看出品牌之间确实是有关联的。

共有 人打赏支持
一只小桃子
粉丝 193
博文 83
码字总数 109656
评论 (8)
猪猪daxia
楼主用gephi做过关联规则树吗
一只小桃子

引用来自“猪猪daxia”的评论

楼主用gephi做过关联规则树吗
关联规则树?没有,不知道是啥,这就是随便捣腾捣腾
Chocolate11_1
麻烦楼主帮我做个apriori算法的注释可以么83跪求!
一只小桃子

引用来自“Chocolate11_1”的评论

麻烦楼主帮我做个apriori算法的注释可以么83跪求!
神马东西,我博客里有java源码
Chocolate11_1

引用来自“Chocolate11_1”的评论

麻烦楼主帮我做个apriori算法的注释可以么83跪求!

引用来自“孤独小桃子”的评论

神马东西,我博客里有java源码
不是 就是给apriori做个注释,每行代码大概是什么意思的那种,比如“mydata<-read.table("C:/regdata3.csv",header=TRUE,sep=",")#导入数据文件”,或者“sum(is.na(mydata))#获取缺失值信息”,就是#号后面的文字,可以不用详细到每一句
一只小桃子

引用来自“Chocolate11_1”的评论

麻烦楼主帮我做个apriori算法的注释可以么83跪求!

引用来自“孤独小桃子”的评论

神马东西,我博客里有java源码

引用来自“Chocolate11_1”的评论

不是 就是给apriori做个注释,每行代码大概是什么意思的那种,比如“mydata<-read.table("C:/regdata3.csv",header=TRUE,sep=",")#导入数据文件”,或者“sum(is.na(mydata))#获取缺失值信息”,就是#号后面的文字,可以不用详细到每一句
发给我看看
Chocolate11_1

引用来自“Chocolate11_1”的评论

麻烦楼主帮我做个apriori算法的注释可以么83跪求!

引用来自“孤独小桃子”的评论

神马东西,我博客里有java源码

引用来自“Chocolate11_1”的评论

不是 就是给apriori做个注释,每行代码大概是什么意思的那种,比如“mydata<-read.table("C:/regdata3.csv",header=TRUE,sep=",")#导入数据文件”,或者“sum(is.na(mydata))#获取缺失值信息”,就是#号后面的文字,可以不用详细到每一句

引用来自“孤独小桃子”的评论

发给我看看
就是R里arules包带的apriori代码:> apriori function (data, parameter = NULL, appearance = NULL, control = NULL) { data <- as(data, "transactions") items <- data@data if (is(appearance, "list")) appearance <- as(c(appearance, list(labels = itemLabels(data))), "APappearance") appearance <- as(appearance, "APappearance") control <- as(control, "APcontrol") parameter <- as(parameter, "APparameter") if (control@verbose) { cat("\nParameter specification:\n") print(parameter) cat("\nAlgorithmic control:\n") print(control) cat("\n") } abs_supp <- as.integer(parameter@support * length(data)) if (abs_supp < 2) warning(sprintf("You chose a very low absolute support count of %d. You might run out of memory! Increase minimum support.\n", abs_supp), immediate. = TRUE) result <- .Call("rapriori", items@p, items@i, items@Dim, parameter, control, appearance, data@itemInfo, PACKAGE = "arules") call <- match.call() result@info <- list(data = call$data, ntransactions = length(data), support = parameter@support, confidence = parameter@confidence) if (is(result, "rules")) { validObject(result@lhs@data) validObject(result@rhs@data) } else { validObject(result@items@data) } result } 就是这个
Chocolate11_1

引用来自“Chocolate11_1”的评论

麻烦楼主帮我做个apriori算法的注释可以么83跪求!

引用来自“孤独小桃子”的评论

神马东西,我博客里有java源码

引用来自“Chocolate11_1”的评论

不是 就是给apriori做个注释,每行代码大概是什么意思的那种,比如“mydata<-read.table("C:/regdata3.csv",header=TRUE,sep=",")#导入数据文件”,或者“sum(is.na(mydata))#获取缺失值信息”,就是#号后面的文字,可以不用详细到每一句

引用来自“孤独小桃子”的评论

发给我看看
http://www.oschina.net/question/2294772_217926 要不你还是在这儿看吧,我刚提问了,这样比较清晰,在回复里有点儿乱
×
一只小桃子
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: