当前位置: 首页 > article >正文

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

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 pd

import networkx as nx

import matplotlib.pyplot as plt



df = 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.kler.cn/a/323050.html

相关文章:

  • JMeter与大模型融合应用之JMeter日志分析服务化实战应用
  • MySQL初学之旅(3)约束
  • 【Linux:IO多路复用(select、poll函数)
  • 【React】状态管理之Zustand
  • 快速上手:Docker 安装详细教程(适用于 Windows、macOS、Linux)
  • CentOS7.9 源码编译 FreeSWITCH 1.10.12
  • 初识爬虫8
  • SwiftUI疑难杂症(1):sheet content多次执行
  • 在Java中,关于final、static关键字与方法的重写和继承【易错点】
  • io流(学习笔记01)--File知识点
  • Qt常用快捷键
  • 数据结构:串 及串的模式匹配(KMP)
  • 视觉无障碍 | 成都爱尔眼科公益助力重获清晰便利独居人生
  • 阿里rtc旁路推流TypeScript版NODE运行
  • 从入门到精通:计算机视觉学习路线与实战项目推荐
  • ROS与无人驾驶学习笔记(零)——问题汇总
  • Linux基础命令kill详解
  • JBOSS中间件漏洞复现
  • STM32 RTC实时时钟学习总结
  • WordPress精选文章如何添加侧边栏和页面?
  • 计算物理精解【8】-计算原理精解【5】
  • 如何在ChatGPT的帮助下,使用“逻辑回归”技巧完成论文写作?
  • sql server 版本补丁更新
  • Superset二次开发之Git篇git fetch 异常信息汇总
  • 【深度学习基础模型】Variational Autoencoders (VAE) 详细理解并附实现代码。
  • 【基础知识】Go中的同步机制