0
点赞
收藏
分享

微信扫一扫

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

 

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

  1.   
  2.  > nflo=network(flo,directed=FALSE)
  3.  > plot(nflo, displaylabels = TRUE,
  4.  + boxed.labels =
  5.  + FALSE)

拓端tecdat|R语言复杂网络分析:聚类(社区检测)和可视化_数据

 

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

  1.   
  2.  graph_from_adjacency_matrix(flo,
  3.  + mode = "undirected")

 

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

  1.  all_shortest_paths(iflo,
  2.  )
  3.   
  4.   
  5.  > plot(iflo)

拓端tecdat|R语言复杂网络分析:聚类(社区检测)和可视化_r语言_02

 

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

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

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

 

也可以使用​​D3js可视化​​

  1.  > library( networkD3 )
  2.  > simpleNetwork (df)

 

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

  1.   
  2.  > flo2["f","v"]=1
  3.  > flo2["v","f"]=1

拓端tecdat|R语言复杂网络分析:聚类(社区检测)和可视化_数据_04

 

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

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

 

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

  1.  betweenness(ilo)
  2.   
  3.  > cor(base)
  4.  betw close deg eig
  5.  betw 1.0000000 0.5763487 0.8333763 0.6737162
  6.  close 0.5763487 1.0000000 0.7572778 0.7989789
  7.  deg 0.8333763 0.7572778 1.0000000 0.9404647
  8.  eig 0.6737162 0.7989789 0.9404647 1.0000000

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

  1.  hclust(dist( ase ,
  2.  + method="ward")

拓端tecdat|R语言复杂网络分析:聚类(社区检测)和可视化_数据_06

 

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

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

拓端tecdat|R语言复杂网络分析:聚类(社区检测)和可视化_数据_07

 

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

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

> kc <- fastgreedy.community ( iflo )

在这里,我们有3类

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

 

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

 

拓端tecdat|R语言复杂网络分析:聚类(社区检测)和可视化_r语言_10


举报

相关推荐

0 条评论