APP下载

基于Gephi的可视分析方法研究与应用

2013-02-28关迎晖

电信科学 2013年1期
关键词:群组度数开源

关迎晖,向 勇,陈 康

(中国电信股份有限公司广州研究院 广州510630)

1 引言

全世界正处于一个信息爆炸时代,有大量的数据需要进行分析、处理和交流,在金融学、生物学、社会学、通信运输和软件工程等各大领域,都需要新的处理数据的手段。可视分析学是指通过交互式可视化界面促进分析推理的一门科学,是一个多学科交叉研究领域,涉及以下方面:

·分析推理技术,使用户获得深刻见解,这种见解直接支持评价、计划和决策的行为;

·可视化表示和交互技术,充分利用人眼的宽带宽通道的视觉能力立即观察、浏览和理解大量信息;

·数据表示和变换,支持可视化和分析的方式转化所有类型的异构和动态数据;

·支持分析结果产生、演示和传播的技术,能与各种观众交流,有适当背景资料信息。

2 数据可视分析技术

信息通常都以文字为载体,但只通过文字描述,难以让人们迅速直观地了解信息,而图像则能够以形状、颜色、大小和成比例缩放等方式编码大量的数据,直观方便,非常适用于人与人、人与机器之间的大量信息交流。图数据可视化技术不仅可以加速人们的阅读速度,还可以发现隐藏在信息中的大量至关重要的关联性细节。

图数据可视化方法论,结合数据可视化、数据分析和人机交互技术解决实际应用问题,如图1所示,有如下4个关键步骤:

(1)数据预处理;

(2)绘图和布局;

(3)用户可视化交互;

(4)基于模型的分析。

图1 可视化分析过程

数据可视化工具按照商业模式,可以分为商业和开源两大类。商用可视化工具将诸多可视化的模块集合在软件系统中,将各项需要使用的功能、信息基础设施等整合成方便操作的工具套件,如Tabluau、Spotfire、QlikView等;开源可视化工具由具备可视化展现、分析以及交互等功能的工 具 包 构 建 而 成,如InfoVisToolkit、Prefuse、Improvise、JUNG等。

尽管开源工具在维护、更新、技术支持等方面相比商业化工具存在一定差距,但对于专业性较强的人员来说更加有效,通过各模块的随意组合、与其他工具嵌套等方式组合成新的系统功能会更加灵活强大。更加重要的是,开源可视化工具更方便用户了解、干预和掌握数据的分析过程。因此,笔者重点研究、分析各开源可视化工具的优劣,并开展相关应用研究。

通常通过3个标准来衡量一款开源软件:可视化功能、可视化分析能力和对开发环境的支持。

下面从应用软件和开发库两个方面分析、比较相关开源可视化方法和工具。

2.1 开源可视化分析应用软件

主要的开源可视化分析应用软件有Cytoscape、Gephi和Graphviz等。

Cytoscape,源自系统生物学,致力于为用户提供一个开源的网络显示和分析软件,提供了网络显示、布局、查询等方面的基本功能,软件核心可通过插件架构进行扩展。

Gephi,是一款开源免费跨平台基于JVM的复杂网络分析软件,用于各种网络和复杂系统、动态和分层图的交互可视化与探测,可广泛用作探索性数据分析、链接分析、社交网络分析和生物网络分析等。

Graphviz由AT&T实验室启动,用于绘制DOT语言脚本描述的图形,也提供了供其他软件使用的库。

3种开源可视化分析应用软件的对比如表1所示。

表1 开源可视化分析应用软件的对比

2.2 开源可视化分析开发库

JUNG(Java universal network/graph framework)是Java开源项目,为开发关于图或网络结构的应用程序提供一个易用、通用的基础架构。JUNG功能调用可以方便地构造图或网络的数据结构,应用经典算法(如聚类、最短路径、最大流量等),编写和测试用户自己的算法以及可视化地显示数据的网络图。

Prefuse是一个用户界面包,用来把有结构与无结构数据以具有交互性的可视化图形展示出来,包括任何可以被描述成一组实体(或节点)或者可以被连接在一起的一些关系(或边缘)。支持的数据包括具有层次性(如文件系统和组织图)、网络(网络拓扑和网站链接)甚至是没有连接的数据集(如时间线)。

NetworkX是Python在图形和网络可视化的一个库,由BSD发布,适合大量真实世界的图形操作,如超过10万个节点和100万节点的边缘网络展现。由于依赖于一个纯Python“dictionary of dictionary”数据结构,它是一个合理、高效、可扩展、高度可移植的框架,适用于IP网络和社交网络的分析。

Protovis是一款可视化的图表工具,基于JavaScript和SVG(scalable vector graphics,可伸缩向量图形)技术,由斯坦福大学可视化组的Bostock M和Heer J开发。通过使用如条形及点等简单标记将自定义数据视图组合起来,创建标准化的图表,可以通过动态属性定义标记,这些属性通过对数据编码、继承、形变及布局以简化结构。

4种开源可视化分析开发库的对比如表2所示。

表2 开源可视化分析开发库的对比

考虑了代码复杂度、跨平台性和可扩展性等各种因素,本文选择基于Gephi来应用和验证数据可视化的方法。

3 Gephi介绍

Gephi提供对数据的各种操作和显示,包括对图中节点、边和标签的调整、颜色变换以及大的调节;实时的布局算法可以对数据进行各种各样的布局;同时提供对数据图的过滤显示,即在获得数据后,可以部分地显示需要的数据;并且提供对部分数据的单独保存功能;支持多种格式的文件输入,支持应用插件,更具可扩展性,满足用户对不同数据的处理需求。

Gephi在许多领域都有应用,例举以下几个方面。

·探索性数据分析:对数据进行实时、直观的分析。

·链接分析:分析对象之间的关联结构。

·社会网络分析:易于在社会数据中创建社区地图和建立小世界网络。

·生物网络分析:在生物数据中发现其固有的模式或结构。

·广告创作:提供对图像、海报的高质量打印显示。

此外,Gephi强大的功能还包括:内置的3D渲染引擎、多种可输入的文件格式(包括GDF(GUESS)、GraphML(NodeXL)、GML、NET(Pajek)、GEXF等)和可定制 的 布 局创建(包括布局工具、数据指标、数据来源、展示设置等)。

图2 Gephi的工具包构成

利用Gephi工具包,可构建功能更强大的可视分析工具,也可以和其他的平台进行集成。

选择Gephi软件进行可视化分析,除了由于Gephi拥有强大的处理功能外,还拥有许多独特的功能和简单易用的特性。

·实时可视化:特设的OpenGL引擎,能够以最快的速度将大图可视化。

·多种布局算法:提供近几十种布局算法,并可通过插件无限扩展,如力引导算法、多层次算法等,这些算法无论在效率上或在质量上都是最先进的。

·多种统计功能:软件提供了统计数据和指标框架的最常用指标和无尺度网络,包括聚类系数、平均最短路径等十多种统计分析功能。

·动态信息过滤:支持实时地对网络图进行选择或过滤,以方便用户了解图中的更多信息。

·支持插件:支持插件,提供可扩展性,内置的插件中心可以自动从网络更新可用插件;也可由用户自主开发插件,并可轻松打包和分享。

4 基于Gehpi的可视分析应用实例

下面基于Gephi,通过实验方式来应用和验证数据可视化技术。

自2017年9月—2018年1月,团队采用多阶段分层抽样,分别于不同时间阶段进行,根据其专业将徐州医科大学的医学生分成五层(临床、麻醉、影像、护理、口腔),每层随机选取2014级、2015级、2016级、2017级各50人。另设立两组参照组,即江苏师范大学及中国矿业大学非医学类专业本科生各50人;国际教育学院不同年级的100名医学生。共计1 200人。

4.1 BGP中AS路径

全球的互联网被分成很多个自治域,BGP(边界网关协议)是一种自治系统(AS)的路由协议,主要用于互联网AS之间的互联,其最主要功能在于控制AS间路由的传播和选择最好的路由,实现IP网不同自治系统间的路由选择。

从互联网技术而言,不同AS没有严格的等级区分。在实际中,根据网络覆盖和路由可达程度,互联网不同AS域一般可分为3级(Tier 1、Tier 2和Tier 3)。其中,Tier 1网络是指不向任何其他网络购买互联网穿透(IP transit)服务或付费连接的网络,Tier 2/3网络一方面向一家或多家上级Tier网络甚至同级Tier网络购买互联网穿透服务,另一方面也会与多家同级网络设置部分网络建立对等互联。

通过对基于BGP的AS路由信息进行分析,可有效构建AS间互联的拓扑图,从而实现AS级别上的路由策略决策。由于互联网上AS数量及路由信息数据量已经非常庞大,必须具备适合的可视化工具,才能对分析结果进行全面的展示。

本文使用了2012年4月3日的BGP核心AS数据集合,含40 898个节点,79 161条边,涵盖了全球大部分的互联网服务提供商。可视化布局算法采用径向布局(radial axis layout)算法,节点度数按照大小逆时针升序排序,整个图的平均度数为3.871,模块化值为0.517。

(1)BGP结构与AS节点分析

BGP中所有AS及其路径的结构如图3所示,不同的颜色代表不同的分组。最常被连接的AS节点:AS174节点度数为3 349,是美国Cogent Communications公司的节点;AS3356节点度数为3 197,是美国Level 3 Communications公司的节点。

图3 BGP中所有AS的径向分布

(2)群组分析

从BGP数据集中共发现59个群组,群组1占所有AS节点的8.07%,群组2占所有AS节点的7.86%,为最大的两个群组。从图4中可看到,两个群组之间的相互交差较小,整个BGP图的模块化值为0.517(越大分组越显著),这些都说明本文的群组发现效果较好。

(3)Tier 1网络的识别

本文探索潜在Tier 1网络的方法,是在BGP所有AS节点中找出节点度数最高的一些节点及其连接路径,并进行图结构的可视化。需要对BGP图中AS节点度数进行过滤,如只显示节点度数超过100和1 000的AS节点,如图5和图6所示。

AS3356和AS3549都属于美国Level 3 Communications公司,它们之间的交互最为频繁;此外,美国的AT&T运营商的AS7018,美国Cogent Communications公司的AS174与前面两个自治域节点联系最为频繁。这些可视化结果都是互联网数据流量状况的最直观表现方式。

4.2 Facebook好友关系

本文从Facebook中用户账号的社交信息得出其社交关系图,爬取的源数据包括姓名、性别、界面语言、位置、账号年龄、好友列表、消息数量、评论数量、标注喜欢内容等信息。这里试验的数据为一个用户的关系数据,包括223个节点、2 845条边,可视化过程如下:

图4 群组1和群组2的交互示例及群组1的单独示例

图5 节点度数大于100的BGP可视化图

(1)运行Force Altas布局算法;

(2)计算出该关系图的模块化值为0.341(模块化值越大,群组结构越清晰),平均路径长度值为2.306(平均路径长度值越小,该关系图节点间的联系越紧密);

(3)进行用户的各类群组探测(community detection);

(4)对图形的标签、节点、边和群众的颜色和字体进行调整;

图6 节点度数大于1 000的BGP可视化图示例

(5)过滤异常节点和不需要的群组。

Force Atlas算法得到的Facebook用户关系如图7所示,节点的大小代表节点度数大小,是该节点用户在社交关系图中的重要程度的刻画,大型节点为核心节点;节点之间的边连接着用户及其好友,其长度代表了在此关系图中的联系频繁程度。在图中也已经分析出不同灰度的部分,节点的不同灰度代表了检测出来的不同的群组。

对关系全图进行群组分析结果如图8所示,如图8(a)为同学群组,图8(b)为校友群组,图8(c)为生活好友群组,图8(c)为工作群组,而图8(f)为散点则表明可能是陌生人。Gephi群组分析与真实数据的关系十分相符,证明了本文可视化分析方法的优越性。

4.3 Python/PyPI库依赖关系

使用可视化技术分析了Python的所有开发函数库,从PyPI(Python package index)仓库的所有工具包上抽取依赖关系列表,建立一个完整的依赖关系图(dependency graph),以揭示每个工具包是如何彼此依赖的,也可判断出“install_requires”参数的依赖关系是动态还是静态的:

(1)使 用XML-RPC API,从PyPI中 收 取 所 有 的 函数库;

(2)下载函数库的所有版本并从 “install_requires”参数中抽取出“setup.py”文件;

(3)把依赖关系结果抽取并存储在 “pypi-deps.csv”文件中;

(4)使用Gephi或工具分析源数据(20 661个节点,14 047条边),构造可视化图,并支持用户动态拖动以获取某一依赖关系,如图9所示。

由图9可以看到,图中间部分十分密集,为了获得更多信息,采用模块化对中间两块进行详细分析,如图10所示。

通过图10可以看出,虽然黑色、灰色两个模块都是最主要的模块,不过各有不同点:模块1的包互相引用的次数低,但包多;模块2互相引用的次数高,但包较少。由图10(d)可以很清晰地看出这一点,这也说明模块2所包含的包应该是成套使用的。

图7 Force Atlas算法得到的Facebook用户关系全图

图8 Facebook用户关系群组分析子图

图9 Python/Pypi库依赖关系(从左到右,比例不断放大)

图10 包的模块化分析

为了分析出全部Python/PyPI库里重要的包以及包之间的关系,对生成的可视化图进行更多的分析。如图11所示是被50个以上的包所引用的包,这些也是库里最重要的包。

在图11中可以看到setuptools包是最重要的包,而事实上该包是用于安装其他包的工具,这很符合现实情况。而各种版本的Django、lxml和PIL等包也是Python库里起基础作用的包。

5 结束语

研究数据的可视分析技术能解决图形绘制、图形展现、人机交互和数据分析等众多问题,本文对业内最新发展成果、分析方法与过程、典型的应用等方面都做了系统的介绍与论述。与此同时,可视分析技术也面临众多挑战,例如,如何无缝融合信息可视化和数据分析技术,如何更好地处理海量、实时的、分布的互联网数据信息等。为了更好地帮助用户处理日益增长的文本信息,未来可视分析技术可改善现有布局算法,以提高实时的、大量的数据可视化效率,并且综合运用各种人际交互方法,提高展现效果,转化成可规模化商业应用的能力。

图11 被引用大于50的包

1 Auber D,Chiricota Y,Jourdan F,et al.Multiscale visualization of small world networks.Proceedings of IEEE Symposium on Information Visualization,Seattle,WA,USA,2003:75~81

2 Bennett C,Ryall J,Spalteholz L,et al.The aesthetics of graph visualization.Proceedings of Computational Aesthetics in Graphics,Visualization,and Imaging,Banff,Alberta,Canada,2007

3 Walshaw C.A multilevel algorithm for force-directed graph drawing.Journal of Graph Algorithms and Applications,2003,7(3):253~285

4 Muelder C,Ma K L.Rapid graph layout using space filling curves.IEEE Transactions on Visualization and Computer Graphics,2008,14(6):1301~1308

5 Collins C,Carpendale S.VisLink:revealing relationships amongst visualizations.IEEE Transactions on Visualization and Computer Graphics,2007,13(6):1192~1199

6 Card S C,Mackinlay J,Shneiderman B.Readings in Information Visualization:Using Vision to Think.San Francisco:Morgan Kaufmann Publishers,1999

7 Hu Yifan.Efficient,high-quality force-directed graph drawing.The Mathematica Journal,2005,10(1):37~71

8 Gephi.http://www.gephi.org,2012

猜你喜欢

群组度数开源
眼镜的度数是如何得出的
图形中角的度数
五毛钱能买多少头牛
2019开源杰出贡献奖
Boids算法在Unity3D开发平台中模拟生物群组行为中的应用研究
隐形眼镜度数换算
大家说:开源、人工智能及创新
开源中国开源世界高峰论坛圆桌会议纵论开源与互联网+创新2.0
群组聊天业务在IMS客户端的设计与实现
中国十八大名酒的度数和特性