Easygraph:全面高效的图分析与社会计算开源工具
前言
图是对事物之间关系的一种原生的表达,利用图可以深入直接地认识世界中的关联。社交网络、交易数据、知识图谱、交通运输、生物技术等都是图数据的典型应用。
社交网络是一种特殊的图数据,它建立在图网络的基础上,又遵循一定的社会学理论。
EasyGraph是复旦大学MSN小组开发的一款基于Python语言的图计算开源包,它是第一个包含全面的结构洞占据者探测方法的开源库,同时覆盖了图嵌入和其他一些传统的图计算方法。Easygraph补齐了现有的图分析开源库如igraph, NetworkX在社交网络领域的短板,同时利用混合编程和并行计算提高了运行效率
什么是结构洞理论
由于细化的工作分工,人们聚集到不同的群体中。在同一个群体中,人们的交流比跨群体的交流更密切,从而逐渐在不同社区之间形成术语障碍。在封闭网络中,人们可以以较低的成本获得更高可信度的信息。这些封闭的网络或社区可以促进内部交流和社区发展,并产生冗余和重叠的信息。
根据伯特提出的结构洞理论,充当这些社区的桥梁和中介的,就是结构洞占据者。结构洞占据者与社交网络的不同社区的联系增加了它在竞争领域的社会资本,而具有同质和重复信息的封闭网络不会带来这样的优势。这就是结构洞理论的核心。
结构洞的潜在价值在于信息效益和控制效益。结构洞占据者占据了社区之间独特的连接位置,从而可以访问多个非冗余信息源,获取高价值信息。在社会学研究中,社区中信息、想法和创新汇集的个体被称为意见领袖。结构洞占据者得益于互联社区的独特信息,拥有与意见领袖互动的优先权,从而发掘有利可图的机会。
基于社交网络分析,结构洞理论已经被开发出诸多应用场景。结构洞被用于企业人力资源管理,以及社交关系中高收益联系的建立。同时由于结构洞占据者占据了连接不同社区的关键结构位置,结构洞理论也被用于在传播信息方面最大化影响力。
由于结构洞体现了图的整体和局部结构,结构洞理论在不同的层面上都具有巨大的应用潜力
个体层面:分析个人行为和属性;预测用户情绪等
连接层面:链路预测;预测投资行为;分析社会关系等
图级层面:图分类,图同构和图分区等
全面的图网络分析工具
Easygraph的架构包含:
图的输入输出
图的可视化:利用结构洞占据者标记,CDF图和节点定位对复杂网络进行完整呈现
| karate club数据集的结构洞占据者标记 |
| karate club数据集CDF图 |
图分析方面,Easygraph覆盖了图表示学习,经典网络算法和结构洞占据者检测方法:
图表示学习 :DeepWalk,Need2Vee,LINE,SDNE等
社区检测,中心性,Component,Clustering等方法
Easygraph集成了全面的结构洞占据者探测方法,包含:
基于信息流的HIS, MaxD,HAM,NOBE,maxBlock等算法
基于网络中心性的WeakTie-Local,WeakTieBi,ICC,BICC,Ap_Greedy等算法
基于此架构,Easygraph能够在生物,交通,化学,社会,生态等众多领域的图数据分析中发挥应用价值
易用性和运行效率
Easygraph注重API的易用性和极低学习成本
以下是一个以6行python代码实现对图数据进行结构洞占据者分析并可视化的示例
from easygraph.datasets import get_graph_karateclub
import easygraph as eg
G = get_graph_karateclub()
# Calculate five shs(Structural Hole Spanners) in G
shs = eg.common_greedy(G, 5)
# Draw the Graph, and the shs is marked by red star
eg.draw_SHS_center(G, shs)
# Draw CDF curves of "Number of Followers" of SH spanners and ordinary users in G.
eg.plot_Followers(G, shs)
深入了解Easygraph
项目地址:easy-graph/Easy-Graph: EasyGraph is an open source graph processing library, which covers advanced graph processing methods in structural hole spanners detection, graph embedding and several classic methods. (github.com)
文档:EasyGraph by FudanMSN (easy-graph.github.io)
通过视频教程快速安装并运行第一个样例:Tutorials - YouTube
Easygraph:全面高效的图分析与社会计算开源工具的更多相关文章
- 用 CPI 火焰图分析 Linux 性能问题
https://yq.aliyun.com/articles/465499 用 CPI 火焰图分析 Linux 性能问题 yangoliver 2018-02-11 16:05:53 浏览1076 ...
- 关于图算法 & 图分析的基础知识概览
网址:https://learning.oreilly.com/library/view/graph-algorithms-/9781492060116/ 你肯定没有读过这本书,因为这本书的发布日期是 ...
- 用 GraphScope 像 NetworkX 一样做图分析
NetworkX 是 Python 上最常用的图分析包,GraphScoep 兼容 NetworkX 接口.本文中我们将分享如何用 GraphScope 像 NetworkX 一样在(大)图上进行分析 ...
- 火焰图分析openresty性能瓶颈
注:本文操作基于CentOS 系统 准备工作 用wget从https://sourceware.org/systemtap/ftp/releases/下载最新版的systemtap.tar.gz压缩包 ...
- 《BI那点儿事》SSRS图表和仪表——雷达图分析三国超一流谋士、统帅数据(图文并茂)
雷达图分析三国超一流谋士.统帅数据,献给广大的三国爱好者们,希望喜欢三国的朋友一起讨论,加深对传奇三国时代的了解 建立数据环境: -- 抽取三国超一流谋士TOP 10数据 DECLARE @t1 TA ...
- 也许游戏 它P/N图分析
关于游戏的问题,更多的时候是使用P/N图分析 p n p n p n p n n n n n n n n n p n p n p n p n n n n n ...
- SpaceSyntax【空间句法】之DepthMapX学习:第四篇 凸多边形图分析[未完]
这一篇正式讲解分析类型中的第一个,凸多边形分析,流程图参照上一篇的. 博客园/B站/知乎/CSDN @秋意正寒(我觉得这一篇肯定很多盗图的,那么我在版头加个本篇地址吧) https://www.cnb ...
- 发布一个高效的JavaScript分析、压缩工具 JavaScript Analyser
发布一个高效的JavaScript分析.压缩工具 JavaScript Analyser 先发一段脚本压缩示例,展示一下JSA语法压缩和优化功能. try { //xxxx(); } catch (e ...
- NLP(十二)依存句法分析的可视化及图分析
依存句法分析的效果虽然没有像分词.NER的效果来的好,但也有其使用价值,在日常的工作中,我们免不了要和其打交道.笔者这几天一直在想如何分析依存句法分析的结果,一个重要的方面便是其可视化和它的图分析 ...
- GitHub + jsDelivr + PicGo + Imagine 打造稳定快速、高效免费图床
GitHub + jsDelivr + PicGo + Imagine 打造稳定快速.高效免费图床 前言 为什么要使用图床呢? 因为在不同平台发布同一篇文章的时候,最一个痛苦的点就是,图片存储问题,各 ...
随机推荐
- nginx启动报错80端口号已占用
开启或重启Nginx时报如下错误: Nginx [emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use) 原因是端口号80被其 ...
- 沁恒 CH32V208(三): CH32V208 Ubuntu22.04 Makefile VSCode环境配置
目录 沁恒 CH32V208(一): CH32V208WBU6 评估板上手报告和Win10环境配置 沁恒 CH32V208(二): CH32V208的储存结构, 启动模式和时钟 沁恒 CH32V208 ...
- 2022-12-21:uifd/ui-for-docker是docker的web可视化工具。请问部署在k3s中,yaml文件如何写?
2022-12-21:uifd/ui-for-docker是docker的web可视化工具.请问部署在k3s中,yaml文件如何写? 答案2022-12-21: yaml如下: apiVersion: ...
- 2021-02-05:给定一个数N,想象只由0和1两种字符,组成的所有长度为N的字符串。如果某个字符串,任何0字符的左边都有1紧挨着,认为这个字符串达标。请问有多少达标的字符串?
2021-02-05:给定一个数N,想象只由0和1两种字符,组成的所有长度为N的字符串.如果某个字符串,任何0字符的左边都有1紧挨着,认为这个字符串达标.请问有多少达标的字符串? 福哥答案2021-0 ...
- 2022-04-22:给你一个大小为 m x n 的矩阵 board 表示甲板,其中,每个单元格可以是一艘战舰 ‘X‘ 或者是一个空位 ‘.‘ ,返回在甲板 board 上放置的 战舰 的数量。 战舰
2022-04-22:给你一个大小为 m x n 的矩阵 board 表示甲板,其中,每个单元格可以是一艘战舰 'X' 或者是一个空位 '.' ,返回在甲板 board 上放置的 战舰 的数量. 战舰 ...
- 2021-04-05:给两个长度分别为M和N的整型数组nums1和nums2,其中每个值都不大于9,再给定一个正数K。 你可以在nums1和nums2中挑选数字,要求一共挑选K个,并且要从左到右挑。返回所有可能的结果中,代表最大数字的结果。
2021-04-05:给两个长度分别为M和N的整型数组nums1和nums2,其中每个值都不大于9,再给定一个正数K. 你可以在nums1和nums2中挑选数字,要求一共挑选K个,并且要从左到右挑.返 ...
- Django4全栈进阶之路21 项目实战(在线报修):创建App应用和Model模型
创建应用App python manage.py startapp RepairApp 创建模型 在models.py文件中定义一个Repair模型来表示报修单,其中包含以下字段: repair_id ...
- Jupyter Notebook (Anaconda3)更改保存文件的默认路径
打开jupyter 查找路径 1 import os 2 a=os.path.abspath('.') 3 print(a) 创建个人文件夹 E:\pyAPP\JupyterWork 查找修改配置文件 ...
- javascript中的错误类型
javascript 中的错误类型: SyntaxError TypeError ReferenceError RangeError URLError Error SyntaxError 语法错误 / ...
- 【python基础】复杂数据类型-列表类型(数值列表)
1.数值列表 列表非常适合用于存储数字集合,而python提供了很多工具,可帮助我们高速地处理数字列表. 1.1 range函数 python的range函数能够轻松的生成连续一系列数字. 其语法格式 ...