复杂网络(Complex Network)社团数据可视化分析(gephi)实验

server/2024/10/18 6:08:59/

Experiment Report of complex network course

复杂网络实验报告

目录

Experiment Report of complex network course

复杂网络实验报告

实验目标(The objective of the experiment):

实验流程(The flow of the experiment):

实验总结(Summary of the experiment):

  • 实验目标(The objective of the experiment):

使用在NASP网站中获取的网络数据,对数据进行可视化处理,利用gephi软件进行可视化操作,最终得到一份数据转化的可视化图片。再安装python中的数据包networkx,利用networkx验证节点数和边数是否正确。

  • 实验流程(The flow of the experiment):

1、登录https://snap.stanford.edu/data/soc-sign-bitcoin-alpha.html网站进行下载我们队伍所选数据集——Bitcoin Alpha trust weighted signed network,下载好csv文件,我在第一次用gephi导入的时候,发现文件数据并没有列名,无法进行边表格导入。找到解决方法后,我尝试自助修改csv文件,在每一列上方加上一个列名,分别为:来源、目标、评级、时间;

(SOURCE,TARGET,RATING,TIME)

  1. 文件修改完成后,开始导入到gephi进行处理:

导入成功后,展示为该界面:

这里由于节点和边的数量过于庞大,所以未经处理的可视化的效果密密麻麻一团,需要进一步的处理;

  1. 利用度排序的方法,将节点的颜色进行划分;接着运行得出平均路径长度:

这里在统计工具中,还可以依次运行平均聚类系数、特征向量中心度进行进一步的数据分析;

  1. 在外观中,设置节点的排名:根据中间集中性设置,尺寸设置为17—170,区分节点的大小;

使用统计模块中的社区检测区域的模块化功能:

Modularity Report

Parameters:

Randomize: On

Use edge weights: On

Resolution: 1.0

Results:

Modularity: 0.456

Modularity with resolution: 0.456

Number of Communities: 19

  1. 在分割中,利用模块化的渲染方式进行渲染,得出如下可视化图片:

  1. 利用统计区的平均加权度进行测量,得出结果是

Average Weighted Degree: 6.393

可以看出大多数人在比特币交易平台的信用都是合格的;

  1. 过滤操作:范围设置为负数,其余的过滤后:

  1. 利用hu yifan视图进行布局操作,部分数据分布在边缘形成一个圆;(图中中心部分的数据还是占大多数的,只是聚集在了一起)

  1. (最后验证成功,我们选择的网络是无标度网络)
  2. 进行python验证:

代码:

import pandas as pdimport networkx as nximport matplotlib.pyplot as pltdf = pd.read_csv(r"D:\HuaweiMoveData\Users\shen'zhou\Desktop\soc-sign-bitcoinalpha.csv")G = nx.DiGraph()for index, row in df.iterrows():source = row['SOURCE']target = row['TARGET']rating = row['RATING']time = row['TIME']G.add_node(source)G.add_node(target)G.add_edge(source, target, rating=rating, time=time)print(nx.number_of_nodes(G))print(nx.number_of_edges(G))target_data = df['TARGET']plt.hist(target_data, bins=10)plt.xlabel('Value')plt.ylabel('Frequency')plt.title('Distribution of TARGET')plt.show()

运行后可以看出度分布直方图:

再求图的直径:

import networkx as nx
import pandas as pd
# 读取 CSV 文件并创建图
df = pd.read_csv(r"D:\HuaweiMoveData\Users\shen'zhou\Desktop\soc-sign-bitcoinalpha.csv")
G = nx.from_pandas_edgelist(df, 'SOURCE', 'TARGET', edge_attr="RATING", create_using=nx.Graph())
# 获取连通组件
connected_components = nx.connected_components(G)
diameters = []# 计算每个连通组件的直径
for component in connected_components:subgraph = G.subgraph(component)diameter = nx.algorithms.diameter(subgraph)diameters.append(diameter)
print("图的直径:", max(diameters))

运行代码后计算得出图的直径为10;

数据均符合。

至此,实验与验证均结束。


  • 实验总结(Summary of the experiment):

  1. 数据集以表格或者csv等形式呈现的时候,数目一旦很庞大,很难让数据分析者很清楚地看清楚数据的关系以及特征,因此,数据可视化的重要性不言而喻;
  2. Gephi使用的时候,刚导入的数据,因为没有做任何形式的处理,不仅密集,而且很难分析出有用的信息,所以需要去学习gephi的使用方法,来一步一步地处理可视化模型;
  3. 胡一凡(Yifan Hu)视图模型相较于Force Atlas等视图布局,它能让我们处理的视图的复杂度大大降低,在试了很多数据集后,我发现,基本上在数据很大的时候,用Yifan Hu视图都是不错的选择。


http://www.ppmy.cn/server/123234.html

相关文章

【Python基础(二)】面向对象

学习分享 1、初始对象1.1、类的定义和使用1.2、类的私有成员和方法1.3、类的构造方法 2、继承的实现和属性的使用 1、初始对象 1.1、类的定义和使用 1.2、类的私有成员和方法 class Clock:id Noneprice Nonedef ring(self):import winsoundwinsound.Beep(2000,3000)clock Clo…

基于安卓开发大型体育场管理系统的设计与实现(源码+定制+讲解)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

C#基础:掌握控制流语句,构建灵活的程序逻辑

在C#中,控制流语句是用来控制程序执行流程的重要部分。它们允许你根据条件执行不同的代码块,或者重复执行某些代码块直到满足特定条件。下面是一些基本的C#控制流语句: 1. 条件语句 if 语句 if 语句用于在条件为真时执行一段代码。 int n…

Spring Boot 中实现动态列导入讲解和案例示范

在业务系统中,数据导入是非常常见的需求,尤其是在大规模数据处理场景中。一个灵活且高效的数据导入功能可以显著提高业务处理效率。在本文中,我们将详细讲解如何在 Spring Boot 中实现动态列导入功能,以电商交易系统为案例&#x…

PHP安装swoole扩展无效,如何将文件上传至Docker容器

目录 过程 操作方式 过程 在没有使用过云服务器以前,Docker这个平台一直都很神秘。在我申请了华为云服务器,并使用WordPress镜像去搭建自己的网站以后,我不得不去把Docker平台弄清楚,原因是我使用的一个主题需要安装swoole扩展,才能够正常启用。而要将swoole.so这个扩展…

Nest.js实现一个简单的聊天室

本文将介绍如何使用 Nest.js 和 Uni-app 实现一个简单的实时聊天应用。后端使用 nestjs/websockets 和 socket.io,前端使用 uni-app 并集成 socket.io-client。这个项目允许多个用户同时加入聊天并实时交换消息。 效果图: 一、准备工作 安装 Node.js 和…

深入探索机器学习中的目标分类算法

在当今数据驱动的世界中,机器学习(Machine Learning, ML)正逐渐成为解决问题的重要工具。在众多机器学习任务中,目标分类(Classification)算法尤其受到关注。本文将深入探讨目标分类算法的基本概念、常见类…

深度学习(4):torch.nn.Module

文章目录 一、是什么二、nn.Module 的核心功能三、nn.Module 的基本用法1. 定义自定义模型2. 初始化模型3. 模型的使用 四、nn.Module 的关键特性1. 自动注册子模块和参数2. forward 方法3. 不需要定义反向传播 五、常用的内置模块六、示例:创建一个简单的神经网络1…