前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【视频】复杂网络分析CNA简介与R语言对婚礼数据聚类社区检测和可视化|数据分享

【视频】复杂网络分析CNA简介与R语言对婚礼数据聚类社区检测和可视化|数据分享

作者头像
拓端
发布2023-08-31 15:42:40
1320
发布2023-08-31 15:42:40
举报
文章被收录于专栏:拓端tecdat拓端tecdat

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

复杂网络分析研究如何识别、描述、可视化和分析复杂网络点击文末“阅读原文”获取完整代码数据

为了用R来处理网络数据,我们使用婚礼数据集查看文末了解数据获取方式

CNA 研究和应用爆炸式增长的突出原因是两个因素 - 一个是廉价而强大的计算机的可用性,使在数学、物理和社会科学方面接受过高级培训的研究人员和科学家能够进行一流的研究;另一个因素是是人类社会、行为、生物、金融和技术方面不断增加的复杂性。

相关视频

网络是离散数据的组织和表示的关系形式。关于网络的两个最重要的概念是实体和它们之间的关系。实体称为节点,关系称为边。网络节点和边是高级抽象,对于大多数网络来说,它们的真实性质并不重要。当必要时,我们通过添加属性来表示节点和边。关系或边通常涉及两个离散的实体或节点,尽管实体可以与自身存在关系,这种关系称为自反关系。

在讨论复杂网络的真正样子之前,让我们先谈谈有时称为经典网络的基本简单网络。经典网络的一个例子是线性网络——我们生命的时间线,每个生命事件(例如“出生”、“第一次走路”、“学校毕业”、“婚姻”和最终的“死亡”)都是一个实体至少一个属性是时间。“发生在之后”是这种情况下的关系,因为一条边将两个事件连接在一起,一个事件紧接着另一个事件发生。这个网络之所以被认为是简单的,是因为它具有规则的结构,而不是因为它很小。

线性时间线


点击标题查阅往期内容

01

02

03

04

复杂的网络具有非平凡的结构,它既不是网格也不是树。

由于没有全局控制的分散过程,这些复杂的网络发生在自然界和人造世界中。此类网络的一些代表包括:

  1. 社交网络:家人和朋友、Twitter 和 instagram 追随者等。
  2. 文化网络:宗教网络、语言家族等。
  3. 技术网络:交通和通讯系统等……
  4. 金融网络:华尔街市场、国际贸易等。
  5. 生物网络:基因/蛋白质相互作用、疾病流行等。

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

为了用R来处理网络数据,我们使用婚礼数据集查看文末了解数据获取方式

> 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 eig

betw 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
复制
> kc <- fastgreedy.community ( iflo )

在这里,我们有3类

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

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

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

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

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