多维数据可视分析方法研究
2017-05-15蒋璐王晓宏朱立谷张迪
蒋璐,王晓宏,朱立谷,张迪
(中国传媒大学 计算机学院,北京 100024)
多维数据可视分析方法研究
蒋璐,王晓宏,朱立谷,张迪
(中国传媒大学 计算机学院,北京 100024)
随着科学与技术的发展,产生了大量的数据,为了帮助人们更好地了解数据的变化趋势,产生了一门重要的分支——数据可视化。数据可视化是大数据分析的一个重要手段,它是用视觉形式向人们展示数据重要性的一种方法,使生硬的数字通过数据可视化软件就可以很容易发现其关联变化。本文根据某公司报警运营服务需求,在报警服务平台的框架下介绍报警平台可视化的环境及工作流程,结合基于降维的数据分析技术,具体讨论关于北京市ATM报警数据的信息可视化的设计、实现和步骤。
数据可视化;ATM报警数据;数据分析
1 引言
在当今这个大数据时代的前夜,信息量飞速增长,让我们不得不面对“无关、错误的信息也飞速增长”这样一个事实。将这些无关、错误的信息甄别出来,并将数据组织地更为高效,从而方便后续的分析,便成为了数据科学中日益重要的环节。
ATM报警服务平台汇聚和整合了各地报警运营中心系统的业务数据,然后利用数据分析手段,分析和挖掘这些数据,使得能够全面了解系统的运行情况,发现系统的运行规律,洞察系统的运行问题[1]。
ATM报警服务平台功能是报警中心的不同状态(建点、变更、运营、撤点)、网点数目、设备在线率、接警数、派单数、接听对讲数、接警处置率、派单完成率、反复故障率、故障类型分布情况、设备类型分布情况、设备品牌分布情况等指标实现可视化。作为一个有组织的科学分支,可视化起源于美国国家科学基金会(NFS)的报告《科学计算机中的可视化》[2]。在该篇报告的观点中,我们可以将可视化当成一种能处理大量信息数据,且能被直观观察现象的工具[3]。
2 系统体系架构
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 核心技术
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图
4 结论
本系统完成了报警中心的不同状态(建点、变更、运营、撤点)、网点数目、设备在线率、接警数、派单数、接听对讲数、接警处置率、派单完成率、反复故障率、故障类型分布情况、设备类型分布情况、设备品牌分布情况等指标的单独界面展示,并且实现了一部分时间与地理数据间的互动,后台使用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