前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言复杂网络分析:聚类(社区检测)和可视化

R语言复杂网络分析:聚类(社区检测)和可视化

作者头像
拓端
发布2020-12-30 16:44:41
1.3K0
发布2020-12-30 16:44:41
举报
文章被收录于专栏:拓端tecdat

原文链接:http://tecdat.cn/?p=18770

为了用R来处理网络数据,我们使用婚礼数据集。

代码语言:javascript
复制


> nflo=network(flo,directed=FALSE)> plot(nflo, displaylabels = TRUE,+ boxed.labels =+ FALSE)

下一步是igraph。由于我们有邻接矩阵,因此可以使用它

代码语言:javascript
复制


graph_from_adjacency_matrix(flo,+ mode = "undirected")

我们可以在两个特定节点之间获得最短路径。我们给节点赋予适当的颜色

代码语言:javascript
复制

all_shortest_paths(iflo,)

> plot(iflo)

我们还可以可视化边,需要从输出中提取边缘

代码语言:javascript
复制

> lins=c(paste(as.character(L)[1:4],+ "--"+ as.character(L)[2:5]  sep="" ,+ paste(as.character(L) 2:5],+ "--",
> E(ifl )$color=c("grey","black")[1+EU]> plot(iflo)

也可以使用D3js可视化

代码语言:javascript
复制

> library( networkD3 )> simpleNetwork (df)

下一个问题是向网络添加一个顶点。最简单的方法是通过邻接矩阵实现概率

代码语言:javascript
复制

> flo2["f","v"]=1> flo2["v","f"]=1

然后,我们进行集中度测量。

目的是了解它们之间的关系。

代码语言:javascript
复制

betweenness(ilo)
> cor(base)betw close deg eigbetw 1.0000000 0.5763487 0.8333763 0.6737162close 0.5763487 1.0000000 0.7572778 0.7989789deg 0.8333763 0.7572778 1.0000000 0.9404647eig 0.6737162 0.7989789 0.9404647 1.0000000

可以使用层次聚类图来可视化集中度度量

代码语言:javascript
复制


hclust(dist( ase  ,+ method="ward")

查看集中度度量的值,查看排名

代码语言:javascript
复制


> for(i in 1:4) rbase[,i]=rank(base[,i])

在此,特征向量测度非常接近顶点的度数。

最后,寻找聚类(以防这些家庭之间爆发战争)

代码语言:javascript
复制
代码语言:javascript
复制
> kc <- fastgreedy.community ( iflo )
代码语言:javascript
复制
在这里,我们有3类

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 拓端数据部落 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 原文链接:http://tecdat.cn/?p=18770
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档