蔣璐,王曉宏,朱立谷,張迪
(中國傳媒大學 計算機學院,北京 100024)
多維數據可視分析方法研究
蔣璐,王曉宏,朱立谷,張迪
(中國傳媒大學 計算機學院,北京 100024)
隨著科學與技術的發展,產生了大量的數據,為了幫助人們更好地了解數據的變化趨勢,產生了一門重要的分支——數據可視化。數據可視化是大數據分析的一個重要手段,它是用視覺形式向人們展示數據重要性的一種方法,使生硬的數字通過數據可視化軟件就可以很容易發現其關聯變化。本文根據某公司報警運營服務需求,在報警服務平臺的框架下介紹報警平臺可視化的環境及工作流程,結合基于降維的數據分析技術,具體討論關于北京市ATM報警數據的信息可視化的設計、實現和步驟。
數據可視化;ATM報警數據;數據分析
在當今這個大數據時代的前夜,信息量飛速增長,讓我們不得不面對“無關、錯誤的信息也飛速增長”這樣一個事實。將這些無關、錯誤的信息甄別出來,并將數據組織地更為高效,從而方便后續的分析,便成為了數據科學中日益重要的環節。
ATM報警服務平臺匯聚和整合了各地報警運營中心系統的業務數據,然后利用數據分析手段,分析和挖掘這些數據,使得能夠全面了解系統的運行情況,發現系統的運行規律,洞察系統的運行問題[1]。
ATM報警服務平臺功能是報警中心的不同狀態(建點、變更、運營、撤點)、網點數目、設備在線率、接警數、派單數、接聽對講數、接警處置率、派單完成率、反復故障率、故障類型分布情況、設備類型分布情況、設備品牌分布情況等指標實現可視化。作為一個有組織的科學分支,可視化起源于美國國家科學基金會(NFS)的報告《科學計算機中的可視化》[2]。在該篇報告的觀點中,我們可以將可視化當成一種能處理大量信息數據,且能被直觀觀察現象的工具[3]。
2.1 技術介紹
安防報警平臺在使用B/S架構的基礎上采用mean.js技術堆棧:MongoDB作為數據庫、Express作為服務器框架、AngularJS作為前端框架和Node.js作為web服務器。在具體流程上,同時實現新的mean.js技術架構與舊技術的整合:
將現有數據導入新建的mongodb數據庫,開發基于mongodb的數據查詢API接口,逐步替代原有的sql接口。
使用新的可視化開發套件,重構報警服務平臺web前端的報表展示層。百度ExcellentFrontEnd技術體系下的開發套件。這些項目包含數據可視化圖表庫Echarts,高性能的JavaScript模板引擎Etpl,前端開發套件EDP等等。對于一些純粹是自定義的可視化案例開發,則使用d3.js類庫進行開發,d3.js是數據驅動的SVG圖形編輯與交互制作的基礎類庫。另外,使用百度API第三方庫提供的免費地理信息服務接口,來輔助我們進行關于地理信息系統的開發。
使用HTML5技術重構web前端整體架構,實現瀏覽器端對大屏幕、桌面、移動端的響應式兼容。
2.2 邏輯架構設計
我們提出了報警云平臺全新的處理架構,用以支持數據分析、數據可視化呈現和適應各種大小屏幕設備的要求。
如圖1所示,ATM 報警平臺的處理框架主要分為兩個部分:預測分析和可視化平臺。預測分析覆蓋需求中的“虛假報警過濾”、“故障類型預測”等預測性內容,需要采用典型的數據分析和數據挖掘方法來解決。可視化平臺工作主要覆蓋需求中的“全面了解業務情況”、“發現業務發展趨勢和背后原因”、“KPI考核”等描述性內容。需要通過建立web端平臺,設計具體案例來解決;可視化平臺工作:無論是哪類工作,都必須建立在“了解數據,熟悉工具”的基礎上。通過重新分類和加標簽的方式做數據預處理的工作,選用tableau作為數據探索工具,processon作為知識記錄工具。以地理信息為切入點,以北京市為主要地理范圍,展示各類指標數據的應用。
2.3 可視化實現設計
2.3.1 KPI數據可視化
根據當前數據分析的結果和需求,計劃將KPI數據從員工、客戶、設備三方面做成案例來展示。

圖2 KPI數據可視化界面設計
我們以員工業績考核作為案例詳細介紹KPI數據展示主界面,詳見圖2。
我們的設計方案總體由五部分組成:
?第一部分:模板欄。該部分從員工業績、客戶信息、設備狀態三個角度進行可視化案例展示,以滿足客戶不同類型的需求。
?第二部分:總體數據展示區域。該區域展示的是數據的整體特征。通常情況下,以折線圖形式的線性布局呈現數據隨時間而變化的整體趨勢。概覽圖底部是條長時間軸,由于我們的KPI數據是連續變化的,我們利用時間軸將每個節點的數據按時間順序連接起來,便于對用戶感興趣的數據進行選定,然后橫向拖動數據軸。
?第三部分:細節特征展示區域。采用柱狀圖進行視覺編碼呈現KPI數據的細節特征,描述各項之間的差別情況,突出數據的比較,弱化時間的變化。
?第四部分:細節特征展示區域。要呈現KPI數據的細節特征,可以采用矩形樹圖進行視覺編碼。若是要快速評估用戶得到的數據,可以采用層次數據的可視化方法,如樹圖。
?第五部分:篩選區域。該區域與二、三、四區域的數據都是相互關聯的,在刪選區域刪選出感興趣的數據,總體數據展示區域與細節特征展示區域根據選定數據發生相應變化。
2.3.2 地理數據可視化
多維多元數據中的一個極為重要數據類型是地理空間數據。在地理信息即服務(GaaS)日益普及的今天,地理空間數據的研究與應用已經滲入現代社會生活的方方面面。地理空間數據歷來都是重要的可視化研究對象,而地理空間數據特殊性,決定其需要特定的技術和方法。故而在本方案中,地理信息相關服務被作為一個單獨的類型設計。基于全國電子地圖,設計可以自由縮放的“一張圖”,展示全國或具體省市的報警中心的實時數據,使得公司管理人員和工作人員可以直觀明了地了解各接警中心的業務當前動態。案例圖示如下:

圖3 地理數據可視化界面設計
整體界面遵循多視圖協調關聯(multiple coordinated views)的交互范式進行設計。分為6個部分,1標題欄、2地圖顯示欄、3數據選擇欄,4展示方式欄和5數據對比圖,6時間軸。以下一個例子說明該界面的使用方式:
假設用戶要查詢本月設備各種故障對比情況。
◆則用戶需要點擊區域3中的故障情況列表,選擇要顯示的數據類型。
◆然后在區域4中選擇顯示方式,這一步可選可不選,默認散點圖顯示。
操作完畢后,其他區域分別顯示對應的內容:
?區域1顯示當前對比的數據名稱。
?區域2在地圖上顯示本月故障類型。
?區域5顯示本月故障類型總數,用柱狀圖、餅圖之類的統計圖形表示。
?區域6顯示本月故障類型時序變化關系,用主題流圖或折線圖表示。
區域2,5,6是可以交互的。例如當用戶在2中選擇一部分點,則5,6只顯示這些點的對比關系。
3.1 數據處理技術
3.1.1 了解數據
根據整理的數據庫的數據字典,查看數據類型,對每個數據表進行分類處理,將數據表中的數據項分為標識信息數據、類型信息數據、時間信息數據、地理信息數據、指標信息數據。使用此方式初步了解數據庫中的數據,進行報警平臺數據的分析任務,并且進行歸納總結,根據分好類的數據整理畫圖,即對不同數據庫數據畫出相應思維導圖。利用的工具為processon,processon是一種在線畫圖工具,具有專業的流程模板和海量共享的流程圖,具有在線自動保存,快速創建主題等優點,使用方便。但是當圖中節點增多時,會影響響應速度,出現響應變慢的情況[4]。
我們將報警信息平臺的數據主要分為類型信息數據、地理信息數據、指標信息數據、標識信息數據。其下更加詳細的分類,則為編碼、名字、狀態、電話等類別。
3.1.2 數據調研
借助思維導圖對數據有了初步了解后,下一步就是考慮如何將數據展示出來,進行數據可視化。深入了解數據,根據用戶需求,整理可視化需要的數據,尋找展示如下指標在時間維度和地理維度上的展示方法:派單完成數目、設備品牌、設備風險等級、設備報警數目、設備狀態(建點、變更、運營、撤點)、接警數目、接警處置數目、反復故障率、接警處置率、派單完成率。將數據的各種信息轉化為圖形圖像的形式,從而更加有效的發揮我們的視覺效果[5]。
調研這些數據是否可以相互聯系展示,以及展示所需要的數據庫,數據庫表及表中字段。最終所有需要調研的數據研究發現均可以通過不同的方式實現可視化[6]。
整理結果(部分)如表1所示:

表1 數據整理
3.1.3 基于降維的數據分析
由于我們認知海量的多維數據存在一定的局限性,且大量的多維數據也會帶來一定的復雜性[7]。所以分析和挖掘數據中的一些特征,在數據之間發現其規律特征就顯得尤為重要,也就是數據分析。數據分析方法有兩種,基于降維的數據分析和基于非降維的數據分析。其中,通過分析數據之間的特征,將數據從多維降低到低維的方法為基于降維的數據分析,該方法不僅保留了數據之間的主要特征,又方便了分析數據和顯示數據,但是可能會帶來一些影響,如原有數據攜帶的信息被損失。而通過分析多維數據之間的距離和相關性等指導數據的重新組織排列的方法是基于非降維的數據分析[8]。
本文從非降維的圖表中獲取數據之間的特征,采用基于降維的數據分析方法來引導數據的重新排列和組織,減少數據的維度,而不損失信息。

圖4 各故障報警時序圖
由故障報警時序圖可知,X軸為報警時間,Y軸為報警數目,不同顏色代表不同報警事件類型,我們可以知道灰色代表的報警事件每次發生數量都比較多,但不具有連續性,而藍色、紫色、綠色代表的報警事件很連貫,幾乎每天都有,但每次數量不大。在原始數據未處理時,顯示效果不理想,不能準確的判斷數值的大小,也不能有效獲知數據之間的關系。經降維處理后,能得到轉換后的數據和每個故障對應的時序故障數及相互之間緊密度。如圖5所示,數據在經過改進的分級聚類處理后,其顯示效果得到極大的提高,我們可以看出掉電恢復和交流掉電的頻率最接近,周邊防區報警和接近報警的頻率也接近,可以猜測它們之間存在必然的聯系。研究者就可以根據圖表所展示出來的信息提供對應的解決方案。

圖5 降維處理結果圖
3.2 可視化建模
由于在實際的可視化應用系統中,部分數據需要經過統計分析等數據變換才能應用于數據可視化,因此,應用數據庫中的哪些數據能夠應用于可視化,哪些數據在經過一定的統計分析,數據變換之后能夠應用于可視化技術是可視化建模主要解決的問題。
本系統使用的可視化建模工具是Tableau,Tableau 是桌面系統中最簡單的商業智能工具軟件。Tableau 是簡單的商業智能工具軟件,具有活躍的儀表盤,可視數據瀏覽,對于數據分析十分方便快捷。輕松的拖放式界面,適用于多種數據文件與數據庫,具有數據可擴展性,不限所處理的數據大小[9]。

圖6 Tableau地理數據建模
如圖6所示,就是根據processon整理的數據,對北京市各個城區ATM機的設備狀態情況的統計。
設計目標:基于了解各客戶所屬設備目前的運營狀態,使得公司管理人員和工作人員可以直觀明了地了解各個城區設備狀態的情況,方便用戶清楚各客戶哪些設備處于運營、停運或更新的情況,提出對應的解決方案提高運營效率。結合地圖顯示狀態分布情況地區,讓人清楚各地區主要的狀態情況,數目及時序分布。
元素說明:下圖為各客戶所屬設備的狀態圖。其中,網點圖是根據各銀行客戶所有區域分塊展示,不同顏色代表不同設備狀態,如綠色-運營,紅色-停運,紫色-更新,黃色-恢復。條形疊狀圖是各銀行客戶相應狀態的設備數量總計,橫軸代表設備數目,縱軸代表客戶名稱,我們可以看出綠色面積最大,代表大部分設備都處于運營狀態。面積圖是不同時間點的狀態數目的統計,不同顏色代表不同的狀態,按升序排序,可以看出6、7、8月運營設備數目比較多。

圖7 Tableau時序數據建模
如圖7所示,根據整理的數據,對北京市各個城區ATM機的維護數目及情況的展示。
設計目標:基于了解各設備目前的維護過程及情況,方便用戶掌握各設備目前的狀況及維護的處理過程。通過這種建模從而按時序展示各設備的維護數目,以發現什么時間段維護效率最好,數目最多,根據此記錄分析不同銀行客戶所屬設備對應狀態的數量及占比分布。
元素說明:條形圖中不同顏色代表不同的調試狀態,我們可以看出極少數設備是調試不通過,大部分是調試通過,橫軸代表設備數目,縱軸代表客戶名稱,顏色代表調試狀態。折線圖橫軸代表時間,縱軸代表設備數目,顏色代表調試狀態。我們可以看出大部分設備的調試都是通過的。
3.3 可視化具體開發
系統主要使用百度API進行展示ATM各指標信息,百度地圖API中包括JavaScript API、Web服務API、Android SDK、iOS SDK、定位SDK、車聯網API、LBS云等多種開發工具與服務。本系統插入了SVG,并且實現了SVG根據鼠標滾輪放大縮小。在SVG文件中嵌入動畫元素,或通過腳本定義來達到高亮顯示、聲音、動畫等效果。為了更好地展示數據,并使得數據展示的豐富性,我們還使用Echart來輔助我們開發。ECharts是一個商業級數據圖表,一個純Javascript的圖表庫,可以流暢的運行在PC和移動設備上,兼容當前絕大部分瀏覽器。
3.3.1 百度echarts與真實數據的結合
要針對報警數據找出對應的解決方案及做出事先預測,那么時序數據與報警數據的結合就至關重要,通過時序數據可視化結果發現報警規律,查找更多的分析信息。就具體的技術而言,我們采用Echarts作為主要的時序接口。Echarts的引入主要有三種:模塊化包引入,模塊化單文件引入和標簽式單文件引入,我們采用的是模塊化單文件引入。
Echarts的引入具體步驟為:首先寫好項目接口:控制臺和路由,在后臺組裝相應的數據。然后配置路徑,引入echarts模塊,按需加載。引入echarts的js庫,加載相關依賴。在實際項目中將我們需要的數據從后端數據庫獲取后在前端頁面顯示。主要定義數組來儲存從中解析的數據。最后為加載一個顯示圖表的容器,引入到頁面顯示html文件中即可顯示圖表。如下圖所示:

圖8 員工接警處置數目圖
元素說明:該圖顯示的是員工接警處置的報警數目,橫軸代表員工名,縱軸代表接警數,柱子越高代表該員工接警處置的數目越多。通過連接a表的TBL_SERVICE_CENTER_INDEX_INFO,取員工字段EMPLOYEE_NAME,通過累加函數在接口處對每個員工所有接警數進行統計,再加載在取值函數中。上圖標示了員工接警的最大數目、最小數目以及平均值,按降序排序,我們可以很清楚的看出每個員工的接警情況。

圖9 故障統計圖
元素說明:上圖是一個簡單的折線圖示例,折線圖用來描繪信息數據在時間序列上的變化趨勢[10]。該圖顯示的是從2015年8月1日到2015年9月12日各時間出現故障的報警數目,橫軸代表時間,縱軸代表報警數。從上圖折線的波峰波谷我們可以知道報警數目的峰值,報警時序數在8月1日達到頂峰,之后總體比較平緩。
3.3.2 百度地圖API與真實數據的結合
報警數據與地理信息數據息息相關,通過地理位置顯示報警位置等信息使得可視化效果清晰明了,可以對數據提供很多的分析信息。因此地理信息服務與報警數據的結合是非常重要的一環。
就具體的技術方面,我們采用百度地圖API作為主要地理信息接口,然后使用SQL語句作為編程語句[11],將帶有經緯度標識的數據與之結合,在百度地圖上繪數據圖。例如根據故障緊急程度的數據大小在區域地圖上繪制熱力圖。為了更好的觀察故障緊急程度隨時間的變化,需要時序與地理相結合的模塊,如圖10所示。

圖10 ATM故障緊急程度交互圖
元素說明:通過添加ATM故障數量時間軸,我們可以方便的觀察各網點在不同時間段發生故障的數量,地圖上各紫色區域代表網點發生的故障數量,時間軸可拖動,時間軸上的藍色區域表示故障總數,我們也可以通過觀察區域波動的范圍了解哪些時間段故障比較頻繁,方便做好接警處置工作。
3.3.3 地理數據SVG展示
報警網點數據中包含很多與時間相關的數據,例如設備在線率,派單完成率,設備故障分布情況,尤其特征明顯的設備報警分布情況等將它們與地理信息整合,可以更好地了解報警相關信息隨時間的實時變換,數據變換的分布情況和發展趨勢,便于及時掌握數據信息,對于報警網點管理與服務水平有很大的提升,所以需要時序與地理相結合的模塊。而百度API所提供的地點圖標是有限的,對于一些特殊的信息我們通過SVG(可縮放矢量圖形)重繪數據圖標凸顯其特殊性,SVG是一種基于可擴展標記語言的圖形格式[12]。
如圖11所示:

圖11 報警網點SVG圖
本系統完成了報警中心的不同狀態(建點、變更、運營、撤點)、網點數目、設備在線率、接警數、派單數、接聽對講數、接警處置率、派單完成率、反復故障率、故障類型分布情況、設備類型分布情況、設備品牌分布情況等指標的單獨界面展示,并且實現了一部分時間與地理數據間的互動,后臺使用JS語言編寫后臺接口,并且使用MongoDB進行數據存儲[13]。
系統性能仍然需要提升,當前端要求展示更多的數據時,系統的響應時間明顯增加。可視化上,由于地圖中的點密度大,容易出現重合的情況,以至于用戶觀看效果不佳,因此,可以采用藍噪聲采樣算法[14],來生成隨機且均勻分布的采樣點集合,減少地圖上顯示的點密度,提高視覺效果。接下來,工作重點是,根據用戶的需求,進行功能完善,根據顯示結果,進行數據分析[15],比如,分析哪些地方更易發生哪類報警故障,對報警的處理不及時的情況等,客戶可以及時發現異常情況,并進行處理。
[1]韓歡. 基于大數據的智能交通運輸平臺的研究[D]. 成都理工大學,2014.
[2]B H McCormic,T A DeFanti,and M D Brown,eds. Visualization in Scientific Computing[J]. Computer Graphics,1987,21(6):45~50.
[3]于世東. 多維數據可視化技術的研究及應用[D]. 沈陽工業大學,2006.
[4]Tony. 網頁版Visio的替代品高大上的 ProcessOn[J]. 電腦迷,2013(22):74-74.
[5]Nahum D Gershon,Stephen G Eick. Information Visualization[J]. IEEE Computer Graphics and Applications,1997(7/8):29~31.
[6]李國杰,程學旗. 大數據研究:未來科技及經濟社會發展的重大戰略領域——大數據的研究現狀與科學思考[J]. 中國科學院院刊,2012,27(6).
[7]Chen Chaomei. Top 10 unsolved information visualization problems [J]. IEEE Computer Graphics and Applications,July 2005:12-16.
[8](美)蘇克,戴維森著. 可視化數據挖掘:數據挖掘可視化和數據挖掘的技術與工具[M]. 北京:電子工業出版社,2004.
[9]雷君虎,楊家紅,鐘堅成,等. 基于PCA和平行坐標的高維數據可視化[J]. 計算機工程,2011,37(1):48-50.
[10]沈浩.Tableau案例集[M]. 電子工業出版社,2015.
[11]貝里. 深入淺出SQL[M]. 東南大學出版社,2009
[12]馮文熠,朱昌盛.Ajax在實時繪制SVG圖表中的應用研究[J]. 科協論壇,2012(1):59-60.
[13](美)霍多羅夫,(美)迪洛爾夫(等.MongoDB權威指南[M]. 人民郵電出版社,2011.
[14]田玉敏,柯麗芳,馬勇. 一種改進的基于藍噪聲的誤差分散算法[J]. 計算機工程與應用,2006,42(26):60-62.
[15]顧濤. 基于大數據的競爭情報協作分析研究[J]. 情報科學,2013(12):114-118.
(責任編輯:馬玉鳳)
Research on Visualization of Multidimensional Data
JIANG Lu,WANG Xiao-hong,ZHU Li-gu,ZHANG Di
(Computer Science School,Communication University of China,Beijing 100024)
It produced a large amount of data with the development of science and technology. We create an important branch of data visualization in order to help people understand the trend of data. Data visualization is an important means to analysis of large data,which shows a method of the importance of data to people in a visual form. Then stiff figures can be easily found the correlation changes through data visualization software. According to the alarm service demand ,the company introduces the alarm system environment and system workflow in the framework of the service platform of alarm,Combined with drop and non-drop dimensional based data analysis techniques,We discuss specifically the design,the realization and the steps of information visualization about Beijing ATM alarm data.
data visualization;ATM alarm data;data analysis
2016-06-16
蔣璐(1993-),女(漢族),湖南岳陽人,中國傳媒大學理工學部研究生. Email:1092107278@qq.com
TP302.1
A
1673-4793(2017)02-0053-08