關迎暉,向 勇,陳 康
(中國電信股份有限公司廣州研究院 廣州510630)
全世界正處于一個信息爆炸時代,有大量的數據需要進行分析、處理和交流,在金融學、生物學、社會學、通信運輸和軟件工程等各大領域,都需要新的處理數據的手段??梢暦治鰧W是指通過交互式可視化界面促進分析推理的一門科學,是一個多學科交叉研究領域,涉及以下方面:
·分析推理技術,使用戶獲得深刻見解,這種見解直接支持評價、計劃和決策的行為;
·可視化表示和交互技術,充分利用人眼的寬帶寬通道的視覺能力立即觀察、瀏覽和理解大量信息;
·數據表示和變換,支持可視化和分析的方式轉化所有類型的異構和動態數據;
·支持分析結果產生、演示和傳播的技術,能與各種觀眾交流,有適當背景資料信息。
信息通常都以文字為載體,但只通過文字描述,難以讓人們迅速直觀地了解信息,而圖像則能夠以形狀、顏色、大小和成比例縮放等方式編碼大量的數據,直觀方便,非常適用于人與人、人與機器之間的大量信息交流。圖數據可視化技術不僅可以加速人們的閱讀速度,還可以發現隱藏在信息中的大量至關重要的關聯性細節。
圖數據可視化方法論,結合數據可視化、數據分析和人機交互技術解決實際應用問題,如圖1所示,有如下4個關鍵步驟:
(1)數據預處理;
(2)繪圖和布局;
(3)用戶可視化交互;
(4)基于模型的分析。
圖1 可視化分析過程
數據可視化工具按照商業模式,可以分為商業和開源兩大類。商用可視化工具將諸多可視化的模塊集合在軟件系統中,將各項需要使用的功能、信息基礎設施等整合成方便操作的工具套件,如Tabluau、Spotfire、QlikView等;開源可視化工具由具備可視化展現、分析以及交互等功能的工 具 包 構 建 而 成,如InfoVisToolkit、Prefuse、Improvise、JUNG等。
盡管開源工具在維護、更新、技術支持等方面相比商業化工具存在一定差距,但對于專業性較強的人員來說更加有效,通過各模塊的隨意組合、與其他工具嵌套等方式組合成新的系統功能會更加靈活強大。更加重要的是,開源可視化工具更方便用戶了解、干預和掌握數據的分析過程。因此,筆者重點研究、分析各開源可視化工具的優劣,并開展相關應用研究。
通常通過3個標準來衡量一款開源軟件:可視化功能、可視化分析能力和對開發環境的支持。
下面從應用軟件和開發庫兩個方面分析、比較相關開源可視化方法和工具。
主要的開源可視化分析應用軟件有Cytoscape、Gephi和Graphviz等。
Cytoscape,源自系統生物學,致力于為用戶提供一個開源的網絡顯示和分析軟件,提供了網絡顯示、布局、查詢等方面的基本功能,軟件核心可通過插件架構進行擴展。
Gephi,是一款開源免費跨平臺基于JVM的復雜網絡分析軟件,用于各種網絡和復雜系統、動態和分層圖的交互可視化與探測,可廣泛用作探索性數據分析、鏈接分析、社交網絡分析和生物網絡分析等。
Graphviz由AT&T實驗室啟動,用于繪制DOT語言腳本描述的圖形,也提供了供其他軟件使用的庫。
3種開源可視化分析應用軟件的對比如表1所示。
表1 開源可視化分析應用軟件的對比
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來應用和驗證數據可視化的方法。
Gephi提供對數據的各種操作和顯示,包括對圖中節點、邊和標簽的調整、顏色變換以及大的調節;實時的布局算法可以對數據進行各種各樣的布局;同時提供對數據圖的過濾顯示,即在獲得數據后,可以部分地顯示需要的數據;并且提供對部分數據的單獨保存功能;支持多種格式的文件輸入,支持應用插件,更具可擴展性,滿足用戶對不同數據的處理需求。
Gephi在許多領域都有應用,例舉以下幾個方面。
·探索性數據分析:對數據進行實時、直觀的分析。
·鏈接分析:分析對象之間的關聯結構。
·社會網絡分析:易于在社會數據中創建社區地圖和建立小世界網絡。
·生物網絡分析:在生物數據中發現其固有的模式或結構。
·廣告創作:提供對圖像、海報的高質量打印顯示。
此外,Gephi強大的功能還包括:內置的3D渲染引擎、多種可輸入的文件格式(包括GDF(GUESS)、GraphML(NodeXL)、GML、NET(Pajek)、GEXF等)和可定制 的 布 局創建(包括布局工具、數據指標、數據來源、展示設置等)。
圖2 Gephi的工具包構成
利用Gephi工具包,可構建功能更強大的可視分析工具,也可以和其他的平臺進行集成。
選擇Gephi軟件進行可視化分析,除了由于Gephi擁有強大的處理功能外,還擁有許多獨特的功能和簡單易用的特性。
·實時可視化:特設的OpenGL引擎,能夠以最快的速度將大圖可視化。
·多種布局算法:提供近幾十種布局算法,并可通過插件無限擴展,如力引導算法、多層次算法等,這些算法無論在效率上或在質量上都是最先進的。
·多種統計功能:軟件提供了統計數據和指標框架的最常用指標和無尺度網絡,包括聚類系數、平均最短路徑等十多種統計分析功能。
·動態信息過濾:支持實時地對網絡圖進行選擇或過濾,以方便用戶了解圖中的更多信息。
·支持插件:支持插件,提供可擴展性,內置的插件中心可以自動從網絡更新可用插件;也可由用戶自主開發插件,并可輕松打包和分享。
下面基于Gephi,通過實驗方式來應用和驗證數據可視化技術。
自2017年9月—2018年1月,團隊采用多階段分層抽樣,分別于不同時間階段進行,根據其專業將徐州醫科大學的醫學生分成五層(臨床、麻醉、影像、護理、口腔),每層隨機選取2014級、2015級、2016級、2017級各50人。另設立兩組參照組,即江蘇師范大學及中國礦業大學非醫學類專業本科生各50人;國際教育學院不同年級的100名醫學生。共計1 200人。
全球的互聯網被分成很多個自治域,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條邊,涵蓋了全球大部分的互聯網服務提供商??梢暬季炙惴ú捎脧较虿季郑╮adial 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與前面兩個自治域節點聯系最為頻繁。這些可視化結果都是互聯網數據流量狀況的最直觀表現方式。
本文從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群組分析與真實數據的關系十分相符,證明了本文可視化分析方法的優越性。
使用可視化技術分析了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庫里起基礎作用的包。
研究數據的可視分析技術能解決圖形繪制、圖形展現、人機交互和數據分析等眾多問題,本文對業內最新發展成果、分析方法與過程、典型的應用等方面都做了系統的介紹與論述。與此同時,可視分析技術也面臨眾多挑戰,例如,如何無縫融合信息可視化和數據分析技術,如何更好地處理海量、實時的、分布的互聯網數據信息等。為了更好地幫助用戶處理日益增長的文本信息,未來可視分析技術可改善現有布局算法,以提高實時的、大量的數據可視化效率,并且綜合運用各種人際交互方法,提高展現效果,轉化成可規?;虡I應用的能力。
圖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