基于层次化模型的数据可视化方法及其系统的制作方法

文档序号:10552922阅读:779来源:国知局
基于层次化模型的数据可视化方法及其系统的制作方法
【专利摘要】本发明公开了一种基于层次化模型的数据可视化方法及系统,其中数据可视化方法包括下列步骤:图形数据准备、图形顶点采样分层、子图顶点连接、图形顶点受力计算、顶点位置更新、图形布局递归计算、图形布局层次化绘制;其中数据可视化系统包括下列模块:图形数据准备模块、图形顶点采样分层模块、子图顶点连接模块、图形顶点受力计算模块、顶点位置更新模块、图形布局递归计算模块、图形布局层次化绘制模块。本发明可以加快算法收敛,正确计算布局,保持效果稳定性。另外,本发明不仅可以科学地绘制大数据的图形布局,而且还提供了便捷的交互操作。因此,本发明具有快速高效地计算美观布局、帮助用户挖掘潜在知识规律的优点。
【专利说明】
基于层次化模型的数据可视化方法及其系统
技术领域
[0001] 本发明涉及一种数据可视化技术,特别涉及一种基于层次化模型的数据可视化方 法及其系统。
【背景技术】
[0002] 目前,随着信息时代的高速发展,电子商务、社交网络、移动互联网、数字家庭等信 息技术已经被普遍应用于人们的工作和生活中,这些应用不断产生海量数据,而这些数据 又包含了各方面潜在而有价值的信息。对大数据的分析和管理,将创造出巨大的经济效应 和社会价值,例如,在商业领域,大数据有助于企业掌握市场动态,指定精准的营销策略,为 消费者提供更加及时和个性化的服务;在公共事业领域,大数据有助于维护社会稳定、促进 经济发展;在医疗领域,大数据有助于疾病暴发的跟踪和处理等等。
[0003] 但由于数量大、生成速度快以及数据多样等特点,大数据呈现出不断增长的复杂 性,导致传统的分析方法已经无法对其进行正确的分析。因此,大数据领域非常需要科学有 效的分析技术,而数据可视化分析就是一种最直观的大数据分析技术:它将互相关联的海 量数据表示成各种可见的图形对象,并根据数据的关系,计算出数据点在图形中的相对位 置,从而把复杂抽象的数据分布转换成直观明了的大图布局。然后,它充分利用人类视觉系 统对图形的高灵敏度和快速分析能力,通过人的观察分析来获得潜在的数据规律,从而高 效地进行知识挖掘的过程。因此,该技术是大数据研究领域中的一个热点。
[0004]数据可视化分析是指将关系型数据转换为图形,并观察图形的特征,分析数据潜 在规律,从而挖掘知识的过程。它最大的优势是,以最直观的方式呈现数据特征,降低了分 析难度,提高了挖掘效率。这项技术广泛存在于各种数据分析应用,例如社交网络分析 (Social Networks Analysis)、互联网沟通(Internet Communications)以及生物信息学 (Bioinformatics)等等;同时,该研究领域也具有非常大的挑战性,因为它涉及计算机科 学、物理学、图形设计学、符号学,以及艺术等几个重要知识领域。
[0005] 数据可视化方法的核心在于图形布局的计算方法。当前图形布局的计算方法主 要有:基于光谱和基于力引导(force-directed)的布局计算方法。前者的主要不足是计算 出来的图形布局不够美观,难以表现数据的内在特征,而且采用的特征向量计算方法不能 直观地解释计算结果;对于后者,虽然大部分方法简单直观,布局效果好,但只适用于几十 或几百的小数据,对于大数据则存在以下的缺点和不足:
[0006] 1.由于大数据的数据量大等特点,大图布局的计算难度很大,难以产生比较好的 布局效果。
[0007] 2.算法本身的计算复杂度比较高,导致大图布局的计算非常缓慢,运行时间特别 久。
[0008] 3.绘制图形的边框大小被计算机的屏幕大小所限制,导致直接绘制图形布局时产 生顶点和连接顶点的边大量重叠,难以清晰地观察和分析布局的特征,从而无法挖掘大数 据的潜在规律。
[0009] 因此,为了更加有效地计算大数据的图形布局,需要采用新的策略来计算图形布 局,并设计有效的图形交互方式,从而提高布局算法的准确性和高效性,以及图形绘制方式 的有效性,满足用户观察和分析大数据的需求,达到挖掘知识的目的。

【发明内容】

[0010] 本发明的首要目的在于克服现有技术的缺点与不足,提供一种基于层次化模型的 数据可视化方法,该方法通过采用层次化模型、结合模拟退火技术等策略,极大提高了算法 的布局效果和计算效率;同时还通过采用不同粗细粒度层次显示图形的方式,解决了大图 无法在屏幕中清晰显示的问题。
[0011] 本发明的另一目的在于克服现有技术的缺点与不足,提供一种基于层次化模型的 数据可视化系统,该系统能够正确并高效地计算大量数据的图形布局,科学合理地在有限 的屏幕中绘制大图,并为用户提供了两种有效的交互方式,较好地满足了用户快速分析大 数据的要求,达到了挖掘知识的目的。
[0012] 本发明的首要目的通过下述技术方案实现:基于层次化模型的数据可视化方法, 包括:
[0013] 图形数据准备:将海量的数据对象映射成图形中的顶点,任意两个数据之间的关 系映射成无向边,生成结构化的图形数据。
[0014] 图形顶点采样分层:基于层次化模型的策略,根据一定的规则,对已有的数据顶 点递归地进行采样,生成数据顶点不断减少的多份子图形数据,来表示从细粒度层次(顶点 个数多)向粗粒度层次(顶点个数少)变化的多个子图。
[0015] 子图顶点连接:由于对原始图形的顶点进行了采样分层操作后,所生成的每个子 图都只有顶点,而没有边,因此需要根据原始图形的边,来构建每个子图的边,即连接子图 各自的顶点,从而得到完整的子图形数据。
[0016] 图形顶点受力计算:首先随机初始化每个顶点的位置;然后,由于在经典的力引导 模型中,图形被模拟成力学系统,每个顶点都被模拟成一个带同种电荷的粒子,每一条边都 被模拟成一根弹簧;因此,需要计算任意两个顶点之间的基于库伦定律的电场斥力,以及邻 接顶点之间的基于胡克定律的弹簧力。
[0017] 顶点位置更新:根据每个顶点当前所受的合力,采用改进的模拟退火等技术,将顶 点移动到新的位置。当所有顶点移动到新的位置后,再重新计算每个顶点所受的合力,再移 动到新的位置;按照这种方式不断迭代计算,直至整个图形系统的力处于相对稳定状态。
[0018] 图形布局递归计算:从最粗粒度的子图开始计算布局,并用粗粒度子图的正确布 局来初始化下一个较细粒度子图的布局,再计算该细粒度图形的布局;按照这种方式从粗 粒度向细粒度递归地计算每个子图的布局,直至得到原始图形的布局。
[0019] 图形布局层次化绘制:采用层次化模型的策略,根据屏幕大小和图形数据量的相 对关系,对大图形绘制较粗粒度的图形布局;并设计缩放操作,当用户需要观察局部情况, 则放大该局部的图形布局;并设计平移操作,方便用户将屏幕外的图形布局移动到屏幕范 围内进行观察。
[0020] 所述的图形数据准备包括以下步骤:
[0021] (la)将数据集中的每个对象都映射成一个顶点;
[0022] (lb)将两个对象之间的任意联系都映射成一条无向边;
[0023] (lc)为每个顶点和每一条边都赋予不重复的ID号,从而生成结构化的图形数据文 件。
[0024] 所述的图形顶点采样分层包括以下步骤:
[0025] (2a)采样生成子图的顶点集合:从原始图形的顶点集合中采样生成更小的顶点集 合,为了保持不同粒度图形之间的几何特征,使用的方法是生成原始顶点集合的最大独立 集合(Maximallndependent Set,MIS)。假设图形G= (V,E),其中,V表示顶点集合,E表示边 的集合;那么集合S C=P是一个独立集合的充要条件是:该集合中任意两个顶点的图形距 离大于或等于2(其中,图形距离是指两个顶点在图形中的最短路径)。其实这就等价于,集 合S中的任意两个顶点在图G中都不是邻接点。图G可以生成多个MIS,但每个MIS都不是其他 MIS的子集。生成MIS方法是,随机选取顶点Vi GV,把Vi加入到集合S中,同时把Vi从V中删除; 然后再把^的所有邻接节点从V中删除;重复上述操作直至V为空。最后得到的独立集合S就 是当前图形的MIS,也就是子图的点集。
[0026] (2b)判断是否应停止采样分层操作:在生成一系列粒度不断粗化的顶点集合V1; V2,…,Vk之后(其中k表示子图的个数),当21^0丨311^61'(6())(01311^61'(6())表示原始图形的 直径)时,MIS采样分层操作就停止。
[0027] 所述的子图顶点连接包括以下步骤:
[0028] (3a)计算图形的平均度:由MIS采样分层方法得到了一系列粒度不断粗化的图形 的顶点集合Vi,V 2,…,Vk,下一步的内容是,重构这些顶点集合对应的边集,从而得到完整的 图形。重构边集的过程其实就是寻找每个顶点的新邻接点,其关键之处也是尽可能保持上 一层图形的几何特征。
[0029] 假设将图形表示为Gi(0<i<k),其对应的顶点集合表示为Vi,对应的边集表示为 Ei。为了让粗粒度图形保持细粒度图形的几何特征,本发明要介绍平均度(Average De gr e e)的概念。在图论中,每个顶点的度(Degr e e)是指该顶点所连接边的数量。而平均度 则是指该图的边的数量与顶点数量的比例,其作用在于衡量图的稠密程度。为了保持图的 几何特征,不同层次之间的图的平均度应该是相同的,即,
[0030] avgDeg(Gi) =avgDeg(Gi-i)
[0031 ]其中,avgDeg(Gi) = 2 |Ei | / | Vi |。假设细粒度图形Gi-(Vi-hEi-〇,粗粒度图形Gi =(Vi,Ei)。其中Ei未知,则由平均度可知:
[0032] 2|Ei|/|Vi| =2|Ei-i|/|Vi-i
[0033] 即,|Ed = |Eh| ( IVj/IV^I )。然后,计算粗粒度图形中每个顶点所要连接的新邻 接点个数m,P:
[0034] m,P= |Ei | (m-i,P/1Ei-11)
[0035] 其中,m-u表示细粒度图形中的同一顶点的邻接点个数;0<i彡k,0彡p彡|1|。
[0036] (3b)寻找每个顶点的邻接点:采用广度优先搜索(Breadth-First Search,BFS) 算法寻找邻接点:选取图Gi的顶点VpGVi,该顶点同时存在于图61-冲;以^为根节点,在图 Gi-冲进行BFS查找;如果当前查找的顶点VqGVH也存在于顶点集合Vi中,那么就把vq放入 ^的新邻接点集合^中,然后继续查找,直至邻接节点的个数达到预先指定的数量。不断重 复上述操作,直至遍历完1中所有的顶点。
[0037] 所述的图形顶点受力计算包括以下步骤:
[0038] (4a)随机初始化每个顶点的位置:为了促进算法收敛,本发明设置以下的初始化 方式:
[0039] Xj = randi%.,/^), = rando%^^
[0040] 其中,(Xi,yi)表示顶点i在二维空间中的坐标,randi和rand2表示两个不同的随机 数,Vo表示原始图形的顶点个数。这种随机初始化的期望结果就是,使顶点尽可能被均匀地 初始化在一个合适大小的以原点为中心的正方形区域内,从而避免顶点的初始位置过于分 散或过于重叠。
[0041] (4b)对顶点构建空间划分树:由于斥力存在于任意两个顶点之间,因此如果直接 计算每个顶点所受的斥力,那么计算时间复杂度将是0(|V|2)(其中,V表示顶点的个数), 导致算法效率非常低下,难以适用于大数据的可视化分析。由于影响斥力的关键因素是顶 点之间的距离,因此可以采用多极扩展定理(Multipole Expansion)近似计算斥力。多极扩 展定理是指,当一个顶点与某一群点的距离足够远时,这群顶点对该顶点的斥力会产生一 种聚合效应,即这群顶点产生的斥力效果近似等价于:对这群点的电荷进行累加,然后在其 几何中心的位置统一对该顶点施加斥力。所以,本发明根据顶点的空间分布,构建空间划分 树,即把相同区域的顶点归到同一个空间树节点内;然后根据多极扩展定理,近似计算每个 顶点所受的斥力。
[0042] 本发明利用1(维树(1(-〇;[1116118;[0仙11>66,1(0-1^66)作为空间划分树。1(0-1'代6是一 种在k维欧几里德空间中将多个点划分成不同区域的数据结构。KD-Tree是一种二叉树,它 的每一个非叶子结点都可以视为一个将空间分割成两半的超平面。超平面的一侧被表示为 该节点的左子节点,而另一侧则被表示为该节点的右子节点。例如,在二维坐标系中,如果 使用x轴垂直分割面,那么在分割面左侧的点被划分到左子节点,而右侧的点就被划分为右 子节点。
[0043]本发明利用"轴对齐分割"的方法构建KD-Tree,即选择坐标系中的某一坐标轴的 某一位置的垂直分割面进行空间的分割。由于本发明研究的是二维图形的布局,因此这里 只讨论二维坐标系中KD-Tree的构建方法:首先,将整个二维空间初始为树的根节点,并根 据当前树的深度选择垂直分割面所在的坐标轴(例如,在根节点时选择x轴,当深度加1时选 择y轴,以此方式轮换坐标轴);然后,以某种方式指定垂直分割面位于坐标轴的具体位置, 并用该分割面将当前的空间区域划分成两部分,生成左右子节点。不断重复以上步骤,直至 当前区域的点的个数小于某个阈值。本发明采用二进制分割法指定垂直分割面位于坐标轴 上的具体位置:(假设,把 x轴当作分割面所在坐标轴)首先,将该区域内所有顶点的x坐标转 换为二进制数字,然后比较所有二进制数字的最高有效位,把最高有效位为〇的点放入左子 节点、为1的点放入右子节点;最后,当该区域内的所有顶点被划分完之后,把比较的二进制 位从最高有效位左移一位,以供下次选择x轴划分时使用。
[0044] (4c)计算顶点所受的斥力:根据多极扩展定理,本发明将通过遍历KD-Tree来计算 斥力。对于距离当前顶点足够远的一群顶点,本发明采用如下方式进行计算:
[0045]首先,假设C= {ci,-_,cm}是由m个带电荷Q(C) = {qi,-_,qm}的粒子组成的集合,这 m个带电粒子位于不同的位置p(C) = {pi,"_,pm}。其中,所有顶点的位置p: = (x,y) G M2 都被标识为复数形式:Z = x + iy e C;
[0046] 假设一个半径为r且圆心为ZQ的圆形包含了 m个带有电荷且位于不同位置的粒子; 那么,对于任何满足I z-zo | >r的位置z GC,这m个带电粒子对z产生的总的电势能用以下公 式计算:
(1) a该公式进行的是k阶多极扩展,这 里,k被设置为4,目的是使估计值的误差小于102。
[0049] 根据公式(1)计算得到的带电粒子在电场中的电势能,进一步计算电场力。处于位 置z且带单位电荷的粒子受到的电场力是:
[0050] (ReCe7(z)),-Im(e/ (z))) (2)
[0051] 其中:
:,Re表示复数的实部,Im表示复数的虚部。
[0052] 基于上述方式,假设N表示KD-Tree中圆心为zo、半径为r的节点,该节点包含了k个 带电粒子{vo,…,vk}。为了近似计算任意一个位置为z的粒子vGV所受的斥力,要从KD-Tree 的根节点开始,前序遍历:在节点N,如果| z-zq | >r,那么就用公式(1)和(2)近似计算该节 点的粒子群对v产生的斥力。反之,则根据节点类型做不同处理:如果该节点是内部节点,则 继续遍历它的左右子节点;如果该节点是叶子节点,则按原始的方式逐一计算v与该节点中 其他粒子之间的斥力。
[0053] (4d)计算顶点所受的弹力:由于弹力与距离的关系往往是对数关系,而不是类似 胡克定律的线性关系,因此本发明采用的弹力计算公式为:
[0054] Attraction = d2log(d/d/ )
[0055] 其中,d表示两个邻接顶点之间的欧拉距离,表示弹簧的原长。
[0056] (4e)计算顶点所受的合力:每个顶点所受的合力包括来自其他所有顶点的斥力, 以及来自邻接顶点的弹力,所以顶点所受合力的计算公式如下:
[0057] Ft〇tai = F rep 1+Fattr
[0058] 其中,Ftotal表示合力,Frepl表示顶点所受斥力,Fattr表示顶点所受弹力。
[0059] 所述的顶点位置更新包括以下步骤:
[0060] (5a)计算顶点移动的位移:经典的力引导(force-directed)布局的原理是,先计 算出所有顶点所受的弹力和斥力,并根据合力的大小和方向将顶点移动到新的位置,从而 逐步减小顶点所受的力;对所有顶点进行多次迭代计算,使图形系统达到稳定平衡状态,从 而得到最终布局。因此,在上一步计算得到顶点的合力后,这一步要做的是更新顶点的位 置。
[0061] 由于图形的初始布局是随机生成的,当初始布局比较差时,在计算过程中如果某 些顶点移动太远或太近,都可能导致某些顶点在两个特定的位置之间来回振荡,使图形系 统难以稳定,布局结果很差。为了科学地计算每个顶点移动的位移,本发明改进并应用传统 的模拟退火技术。
[0062] 由力引导布局算法的原理可知,计算布局的过程实际就是每个顶点寻找最佳位置 的过程,相当于把布局的计算问题转换为一个全局优化问题;而模拟退火就是一种能够在 一定时间内找到全局最优解的技术。该技术的原理是,首先将系统加热到一定的温度(这相 当于随机初始化图形的布局),加热使顶点的能量变大(这相当于初始状态时顶点受到比较 大的合力),使顶点离开原来的位置,并随机地在其他位置移动,以较大的概率找到能量比 原来更低的位置;然后对系统进行退火冷却的操作,此时顶点的移动范围逐渐缩小,进而收 敛到相对稳定的位置。计算顶点移动位移的公式如下:
[0064] 其中,Ftcltal(v)表示顶点v所受的合力,t表示模拟退火过程中的温度。t被初始化 为欠* ,(其中,K是一个超参数,本发明将其设置为0.1 ;V表示当前图形的顶点总数)。另 外,t会随着迭代次数的增加而递减:
[0065] t = t氺入
[0066] 其中,A是一个超参数,本发明将其设置为〇. 9。
[0067] (5b)更新顶点的位置:根据每个顶点移动的位移,将顶点移动到新的位置:
[0068] posnew(v) = pos〇id (v)+di sp ( V )
[0069] 其中,p〇Snew(V)表示顶点V的新位置,口0 8。1〇1(>)表示顶点¥的旧位置,(118口(>)表示 顶点V需要移动的位移。
[0070] 所述的图形布局递归计算包括以下步骤:
[0071] (6a)计算最粗粒度图形的布局:随机初始化最粗粒度图形的顶点位置,根据前面 所述的方法计算最终的稳定布局。由于最粗粒度图形是顶点个数最少的子图,因此可以很 快计算出该图形的布局。
[0072] (6b)递归计算更细粒度图形的布局:用最粗粒度图形的顶点位置,初始化更细粒 度图形的顶点的位置(即,将粗粒度布局作为细粒度布局的骨架),然后再计算细粒度图形 的布局。不断递归计算,直至得到原始图形的最终布局。
[0073]所述的图形布局层次化绘制包括以下步骤:
[0074] (7a)计算顶点的概率密度分布:为了计算顶点的概率密度分布,本发明将利用非 参数估计方法--核密度估计(Kernel Density Estimation,KDE)。核密度是一种估计连 续随机变量的概率密度函数的非参数估计方法。假设顶点坐标(x,y)是一种连续随机变量, {(XI,y 1),…,(xn,yn)}是符合概率密度函数f (x,y)的n个独立同分布的样本点,那么总体的 核密度估计为:
[0076]其中,K表示核函数;hx、hy表示带宽,是一个调整核密度估计曲线的平滑程度的参 数。核函数的选定非常重要。为了表现出顶点的概率密度比图形中的空白位置要高,可以把 顶点假想为一座山峰的最高点:假设当前只有一个最高点,则离最高点越远的位置,其海拔 高度越低,概率密度也越低,直至为零。基于这个假设,本发明选定均匀对称的二维高斯函 数作为核函数。二维高斯函数的公式如下:
[0078]其中,心和~表示均值,〇x和%表示方差。由于每个顶点都处于以自身为最高点的 二维高斯曲面中,当两个顶点互相靠近时,彼此的二维高斯曲面将互相叠加,从而估计出顶 点的概率密度分布。
[0079] (7b)绘制图形布局:由于大图的顶点个数非常多(几十万或者几百万等等),而图 形的绘制空间受计算机屏幕大小所限制,导致大量顶点互相重叠,难以分辨图形的布局。因 此,本发明根据已计算好的顶点概率密度分布,将互相堆叠或邻近的顶点合并成一个顶点, 并且合并相应的边,从而绘制出粗粒度图形的布局,便于观察图形的整体特征。
[0080] (7c)图形交互设计:为了观察图形的局部分布情况,本发明设计了两个科学有效 的交互操作:缩放操作和平移操作。利用缩放操作,可以缩小和放大图形。特别是当放大图 形某一局部时,可以将粗粒度图形的单个顶点分裂成多个顶点,并绘制相应的边,显示出细 粒度层次的布局。利用平移操作,可以将当前粒度的图形在屏幕外部分移动到屏幕内,从而 进行观察。
[0081] 缩放操作的具体过程为(假设每次缩小或放大的倍数为m):首先,将鼠标移动到需 要缩放的位置,记录当前的鼠标位置P;接着,如果进行的是放大操作,则将所有顶点的坐标 乘以倍数m,反之则乘以1/m,记录当前的鼠标位置为q;然后将锚点从位置q平移到位置p,其 他顶点则按照同样的平移量I q_P I进行平移;最后绘制图形。
[0082] 平移操作的具体过程为:首先,将鼠标移动到需要平移的位置,记录此时的鼠标位 置P;接着,拖拽整个图形至目标位置,记录此时的鼠标位置为q;然后,计算锚点的平移量, 并根据平移量移动所有顶点的坐标;最后绘制图形。
[0083] 本发明的另一目的通过下述技术方案实现:基于层次化模型的数据可视化系统, 包括:
[0084] 图形数据准备模块:给每个顶点和每一条无向边都赋予特定的ID号,并按照一定 格式生成结构化的图形数据文件。
[0085] 图形顶点采样分层模块:对原始图形的顶点集合进行递归采样,生成顶点个数逐 渐减少的多个顶点集合。
[0086] 子图顶点连接模块:根据原始图形的几何结构特征,采用广度优先搜索方式,连接 距离邻近的顶点,生成子图的边集,得到完整的子图数据。
[0087] 图形顶点受力计算模块:随机初始化原始图形中每个顶点的位置,近似计算顶点 所受斥力,并具体计算顶点所受弹力,将斥力和弹力相加得到合力。
[0088] 顶点位置更新模块:根据每个顶点所受的合力,将顶点移动到新的位置。
[0089] 图形布局递归计算模块:从最粗粒度的子图开始计算布局,并以粗粒度图形布局 为基础,递归地计算每个子图的布局,最终得到原始图形的布局。
[0090] 图形布局层次化绘制模块:根据屏幕大小,绘制合适粒度层次的子图,或者直接绘 制原始图形;允许用户缩放或移动图形。
[0091] 进一步地,所述的图形数据准备模块具体用于:
[0092] 将输入数据集中的每个对象都映射成一个顶点,将两个对象之间的任意联系都映 射成一条无向边;为每个顶点和每一条边都赋予不重复的ID号,从而生成结构化的图形数 据文件。
[0093]进一步地,所述的图形顶点采样分层模块具体用于:
[0094]该模块利用在原始顶点集合中生成最大独立集合的方式,从原始图形的顶点集合 中采样生成更小的顶点集合。假设图形G=(V,E),其中,V表示顶点集合,E表示边的集合;那 么集合S C V是一个独立集合的充要条件是:该集合中任意两个顶点的图形距离大于或等 于2(其中,图形距离是指两个顶点在图形中的最短路径)。
[0095]图G可以生成多个MIS,但每个MIS都不是其他MIS的子集。生成MIS方法是,随机选 取顶点VlGV|Vl加入到集合S中,同时把viv中删除;然后再把^的所有邻接节点从V中 删除;重复上述操作直至V为空。最后得到的独立集合S就是当前图形的MIS,也就是子图的 点集。
[0096] 该模块会自动判断是否应停止采样分层操作:在生成一系列粒度不断粗化的顶点 集合¥1,¥2,.",'\^之后(其中1^表示子图的个数),当2 1^01311^61'(6())(01311^61'(6())表示原 始图形的直径)时,MIS采样分层操作就停止。
[0097] 进一步地,所述的子图顶点连接模块具体用于:
[0098] 计算原始图形的平均度,并根据平均度,对一系列粒度不断粗化的图形的顶点集 合%,%,…,Vk所对应的边集进行重构。重构边集时,根据上一层图形的几何特征寻找每个 顶点的新邻接点。
[0099] 假设将图形表示为Gi(0<i<k),其对应的顶点集合表示为Vi,对应的边集表示为 Ei。在重构的过程中,为了让粗粒度图形保持细粒度图形的几何特征,,不同粒度层次之间 的子图的平均度是相同的,即,
[0100] avgDeg(Gi) =avgDeg(Gi-i)
[0101] 其中,avgDeg (Gi) = 2 | Ei | / | Vi |。假设细粒度图形Gi-i = (Vi-i,Ei-i),粗粒度图形Gi =(Vi,Ei)。其中Ei未知,则由平均度可知:
[0102] 2|Ei|/|Vi| =2|Ei-i|/|Vi-i
[0103] 即,|Ed = lE^I ( IVj/IV^I )。然后,计算粗粒度图形中每个顶点所要连接的新邻 接点个数m,P:
[0104] ni,P= | Ei | (ru -i,p/ | Ei-i |)
[0105] 其中,m-u表示细粒度图形中的同一顶点的邻接点个数;0<i彡k,0彡p彡|1|。 [010 6]本发明利用广度优先搜索(Breadth-First Search,BFS)算法寻找邻接点:选取图 Gi的顶点vPGVi,该顶点同时存在于图Gi-冲;以^为根节点,在图Gi-冲进行BFS查找;如果 当前查找的顶点Vq G Vi-l也存在于顶点集合Vi中,那么就把Vq放入Vp的新邻接点集合Np中,然 后继续查找,直至邻接节点的个数达到预先指定的数量。不断重复上述操作,直至遍历完I 中所有的顶点。
[0107] 进一步地,所述的图形顶点受力计算模块具体用于:
[0108] 首先随机初始化每个顶点的位置,为了促进算法收敛,本发明设置以下的初始化 方式:
[0109] xj = randi%^/^, y; = rand2%vi/V〇
[0110] 其中,(Xi,yi)表示顶点i在二维空间中的坐标,randi和rand2表示两个不同的随机 数,Vo表示原始图形的顶点个数。这种随机初始化有助于顶点被尽可能均匀地被初始化在 以原点为中心的正方形区域内(该正方形区域的大小与顶点的个数成正比关系),从而避免 顶点的初始位置过于分散或过于重叠。
[cm]本发明结合多极扩展定理,基于顶点的空间分布,构建空间划分树,即把相同区域 的顶点归到同一个空间树节点内,根据当前顶点与其他顶点的距离,近似计算每个顶点所 受的斥力。
[0112] 本发明利用K维树(K-Dimensional Tree,KD_Tree)作为空间划分树。
[0113]本发明采用"轴对齐分割"的方法构建KD-Tree,选择坐标系中的某一坐标轴的某 一位置的垂直分割面进行空间的分割。由于本发明研究的是二维图形的布局,因此这里只 讨论二维坐标系中KD-Tree的构建方法:首先,将整个二维空间初始为树的根节点,并根据 当前树的深度选择垂直分割面所在的坐标轴(例如,在根节点时选择x轴,当深度加1时选择 y轴,以此方式轮换坐标轴);然后,以某种方式指定垂直分割面位于坐标轴的具体位置,并 用该分割面将当前的空间区域划分成两部分,生成左右子节点。不断重复以上步骤,直至 当前区域的点的个数小于某个阈值。本发明采用二进制分割法指定垂直分割面位于坐标轴 上的具体位置:(假设,把 x轴当作分割面所在坐标轴)首先,将该区域内所有顶点的x坐标转 换为二进制数字,然后比较所有二进制数字的最高有效位,把最高有效位为〇的点放入左子 节点、为1的点放入右子节点;最后,当该区域内的所有顶点被划分完之后,把比较的二进制 位从最高有效位左移一位,以供下次选择x轴划分时使用。
[0114]根据多极扩展定理,本发明将通过遍历KD-Tree来计算斥力。对于距离当前顶点足 够远的一群顶点,本发明采用如下方式进行计算:
[0115]首先,假设C= {ci,"_,cm}是由m个带电荷Q(C) = {qi,"_,qm}的粒子组成的集合,这 m个带电粒子位于不同的位置p(C) = {Pl,…,pm}。其中,所有顶点的位置p = € E2 都被标识为复数形式3 = X + iy e C;
[0116]假设一个半径为r且圆心为ZQ的圆形包含了 m个带有电荷且位于不同位置的粒子; 那么,对于任何满足I z-zo | >r的位置z GC,这m个带电粒子对z产生的总的电势能用以下公 式计算:
(1) 该公式进行的是k阶多极扩展,这 里,k被设置为4,目的是使估计值的误差小于102。
[0119] 根据公式(1)计算得到的带电粒子在电场中的电势能,进一步计算电场力。处于位 置z且带单位电荷的粒子受到的电场力是:
[0120] (ReCe7(z)),-Im(e/ (z))) (2)
[0121] 其中
Re表示复数的实部,Im表示复数的虚部。
[0122] 基于上述方式,假设N表示KD-Tree中圆心为zo、半径为r的节点,该节点包含了k个 带电粒子{vo,…,vk}。为了近似计算任意一个位置为z的粒子vGV所受的斥力,要从KD-Tree 的根节点开始,前序遍历:在节点N,如果| z-z〇| >r,那么就用公式(1)和(2)近似计算该节点 的粒子群对V产生的斥力。反之,则根据节点类型做不同处理:如果该节点是内部节点,则继 续遍历它的左右子节点;如果该节点是叶子节点,则按原始的方式逐一计算V与该节点中其 他粒子之间的斥力。
[0123] 基于弹力与距离的对数关系,本发明采用的弹力计算公式为:
[0124] Attraction = d2log(d/d/ )
[0125] 其中,d表示两个邻接顶点之间的欧拉距离,表示弹簧的原长。
[0126] 每个顶点所受的合力包括来自其他所有顶点的斥力,以及来自邻接顶点的弹力, 所以本发明计算顶点所受合力如下:
[0127] Ft〇tai = F rep 1+Fattr
[0128]其中,?1;。1;31、?1^1、?31^分别表示顶点所受的合力、斥力、弹力。
[0129] 进一步地,所述的顶点位置更新模块具体用于:
[0130] 根据每个顶点所合力的大小和方向将顶点移动到新的位置,从而逐步减小顶点所 受的力;对所有顶点进行多次迭代计算,使图形系统达到稳定平衡状态,从而得到最终布 局。
[0131] 由于图形的初始布局是随机生成的,当初始布局比较差时,在计算过程中如果某 些顶点移动太远或太近,都可能导致某些顶点在两个特定的位置之间来回振荡,使图形系 统难以稳定。为了科学地计算每个顶点移动的位移,本发明改进并应用传统的模拟退火技 术。
[0132] 由力引导布局算法的原理可知,计算布局的过程实际就是每个顶点寻找最佳位置 的过程,相当于把布局的计算问题转换为一个全局优化问题;而模拟退火就是一种能够在 一定时间内找到全局最优解的技术。本发明改进模拟退火技术,计算顶点移动位移的公式 如下:
[0134] 其中,Ftcltal(v)表示顶点v所受的合力,t表示模拟退火过程中的温度。t被初始化为 夂*#,(其中,1(是一个超参数,本发明将其设置为0.1^表示当前图形的顶点总数)。另 外,t会随着迭代次数的增加而递减:
[0135] t = t* 入
[0136] 其中,A是一个超参数,本发明将其设置为〇. 9。
[0137] 更新顶点的位置,根据每个顶点移动的位移,将顶点移动到新的位置:
[0138] posnew(v) = pos〇id (v)+di sp ( V )
[0139] 其中,p〇Snew(V)表示顶点V的新位置,口0 8。1〇1(>)表示顶点¥的旧位置,(118口(>)表示 顶点V需要移动的位移。
[0140] 进一步地,所述的图形布局递归计算模块具体用于:
[0141] 计算最粗粒度图形的布局,随机初始化最粗粒度图形的顶点位置,根据前面所述 的方法计算最终的稳定布局。由于最粗粒度图形是顶点个数最少的子图,因此可以很快计 算出该图形的布局。
[0142] 本发明将粗粒度布局作为细粒度布局的骨架,递归计算更细粒度图形的布局。用 最粗粒度图形的顶点位置,初始化更细粒度图形的顶点的位置,然后再计算细粒度图形的 布局。不断递归计算,直至得到原始图形的最终布局。
[0143]进一步地,所述的图形布局层次化绘制模块具体用于:
[0144] 本发明将利用非参数估计方法--核密度估计(Kernel Density Estimation, KDE),来计算顶点的概率密度分布。核密度是一种估计连续随机变量的概率密度函数的非 参数估计方法。假设顶点坐标(x,y)是一种连续随机变量,{(X1,yi),…,(Xn,y n)}是符合概 率密度函数f(x,y)的n个独立同分布的样本点,那么总体的核密度估计为:
[0146]其中,K表示核函数;hx、hy表示带宽,是一个调整核密度估计曲线的平滑程度的参 数。核函数的选定非常重要。为了表现出顶点的概率密度比图形中的空白位置要高,本发明 选定均匀对称的二维高斯函数作为核函数。二维高斯函数的公式如下:
[0148] 其中,iaPiiy表示均值,~和%表示方差。由于每个顶点都处于以自身为最高点的 二维高斯曲面中,当两个顶点互相靠近时,彼此的二维高斯曲面将互相叠加,从而估计出顶 点的概率密度分布。
[0149] 本发明根据已计算好的顶点概率密度分布,将互相堆叠或邻近的顶点合并成一个 顶点,并且合并相应的边,并将顶点和无向边通过GPU渲染到屏幕上,从而绘制出粗粒度图 形的布局,便于观察图形的整体特征。
[0150] 本发明设计了两个科学有效的交互操作:缩放操作和平移操作。利用缩放操作,可 以缩小和放大图形。特别是当放大图形某一局部时,可以将粗粒度图形的单个顶点分裂成 多个顶点,并绘制相应的边,显示出细粒度层次的布局。利用平移操作,可以将当前粒度的 图形在屏幕外部分移动到屏幕内,从而进行观察。
[0151]缩放操作的具体过程为(假设每次缩小或放大的倍数为m):首先,将鼠标移动到需 要缩放的位置,记录当前的鼠标位置P;接着,如果进行的是放大操作,则将所有顶点的坐标 乘以倍数m,反之则乘以1/m,记录当前的鼠标位置为q;然后将锚点从位置q平移到位置p,其 他顶点则按照同样的平移量I q_P I进行平移;最后绘制图形。
[0152] 平移操作的具体过程为:首先,将鼠标移动到需要平移的位置,记录此时的鼠标位 置P;接着,拖拽整个图形至目标位置,记录此时的鼠标位置为q;然后,计算锚点的平移量, 并根据平移量移动所有顶点的坐标;最后绘制图形。
[0153] 本发明相对于现有技术具有如下的优点及效果:
[0154] 1、本发明提出了层次化模型,并改进了模拟退火策略,不仅获得了美观的布局效 果,降低了振荡的概率,提高了效果稳定性,而且减少了计算布局的迭代次数,加快了运行 的时间。
[0155] 2、本发明巧妙利用了物理学中的多极扩展定理,通过对图形顶点划分空间区域、 构建KD-Tree的方法,近似计算了顶点所受斥力,避免了直接计算顶点斥力的高计算复杂 度,大大提高了布局算法的性能,使本发明更加适用于大数据的快速可视化分析。
[0156] 3、本发明利用层次化模型来绘制不同粒度层次的图形,解决了大数据图形布局存 在的在有限屏幕空间中顶点大量重叠、难以观察的问题。另外,本发明设计的缩放操作和平 移操作,方便用户观察图形布局的整体特征和局部规律,非常有助于实现知识挖掘的目的。
【附图说明】
[0157] 图1为本发明中公开的一种基于层次化模型的数据可视化方法的总体流程图;
[0158] 图2为基于层次化模型的图形布局计算流程图;
[0159] 图3为本发明中公开的一种基于层次化模型的数据可视化系统的组成框图。
【具体实施方式】
[0160] 下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限 于此。
[0161] 实施例
[0162] 如图1所示,一种基于层次化模型的数据可视化方法的总体流程图,该基于层次化 模型的数据可视化方法包括以下步骤:
[0163] S1、图形数据准备:给每个顶点和每一条无向边都赋予特定的ID号,并按照一定格 式生成结构化的图形数据文件。
[0164] S2、图形顶点采样分层:对原始图形的顶点集合进行递归采样,生成顶点个数逐渐 减少的多个顶点集合。
[0165] S3、子图顶点连接:根据原始图形的几何结构特征,采用广度优先搜索方式,连接 距离邻近的顶点,生成子图的边集,得到完整的子图数据。
[0166] S4、图形顶点受力计算:随机初始化原始图形中每个顶点的位置,近似计算顶点所 受斥力,并具体计算顶点所受弹力,将斥力和弹力相加得到合力。
[0167] S5、顶点位置更新:根据每个顶点所受的合力,将顶点移动到新的位置。
[0168] S6、图形布局递归计算:从最粗粒度的子图开始计算布局,并以粗粒度图形布局为 基础,递归地计算每个子图的布局,最终得到原始图形的布局。
[0169] S7、图形布局层次化绘制:根据屏幕大小,绘制合适粒度层次的子图,或者直接绘 制原始图形;允许用户缩放或移动图形。
[0170] 下面对本发明提供的一种基于层次化模型的数据可视化方法作详细说明:
[0171] ( - )步骤S1、图形数据准备。S11、将输入数据集中的每个对象都映射成一个顶点; S12、将两个对象之间的任意联系都映射成一条无向边;S13、为每个顶点和每一条边都赋予 不重复的ID号,从而生成结构化的图形数据文件。以Facebook数据集为例,假如我们从 Facebook网站上获取到了某年某月内的整个数据集,数据集的内容包括:用户昵称、好友、 已关注对象、居住地、所在公司\所在学校、生日等等。对于这份原生数据,本发明的图形数 据准备模块会找出所有不重复的用户,然后给每个用户当作一个特定的顶点,赋予唯一的 ID号,并构建用户名和ID号之间的映射;然后根据用户与用户之间是否存在关系(例如:好 友关系)生成无向边,并给每一条边赋予唯一的ID号;最后将顶点和边的ID按照结构化的格 式生成图形数据文件。
[0172] (二)步骤S2、图形顶点采样分层。该步骤利用在原始顶点集合中生成最大独立集 合的方式,从原始图形的顶点集合中采样生成更小的顶点集合。假设图形G=(V,E),其中,V 表示顶点集合,E表示边的集合;那么集合S C 7是一个独立集合的充要条件是:该集合中 任意两个顶点的图形距离大于或等于2(其中,图形距离是指两个顶点在图形中的最短路 径)。
[0173] 生成MIS方法是,随机选取顶点^£¥,把^加入到集合3中,同时把^从¥中删除;然 后再把Vl的所有邻接节点从V中删除;重复上述操作直至V为空。最后得到的独立集合S就 是当前图形的MIS,也就是子图的点集。
[0174] 该步骤会自动判断是否应停止采样分层操作:在生成一系列粒度不断粗化的顶点 集合¥1,¥2,.",'\^之后(其中1^表示子图的个数),当2 1^01311^61'(6())(01311^61'(6())表示原 始图形的直径)时,MIS采样分层操作就停止。
[0175] (三)步骤S3、子图顶点连接。计算原始图形的平均度,并根据平均度,对一系列粒 度不断粗化的图形的顶点集合¥1,¥ 2,…,Vk所对应的边集进行重构。重构边集时,根据上一 层图形的几何特征寻找每个顶点的新邻接点。
[0176] 假设将图形表示为Gi(0<i<k),其对应的顶点集合表示为Vi,对应的边集表示为 Ei。在重构的过程中,为了让粗粒度图形保持细粒度图形的几何特征,不同粒度层次之间的 子图的平均度是相同的,即,
[0177] avgDeg(Gi) =avgDeg(Gi-i)
[0178] 其中,avgDeg (Gi) = 2 | Ei | / | Vi |。假设细粒度图形Gi-i = (Vi-i,Ei-i),粗粒度图形Gi =(Vi,Ei)。其中Ei未知,则由平均度可知:
[0179] 2|Ei|/|Vi| =2|Ei-i|/|Vi-i
[0180] 即,|Ed = lE^I ( IVj/IV^I )。然后,计算粗粒度图形中每个顶点所要连接的新邻 接点个数m,P:
[0181 ] ni,P= | Ei | (ru -i,p/ | Ei-i |)
[0182] 其中,m-u表示细粒度图形中的同一顶点的邻接点个数;0<i彡k,0彡p彡III。
[0183] 本发明利用广度优先搜索算法寻找邻接点:选取图Gi的顶点VpGl,该顶点同时存 在于图Gi-冲;以力为根节点,在图Gi-冲进行BFS查找;如果当前查找的顶点VqGVH也存在 于顶点集合乂:中,那么就把v q放入^的新邻接点集合^中,然后继续查找,直至邻接节点的 个数达到预先指定的数量。不断重复上述操作,直至遍历完Vi中所有的顶点。
[0184] 如图2所示,图形布局的计算主要包括计算顶点所受合力、更新顶点位置,以及计 算出当前子图的正确布局后的递归布局计算等步骤。
[0185] (四)步骤S4、图形顶点受力计算。首先随机初始化每个顶点的位置,为了促进算法 收敛,本发明设置以下的初始化方式:
[0186] Xi = mnc^o/o'/V。,% .=. rand2%、/V0
[0187] 其中,(Xi,yi)表示顶点i在二维空间中的坐标,randi和rand2表示两个不同的随 机数,Vo表示原始图形的顶点个数。这种随机初始化有助于顶点被尽可能均匀地被初始化 在以原点为中心的正方形区域内(该正方形区域的大小与顶点的个数成正比关系),从而避 免顶点的初始位置过于分散或过于重叠。
[0188]本发明结合多极扩展定理,基于顶点的空间分布,构建空间划分树,即把相同区域 的顶点归到同一个空间树节点内,根据当前顶点与其他顶点的距离,近似计算每个顶点所 受的斥力。
[0189]本发明利用K维树作为空间划分树,并采用"轴对齐分割"的方法构建KD-Tree。选 择坐标系中的某一坐标轴的某一位置的垂直分割面进行空间的分割。由于本发明研究的是 二维图形的布局,因此这里只讨论二维坐标系中KD-Tree的构建方法:首先,将整个二维空 间初始为树的根节点,并根据当前树的深度选择垂直分割面所在的坐标轴(例如,在根节点 时选择x轴,当深度加1时选择y轴,以此方式轮换坐标轴);然后,以某种方式指定垂直分割 面位于坐标轴的具体位置,并用该分割面将当前的空间区域划分成两部分,生成左右子节 点。不断重复以上步骤,直至当前区域的点的个数小于某个阈值。本发明采用二进制分割法 指定垂直分割面位于坐标轴上的具体位置:(假设,把x轴当作分割面所在坐标轴)首先,将 该区域内所有顶点的x坐标转换为二进制数字,然后比较所有二进制数字的最高有效位,把 最高有效位为〇的点放入左子节点、为1的点放入右子节点;最后,当该区域内的所有顶点被 划分完之后,把比较的二进制位从最高有效位左移一位,以供下次选择x轴划分时使用。 [0190]根据多极扩展定理,本发明将通过遍历KD-Tree来计算斥力。对于距离当前顶点足 够远的一群顶点,采用如下方式进行计算:
[0191]首先,假设C= {ci,-_,cm}是由m个带电荷Q(C) = {qi,-_,qm}的粒子组成的集合,这 m个带电粒子位于不同的位置p(C) = {pi,…,pm}。其中,所有顶点的位置= (x, y) e E2 都被标识为复数形式= x + iy e C。
[0192]假设一个半径为r且圆心为ZQ的圆形包含了 m个带有电荷且位于不同位置的粒子; 那么,对于任何满足I z-zo | >r的位置z GC,这m个带电粒子对z产生的总的电势能用以下公 式计算:
(1) 。该公式进行的是k阶多极扩展,这 里,k被设置为4,目的是使估计值的误差小于10弋
[0195] 根据公式(1)计算得到的带电粒子在电场中的电势能,进一步计算电场力。处于 位置z且带单位电荷的粒子受到的电场力是:
[0196] (Re(e/(z)),-Im(e/(z))) (2)
[0197] 其中:
,Re表示复数的实部,Im表示复数的虚部。
[0198] 基于上述方式,假设N表示KD-Tree中圆心为zo、半径为r的节点,该节点包含了k个 带电粒子{vo,…,vk}。为了近似计算任意一个位置为z的粒子vGV所受的斥力,要从KD-Tree 的根节点开始,前序遍历:在节点N,如果| z-z〇| >r,那么就用公式(1)和(2)近似计算该节点 的粒子群对v产生的斥力。反之,则根据节点类型做不同处理:如果该节点是内部节点,则继 续遍历它的左右子节点;如果该节点是叶子节点,则按原始的方式逐一计算v与该节点中其 他粒子之间的斥力。
[0199] 基于弹力与距离的对数关系,本发明采用的弹力计算公式为:
[0200] Attraction = d2log(d/d/ )
[0201] 其中,d表示两个邻接顶点之间的欧拉距离,表示弹簧的原长。
[0202] 每个顶点所受的合力包括来自其他所有顶点的斥力,以及来自邻接顶点的弹力, 所以本发明计算顶点所受合力如下:
[0203] Ftotal = Frepl+Fa ttr
[0204]其中,?1;。1;31、?卿1、?3咖分别表示顶点所受的合力、斥力、弹力 。
[0205] (五)步骤S5、顶点位置更新。根据每个顶点所合力的大小和方向将顶点移动到新 的位置,从而逐步减小顶点所受的力;对所有顶点进行多次迭代计算,使图形系统达到稳定 平衡状态,从而得到最终布局。
[0206] 由于图形的初始布局是随机生成的,当初始布局比较差时,在计算过程中如果某 些顶点移动太远或太近,都可能导致某些顶点在两个特定的位置之间来回振荡,使图形系 统难以稳定。为了科学地计算每个顶点移动的位移,本发明改进并应用传统的模拟退火技 术。由力引导布局算法的原理可知,计算布局的过程实际就是每个顶点寻找最佳位置的过 程,相当于把布局的计算问题转换为一个全局优化问题;而模拟退火就是一种能够在一定 时间内找到全局最优解的技术。本发明改进模拟退火技术,计算顶点移动位移的公式如下:
[0208] 其中,Ftcltal(v)表示顶点v所受的合力,t表示模拟退火过程中的温度。t被初始化为 歹,(其中,K是一个超参数,本发明将其设置为0.1 ;V表示当前图形的顶点总数)。另 外,t会随着迭代次数的增加而递减:
[0209] t = t* 入
[0210]其中,A是一个超参数,本发明将其设置为0.9。
[0211] 更新顶点的位置,根据每个顶点移动的位移,将顶点移动到新的位置:
[0212] posnew(v) = pos〇id (v)+di sp ( V )
[0213] 其中,p0Snew(v)表示顶点V的新位置,p0Sc)ld( v)表示顶点¥的旧位置,disp(v)表示 顶点V需要移动的位移。
[0214] (六)步骤S6、图形布局递归计算。计算最粗粒度图形的布局,随机初始化最粗粒度 图形的顶点位置,根据前面所述的方法计算最终的稳定布局。由于最粗粒度图形是顶点个 数最少的子图,因此可以很快计算出该图形的布局。
[0215] 本发明将粗粒度布局作为细粒度布局的骨架,递归计算更细粒度图形的布局。用 最粗粒度图形的顶点位置,初始化更细粒度图形的顶点的位置,然后再计算细粒度图形的 布局。不断递归计算,直至得到原始图形的最终布局。
[0216](七)步骤S7、图形布局层次化绘制。本发明将利用非参数估计方法一一核密度估 计,来计算顶点的概率密度分布。核密度是一种估计连续随机变量的概率密度函数的非参 数估计方法。假设顶点坐标(x,y)是一种连续随机变量,{( X1,yi),…,(xn,yn)}是符合概率 密度函数f(x,y)的n个独立同分布的样本点,那么总体的核密度估计为:
[0218]其中,K表示核函数;hx、hy表示带宽,是一个调整核密度估计曲线的平滑程度的参 数。核函数的选定非常重要。为了表现出顶点的概率密度比图形中的空白位置要高,本发明 选定均匀对称的二维高斯函数作为核函数。二维高斯函数的公式如下:
[0220] 其中,iaPiiy表示均值,(^和力表示方差。由于每个顶点都处于以自身为最高点的 二维高斯曲面中,当两个顶点互相靠近时,彼此的二维高斯曲面将互相叠加,从而估计出顶 点的概率密度分布。
[0221] 本发明根据已计算好的顶点概率密度分布,将互相堆叠或邻近的顶点合并成一个 顶点,并且合并相应的边,并将顶点和无向边通过GPU渲染到屏幕上,从而绘制出粗粒度图 形的布局,便于观察图形的整体特征。
[0222] 本发明设计了两个科学有效的交互操作:缩放操作和平移操作。利用缩放操作, 可以缩小和放大图形。特别是当放大图形某一局部时,可以将粗粒度图形的单个顶点分裂 成多个顶点,并绘制相应的边,显示出细粒度层次的布局。利用平移操作,可以将当前粒度 的图形在屏幕外部分移动到屏幕内,从而进行观察。
[0223] 缩放操作的具体过程为(假设每次缩小或放大的倍数为m):首先,将鼠标移动到需 要缩放的位置,记录当前的鼠标位置P;接着,如果进行的是放大操作,则将所有顶点的坐标 乘以倍数m,反之则乘以1/m,记录当前的鼠标位置为q;然后将锚点从位置q平移到位置p,其 他顶点则按照同样的平移量I q_P I进行平移;最后绘制图形。
[0224] 平移操作的具体过程为:首先,将鼠标移动到需要平移的位置,记录此时的鼠标位 置P;接着,拖拽整个图形至目标位置,记录此时的鼠标位置为q;然后,计算锚点的平移量, 并根据平移量移动所有顶点的坐标;最后绘制图形。
[0225] 如图3所示,一种基于层次化模型的数据可视化系统的结构框图,该基于层次化模 型的数据可视化系统包括:
[0226] 图形数据准备模块:给每个顶点和每一条无向边都赋予特定的ID号,并按照一定 格式生成结构化的图形数据文件。
[0227] 图形顶点采样分层模块:对原始图形的顶点集合进行递归采样,生成顶点个数逐 渐减少的多个顶点集合。
[0228] 子图顶点连接模块:根据原始图形的几何结构特征,采用广度优先搜索方式,连接 距离邻近的顶点,生成子图的边集,得到完整的子图数据。
[0229] 图形顶点受力计算模块:随机初始化原始图形中每个顶点的位置,近似计算顶点 所受斥力,并具体计算顶点所受弹力,将斥力和弹力相加得到合力。
[0230]顶点位置更新模块:根据每个顶点所受的合力,将顶点移动到新的位置。
[0231] 图形布局递归计算模块:从最粗粒度的子图开始计算布局,并以粗粒度图形布局 为基础,递归地计算每个子图的布局,最终得到原始图形的布局。
[0232] 图形布局层次化绘制模块:根据屏幕大小,绘制合适粒度层次的子图,或者直接绘 制原始图形;允许用户缩放或移动图形。
[0233] 综上所述,本发明的工作原理:本发明是一种基于层次化模型的数据可视化方法。 方法针对基本布局算法计算大图时出现振荡导致布局效果不理想,以及迭代次数多、运行 时间长的问题,本发明提出了层次化模型的方法。对大图进行采样得到子图,并对该子图继 续采样生成更小的子图,按照这种方式递归地生成一系列子图,从而形成粒度不断粗化 (粒度越粗,表示顶点个数越少)的层次化结构;接着,随机初始化最粗粒度图形的布局并计 算其正确布局,然后用该布局对下一层细粒度图形进行初始化,再继续计算该细粒度图形 的正确布局;以此方式递归地计算出原始图形的最终布局。这种层次化模型的方法降低了 振荡的概率,提高了布局的效果,同时减少了迭代次数,加快了运行的时间。其次,针对计算 斥力的效率低的问题,本发明根据多极扩展定理,利用KD-Tree对斥力进行了近似计算,从 而大幅度提高算法效率。
[0234] 另外,在改进和优化布局算法之后,本发明进一步研究图形的绘制和交互方式。由 于大图的数据量多,导致顶点大量重叠,不利于用户进行可视化分析。对此,本发明设计了 层次化绘制图形的算法:利用KDE非参数估计方法计算大图的顶点概率密度分布,然后根据 密度分布情况,合并重叠或靠近的顶点及其对应的边,从而展现粗粒度图形的布局,呈现出 大图的基本特征;同时,当放大观察局部细节时,被合并的顶点或边也可以被分裂复原。根 据这种层次化绘制图形的策略,本发明还设计了必要而有效的交互方式:缩放操作和平移 操作。缩放操作是根据图形的绘制方式设计的:当图形的某一局部被放大时,算法会根据顶 点的密度分布,将原本合并的顶点分裂成原来的多个顶点,相应地恢复原来的边,从而显示 出细粒度图形的布局。用户进行缩放操作后,部分图形会在屏幕之外无法观看,而平移操作 针对这个问题向用户提供了移动图形的功能。当用户对图形的某一位置按住并拖拽鼠标, 平移操作就会重新渲染图形布局,将原本在屏幕外部的布局显示到屏幕内部。
[0235] 上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的 限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化, 均应为等效的置换方式,都包含在本发明的保护范围之内。
【主权项】
1. 一种基于层次化模型的数据可视化方法,其特征在于,所述数据可视化方法包括下 列步骤: 51、 图形数据准备步骤,将原生数据集中的对象和对象之间的关系映射成顶点和无向 边,并分别为所有的顶点和无向边赋予ID号,按照一定格式生成结构化的图形数据文件; 52、 图形顶点采样分层步骤,对原始图形的顶点集合进行递归采样,生成顶点个数逐渐 减少的多个顶点集合; 53、 子图顶点连接步骤,根据原始图形的几何结构特征,结合广度优先捜索的方法,连 接距离邻近的顶点,生成子图的边集,得到完整的子图数据; 54、 图形顶点受力计算步骤,随机初始化原始图形中每个顶点的位置,近似计算顶点所 受斥力,并具体计算顶点所受弹力,将斥力和弹力相加得到合力; 55、 顶点位置更新步骤,根据每个顶点所受的合力,将顶点移动到新的位置; 56、 图形布局递归计算步骤,从最粗粒度的子图开始计算布局,并W粗粒度图形布局为 基础,递归地计算每个子图的布局,最终得到原始图形的布局; 57、 图形布局层次化绘制步骤,根据屏幕大小,绘制合适粒度层次的子图,或者直接绘 制原始图形;允许用户缩放或移动图形。2. 根据权利要求1所述的基于层次化模型的数据可视化方法,其特征在,所述S4、图形 顶点受力计算步骤具体如下:541、 假设C=ki,…,Cm}是由m个带电荷Q(C) = {qi,…,qm}的粒子组成的集合,运m个带 电粒子位于不同的位置P(C) = {pi,…,PmK其中,所有顶点的位置 都被标 识为复数形式假设一个半径为r且圆屯、为ZO的圆形包含了 m个带有电荷且位于不同位置的粒子;那么, 对于任何满足I Z-ZOI〉r的位置Z GC,运m个带电粒子对Z产生的总的电势能用W下公式计 算:(1) 其中式(1)进行的是k阶多极扩展,运里,k 被设置为4;542、 根据公式(1)计算得到的带电粒子在电场中的电势能,进一步计算处于位置Z且带 单位电荷的粒子受到的电场力是: (Re(e'(z)),-Im(e'(z))) (2) 其中I示复数的实部,Im表示复数的虚部; 543、 基于上述式(2),假设N表示KD-Tree中圆屯、为Z0、半径为r的节点,该节点包含了k个 带电粒子Ivo,…,vk},为了近似计算任意一个位置为Z的粒子VEV所受的斥力,要从邸-Tree 的根节点开始,前序遍历:在节点N,如果I z-zol〉r,那么就用公式(1)和(2)近似计算该节点 的粒子群对V产生的斥力;反之,则根据节点类型做不同处理:如果该节点是内部节点,则继 续遍历它的左右子节点;如果该节点是叶子节点,则按原始的方式逐一计算V与该节点中其 他粒子之间的斥力。3. 根据权利要求1所述的基于层次化模型的数据可视化方法,其特征在,所述S6、图形 布局递归计算步骤具体如下: 561、 计算最粗粒度图形的布局:随机初始化最粗粒度图形的顶点位置,根据前面所述 的方法计算最终的稳定布局; 562、 递归计算更细粒度图形的布局:用最粗粒度图形的顶点位置,初始化更细粒度图 形的顶点的位置,然后再计算细粒度图形的布局,不断递归计算,直至得到原始图形的最终 布局。4. 根据权利要求1所述的基于层次化模型的数据可视化方法,其特征在,所述S7、图形 布局层次化绘制步骤具体如下: 571、 利用非参数核密度估计方法,来计算顶点的概率密度分布,假设顶点坐标(x,y)是 一种连续随机变量,{(Xi,yi),…,(Xn,yn)}是符合概率密度函数f (X,y)的n个独立同分布的 样本点,那么总体的核密度估计为:其中 前参数; 572、 i 式如下: 其中,Jix和Jiy表示均值,Ox和Oy表示方差; 573、 根据已计算好的顶点概率密度分布,选择适合屏幕显示的布局粒度层次来绘制相 应的布局。5. 根据权利要求1所述的基于层次化模型的数据可视化方法,其特征在,所述S5、顶点 位置更新步骤具体如下: 551、 采用模拟退火技术更新顶点的位置,其中计算顶点移动位移的具体公式如下:其中,FtDtal(V)表示顶点V所受的合力,t表示模拟退火过程中的溫度,在计算不同粒度 层次图形的布局时,t的初始溫度都与图形大小直接相关,初始化t的公式如下:其中,K是超参数,本发明将其设置为0.1 ;V表示当前图形的顶点总数,另外,在计算单 个图形的布局时,t会随着迭代次数的增加而递减: t = t本A 其中,A是一个超参数,本发明将其设置为0.9; 552、 更新顶点的位置,根据每个顶点移动的位移,将顶点移动到新的位置: pOSnew(v) =p〇S〇ld(v)+disp(v) 其中,pOSnew(V)表示顶点V的新位置,pOSold(V)表示顶点V的旧位置,disp(V)表示顶点V 需要移动的位移。6. 根据权利要求1所述的基于层次化模型的数据可视化方法,其特征在,所述S3、子图 顶点连接步骤具体如下: 531、 计算图形的平均度,假设将图形表示为Gi(0《i《k),其对应的顶点集合表示为Vi, 对应的边集表示为Ei,为了让粗粒度图形保持细粒度图形的几何特征,需要保持不同层次 之间的图的平均度: avgDeg(Gi) =avgDeg(Gi-i) 其中,avgDeg(Gi) = 2 I Ei I / I Vi I,假设细粒度图形Gi-I = (Vi-I,Ei-I),粗粒度图形Gi = (Vi, Ei),其中Ei未知,则由平均度可知: 2|Ei|/|Vi|=2|Ei-i|/|Vi-i 即,I Ei I = I Ei-I I ( I Vi I / I Vi-I I ),然后,计算粗粒度图形中每个顶点所要连接的新邻接点 个数m,p: Hi,P= I Ei I (rii-l,p/ I Ei-I I ) 其中,m-i,p表示细粒度图形中的同一顶点的邻接点个数;0《i《k,0《p《 |Vi| ; 532、 寻找每个顶点的邻接点,采用广度优先捜索算法寻找邻接点:选取图Gi的顶点VpG Vi,该顶点同时存在于图Gi-冲;Wvp为根节点,在图Gi-冲进行BFS查找;如果当前查找的顶 点VqG Vl-地存在于顶点集合Vl中,那么就把Vq放入Vp的新邻接点集合Np中,然后继续查找, 直至邻接节点的个数达到预先指定的数量,不断重复上述操作,直至遍历完Vi中所有的顶 点。7. 根据权利要求1所述的基于层次化模型的数据可视化方法,其特征在,所述S2、图形 顶点采样分层步骤具体如下: 521、 采样生成子图的顶点集合,假设图形G= (V,E),其中,V表示顶点集合,E表示边的 集合;那么集合S C 1/是一个独立集合的充要条件是:该集合中任意两个顶点的图形距离 大于或等于2;即,集合S中的任意两个顶点在图G中都不是邻接点;图G可W生成多个最大独 立集合,但每个最大独立集合都不是其他最大独立集合的子集;生成最大独立集合的步骤 是,随机选取顶点ViGV,把Vi加入到集合S中,同时把Vi从V中删除;然后再把Vi的所有邻接 节点从V中删除;重复上述操作直至V为空;最后得到的独立集合S就是当前图形的最大独立 集合,也就是子图的点集; 522、 判断是否应停止采样分层操作,在生成一系列粒度不断粗化的顶点集合Vi,V2,…, Vk之后,其中k表示子图的个数,当2k《Diamete;r(G〇)时,采样分层操作停止;其中,Diameter (Go)表示原始图形的直径。8. 根据权利要求1所述的基于层次化模型的数据可视化方法,其特征在,所述S1、图形 数据准备步骤具体如下: Sl 1、将原生数据集中的每个对象都映射成一个顶点; 512、 将两个对象之间的任意联系都映射成一条无向边; 513、 为每个顶点和每一条边都赋予唯一的ID号,生成结构化的图形数据文件。9. 一种基于层次化模型的数据可视化系统,其特征在于,所述数据可视化系统包括: 图形数据准备模块,用于给每个顶点和每一条无向边都赋予特定的ID号,并按照一定 格式生成结构化的图形数据文件; 图形顶点采样分层模块,用于对原始图形的顶点集合进行递归采样,生成顶点个数逐 渐减少的多个顶点集合; 子图顶点连接模块,用于根据原始图形的几何结构特征,采用广度优先捜索方式,连接 距离邻近的顶点,生成子图的边集,得到完整的子图数据; 图形顶点受力计算模块,用于随机初始化原始图形中每个顶点的位置,近似计算顶点 所受斥力,并具体计算顶点所受弹力,将斥力和弹力相加得到合力; 顶点位置更新模块,用于根据每个顶点所受的合力,将顶点移动到新的位置; 图形布局递归计算模块,用于从最粗粒度的子图开始计算布局,并W粗粒度图形布局 为基础,递归地计算每个子图的布局,最终得到原始图形的布局; 图形布局层次化绘制模块,用于根据屏幕大小,绘制合适粒度层次的子图,或者直接绘 制原始图形,并允许用户缩放或移动图形。10.根据权利要求9所述的基于层次化模型的数据可视化方法,其特征在于,所述图形 顶点受力计算模块的工作过程如下: 假设C= ki,…,Cm}是由m个带电荷Q(C) =扣,…,qm}的粒子组成的集合,运m个带电粒 子位于不同的位置P(C) = {pi,…,PmK其中,所有顶点的位1皆巧皮标识为 复数形式假设一个半径为r且圆屯、为ZO的圆形包含了 m个带有电荷且位于不同位置的粒子;那么, 对于任何满足I Z-ZOI〉r的位置Z GC,运m个带电粒子对Z产生的总的电势能用W下公式计 算: (1) 其中,:公式(1)进行的是k阶多极扩展,运里,k 被设置为4; 根据公式(1)计算得到的带电粒子在电场中的电势能,进一步计算处于位置Z且带单位 电荷的粒子受到的电场力是: (Re(e'(z)),-Im(e'(z))) (2) 其中I示复数的实部,Im表示复数的虚部; 所述图形布局递归计算模块的工作过程如下: 计算最粗粒度图形的布局:随机初始化最粗粒度图形的顶点位置,根据前面所述的方 法计算最终的稳定布局; 递归计算更细粒度图形的布局:用最粗粒度图形的顶点位置,初始化更细粒度图形的 顶点的位置,然后再计算细粒度图形的布局,不断递归计算,直至得到原始图形的最终布 局; 所述图形布局层次化绘制模块其工作过程如下: 利用非参数核密度估计方法,来计算顶点的概率密度分布,假设顶点坐标(x,y)是一种 连续随机变量,{(Xi,yi),???,(Xn,yn)}是符合概率密度函数f(x,y)的n个独立同分布的样本 点,那么总体的核密度估计为:其中,K表示核函数;hx、hy表示带宽,是一个调整核密度估计曲线的平滑程度的参数; 选定均匀对称的二维高斯函数作为核函数,其中所述二维高斯函数的公式如下:其中,^1和1%表示均值,Ox和Oy表示方差; 根据已计算好的顶点概率密度分布,选择适合屏幕显示的布局粒度层次来绘制相应的 布局; 所述顶点位置更新模块其工作过程如下: 采用模拟退火技术更新顶点的位置,其中计算顶点移动位移的具体公式如下:其中,FtDtal(V)表示顶点V所受的合力,t表示模拟退火过程中的溫度,在计算不同粒度 层次图形的布局时,t的初始溫度都与图形大小直接相关,初始化t的公式如下:其中,K是超参数,本发明将其设置刃0.1 ;V表不当前图形的顶点总数,另外,在计算单 个图形的布局时,t会随着迭代次数的增加而递减: t = t本A 其中,A是一个超参数,本发明将其设置为0.9; 更新顶点的位置,根据每个顶点移动的位移,将顶点移动到新的位置: pOSnew(v) =p〇S〇ld(v)+disp(v) 其中,pOSnew(V)表示顶点V的新位置,pOSold(V)表示顶点V的旧位置,disp(V)表示顶点V 需要移动的位移; 所述子图顶点连接模块其工作过程如下: 计算图形的平均度,假设将图形表示为Gi(0《i《k),其对应的顶点集合表示为Vi,对应 的边集表示为Ei,为了让粗粒度图形保持细粒度图形的几何特征,需要保持不同层次之间 的图的平均度: avgDeg(Gi) =avgDeg(Gi-i) 其中,avgDeg(Gi) = 2 I Ei I / I Vi I,假设细粒度图形Gi-I = (Vi-I,Ei-I),粗粒度图形Gi = (Vi, Ei),其中Ei未知,则由平均度可知: 2. Ei 1/1 Vi I =2 I Ei-11/1 Vi-I 即,I Ei I = I Ei-I I ( I Vi I / I Vi-I I ),然后,计算粗粒度图形中每个顶点所要连接的新邻接点 个数m,p: Ili,P= Ei (ni-l,p/ Ei-I ) 其中,n i -1, P表示细粒度图形中的同一顶点的邻接点个数;0《i《k,0《P《IV i I ; 寻找每个顶点的邻接点,采用广度优先捜索算法寻找邻接点:选取图Gi的顶点VpG Vi, 该顶点同时存在于图Gi-冲;Wvp为根节点,在图Gi-冲进行WS查找;如果当前查找的顶点Vq GVi-I也存在于顶点集合Vi中,那么就把Vq放入Vp的新邻接点集合Np中,然后继续查找,直至 邻接节点的个数达到预先指定的数量,不断重复上述操作,直至遍历完Vi中所有的顶点; 所述图形顶点采样分层模块其工作过程如下: 采样生成子图的顶点集合,假设图形G=(V,E),其中,V表示顶点集合,E表示边的集合; 那么集合5 C护是一个独立集合的充要条件是:该集合中任意两个顶点的图形距离大于 或等于2;即,集合S中的任意两个顶点在图G中都不是邻接点;图G可W生成多个最大独立集 合,但每个最大独立集合都不是其他最大独立集合的子集;生成最大独立集合的步骤是,随 机选取顶点Vi G V,把Vi加入到集合S中,同时把Vi从V中删除;然后再把Vi的所有邻接节点从 V中删除;重复上述操作直至V为空;最后得到的独立集合S就是当前图形的最大独立集合, 也就是子图的点集; 判断是否应停止采样分层操作,在生成一系列粒度不断粗化的顶点集合Vi,V2,…,Vk之 后,其中1^表示子图的个数,当2'"《〇1曰1116161'(6〇)时,采样分层操作停止;其中,01曰1116161'(6〇) 表示原始图形的直径; 所述图形数据准备模块其工作过程如下: 将原生数据集中的每个对象都映射成一个顶点; 将两个对象之间的任意联系都映射成一条无向边; 为每个顶点和每一条边都赋予唯一的ID号,生成结构化的图形数据文件。
【文档编号】G06F17/30GK105912562SQ201610162397
【公开日】2016年8月31日
【申请日】2016年3月21日
【发明人】蔡毅, 陈震鸿, 闵华清
【申请人】华南理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1