复杂网络简介
现实世界中,网络世界大量存在,铁路线路网络,航空网络,人际关系网络。复杂网络是大量真实复杂系统的拓扑关系。借助复杂网络分析,我们期望可以化繁为简,找到隐藏的拓扑关系新结构,找到节点与节点之间的模式,同时实现数据可视化展示。
复杂网络系列
我们的复杂网络个人笔记将包含以下几个部分:
• 复杂网络基础知识及网络可视化
• 复杂网络主要几种拓扑关系及应用
• 复杂网络社团挖掘
复杂网络中的基本知识点
• 节点(vertex) : 一个一个散落的点,如每个人可以是一个点,每个url是一个点。
• 边 (edge): 连接点与点直接的线;边是节点与节点之间的关系表示。
• 度(degree):某个节点的度是指与该连接相连接的其他节点的个数;
• 平均度:所有节点的度之和除以节点个数
• 节点的聚类系数:某个节点的邻集节点个数,这些节点之间的边数与这些节点之间可能存在的最大边上之比。
• 最短路径:节点之间边数最少的路径
• 平均路径:所有节点对之间的距离的平均值
• 点介数:通过该节点的最短路径的条数
• 边介数:通过该边的最短路径的条数
• 核数:反复去掉一个网络图中度数小于等于K的节点后,剩下的子图。如果一个节点存在K-核,而在K+1 -核中被去掉,则该节点的核数为K
基本的复杂网络结构
• 规则网络
• ER随机图
• 小世界网络
• BA无标度网络
复杂网络可视化
data=read.csv("test.csv",header =TRUE)
head(data)
from | to | freq |
---|---|---|
收藏夹书签 | 进入 | 1071 |
微博微信等社交客户端 | 进入 | 759 |
第三方广告 | 进入 | 418 |
APP | 进入 | 267 |
搜索引擎 | 进入 | 252 |
进入 | 付费视频 | 547 |
• 基础图
library(igraph)
data_stru<-graph.data.frame(data)
plot(data_stru)
• 数据为随机生成的。
复杂网络可视化
• 根据数值改变边的大小,改变颜色,添加值
library(igraph)
data_stru<-graph.data.frame(data)
plot(data_stru,edge.width=data$freq/100,edge.color=rainbow(40),edge.arrow.size=2,edge.label=data$freq)
library(igraph)
data_stru<-graph.data.frame(data)
plot(data_stru,edge.width=data$freq/100,edge.color=rainbow(40),edge.arrow.size=2,edge.label=data$freq,vertex.size=degree(data_stru))
library(igraph)
data_stru<-graph.data.frame(data)
plot(data_stru,edge.width=data$freq/100,edge.color=rainbow(40),edge.arrow.size=2,edge.label=data$freq,vertex.size=degree(data_stru),vertex.color=degree(data_stru))
library(igraph)
data_stru<-graph.data.frame(data)
data_degree<-graph.neighborhood(data_stru,1)
plot(data_degree[[6]],edge.width=data$freq/100,edge.color=rainbow(40),edge.arrow.size=2,edge.label=data$freq,vertex.size=degree(data_stru),vertex.color=degree(data_stru))