1.海豚社会网络数据摘要:
Lusseau等在新西兰对62只宽吻海豚的生活习性进行了长时间的观察,他们研究发现这些海豚的交往呈现出特定的模式,并构造了包含有62个结点的社会网络。如果某两只海豚经常一起频繁活动,那么网络中相应的两个结点之间就会有一条边存在。Dolphin 网络也是复杂网络社区发现与划分的经典用例,其拓扑结构如图所示,该网络记录了 62 只海豚之间的联系,共分为 2 个家族(社区)。
2.数据集内容介绍
数据格式:csv
数据规模:62个点,159条边
数据用途:用于测试社团划分算法准确性
3.使用python进行数据集的构图和绘制
# encoding:utf-8
import matplotlib.pyplot as plt
import networkx as nx
import pandas as pd
# 读取数据源
columns = ['Source', 'Target']
data = pd.read_csv('Dolphin.csv', names=columns, header=None)
# 绘制空图
graph = nx.Graph()
# 获取数据源长度,即边的数量
data_len = len(data)
# 往图中添加边
for i in range(data_len):
graph.add_edge(data.iloc[i]['Source'], data.iloc[i]['Target'])
# 获取图中每个节点的度
print(graph.degree())
# 绘制图
nx.draw(graph, with_labels=True)
# 保存图
plt.savefig('./ren/graph/Dolphin.png')
# 展示图
plt.show()
4.小结
通过上述的操作,我们就可以实现对海豚社会网络数据集的简单探索,初步从图中获取一些简要信息。比如,从图中可以看到62个节点可以大致分为两个社区(家族);最密集的节点有哪些等等。对于接下来的社区划分或者采用k-means等聚类方法处理数据大有裨益。