飞道的博客

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

436人阅读  评论(0)

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

 

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


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

 

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


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

 

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


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

 

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


  
  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. > E( ifl )$color=c( "grey", "black")[ 1+EU]
  7. > plot( iflo)

 

也可以使用D3js可视化


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

 

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


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

 

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

 

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


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

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


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

 

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


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

 

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

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

> kc <- fastgreedy.community ( iflo )

在这里,我们有3类

 

 


最受欢迎的见解

1.采用spss-modeler的web复杂网络对所有腧穴进行分析

2.用R语言和python进行社交网络中的社区检测

3.R语言文本挖掘NASA数据网络分析,tf-idf和主题建模

4.在R语言中使用航空公司复杂网络对疫情进行建模

5.python隶属关系图模型 基于模型的网络中密集重叠社区检测

6.使用Python和SAS Viya分析社交网络

7.关联网络分析:已迁离北京外来人口的数据画像

8.情感语义网络游记数据感知旅游目的地形象

9.用关联规则数据挖掘探索药物配伍中的规律


转载:https://blog.csdn.net/qq_19600291/article/details/105467589
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场