基于递归划分的多类散点图采样方法、系统、存储介质及设备与流程

文档序号:18623848发布日期:2019-09-06 22:46阅读:209来源:国知局
基于递归划分的多类散点图采样方法、系统、存储介质及设备与流程

本公开属于图像信息处理领域,具体涉及一种基于递归划分的多类散点图采样方法、系统、存储介质及设备。



背景技术:

本部分的陈述仅仅是提供了与本公开相关的背景技术信息,不必然构成在先技术。

散点图(scatterplot)在回归分析中是指数据点在直角坐标系平面上的分布图,散点图通过将数据点编码为视觉标记(例如,点),可以有效地呈现变量,数据集群之间的相关性和离群点,以及数据中的其他模式。同时,通过基于类标签对视觉标记进行颜色编码,多类散点图在可视化带有类标签的数据方面并观察多个类间的相关性则是有效的。此外,很多时候,降维到2d空间的高维数据也是用散点图进行可视化的。综上,散点图现已被广泛用于可视化定量变量之间的关系。

然而,散点图常常会面临过度绘制(也就是高密度区域视觉标记间的相互重合)的问题,人们已经提出了很多方法来减轻该问题,例如改变标记尺寸、颜色、透明度、位置、密度等参数或通过动画展现数据。

具体发明人了解,现存的方法大体上能够被分成以下几种:

外观优化:这类方法是缓解过度绘制的一种直观方法,例如,减少标记大小、改变标记形状、并使标记半透明。前两种策略适合处理中等情况的过度绘制,但不能处理标记已经非常小的情况,最后一种策略同样要面临重叠标记难以辨认的问题。因此,上述方法都具有一定的局限性。

进行数据抖动:此类方法通过稍微移位重叠标记的位置来缓解过度绘制以显示它们。由于大的抖动可能会引入不存在的假模式,可能导致观察者的错误认知,具有很大的局限性,并且此类方法不能处理严重过度绘制的情况。

进行密度估计:该类方法是一种散点图的替代方法,它将离散的散点图显示为颜色编码的密度图或一组轮廓线,以这种方式,可以更好地表征密集区域,但可能遗漏离群点和稀疏区域;而且,由于颜色混合,难以可视化的观察以颜色编码的多类密度场,特别是对于重叠区域,就更难实现了。

采样优化,该类技术主要是通过优化采样过程来解决过度绘制的问题,主要包括随机采样、非均匀采样、蓝噪声采样等,随机采样能保留密集区域和相对密度差异,却很容易丢失离群点和稀疏区域;非均匀采样容易忽略不同密度区域的差异;蓝噪声采样导入特殊的局部模式,同时在原始数据点数非常多时处理速度较慢,而且在构建的密度场不好时会产生不合理的结果。

综上所述,目前处理过度绘制问题的几种方式都各有局限性。



技术实现要素:

本公开为了解决上述问题,提出了一种基于递归划分的多类散点图采样方法、系统、存储介质及设备,本公开通过对采样过程的优化,对于给定的多类散点图和屏幕空间,能够快速地计算出同时忠实地保持相对数据密度和相对类密度,并显示主要离群点和稀少类的点的采样结果,有助于提升分析以多类散点图可视化的数据的效率。

根据一些实施例,本公开采用如下技术方案:

一种基于递归划分的多类散点图采样方法,包括以下步骤:

接收多类散点图,并将其转换为多类密度图;

根据多类密度图上各邻近区域的密度差异将空间递归划分为kd树结构;

基于kd树结构,从所有叶子节点出发回溯,找到能同时保持稀少类的点和相对类密度的节点,由该节点开始递归分配类标签,保证每类至少一点且类密度顺序与采样前一致,最终从每个叶子节点选取具有分配到的类标签的一个点,作为采样结果输出。

作为可选的实施方案,多类散点图转化为多类密度图的具体过程包括:

(1-1)按输入的网格大小将给定的屏幕空间划分为一系列等大小的网格;

(1-2)将输入多类散点图映射到该屏幕空间;

(1-3)统计落在每个网格中的每个类的散点个数,并将各类的点个数相加得到总点数,每个网格内各类点个数为各类密度,从网格位置到各类密度的映射即为多类密度图。

作为可选的实施方案,递归划分为kd树结构的具体过程包括:

(2-1)将覆盖整个密度图的区域作为根节点;

(2-2)从根节点执行递归划分,确定各子树、叶子节点,构建kd树,直到所有的叶子节点都无法继续划分时,迭代停止。

作为可选的实施方案,所述步骤(2-2)包括以下步骤:

检查节点是否是叶子节点,如果节点不是叶子节点,则对其两个子节点调用同样的递归划分过程,根据父节点给当前节点的递归划分方式和两个子节点的采样率差值是否小于设定值同时决定是否给出进行进一步划分的方式;

如果节点是叶子节点,在其内部含有点的网格数量大于1,并且满足父节点的递归划分方式或内部含有离群点这两个条件中的任何一个时,划分叶子节点为两个子节点并返回一个成功进行了划分的结果,否则返回一个没有划分的结果。

作为更进一步的实施方案,在子节点划分完成后,将两子节点的子树的叶子数量相加得到当前节点子树的叶子数量;将是否有某个子节点成功进行了划分的结果回传给调用节点。

作为更进一步的实施方案,节点的采样率为以该节点为根的子树中的叶子个数与该节点所覆盖的区域中所有网格的总密度之和的比值。

作为更进一步的实施方案,若某节点的含有点的网格数量与该节点所覆盖的区域的网格总数的比值小于设定阈值,则认为该节点内部含有离群点。

作为更进一步的实施方案,划分叶子节点为两个子节点的具体过程包括:

将所有网格的位置用密度加权平均,求出该节点覆盖的区域的质心;

在与x轴平行和与y轴平行的距质心最近的网格边界线中选择使将要生成的两个子节点的内部密度和之差最小的那一条作为划分线;

按选中的划分线划分当前节点的密度图,分配给两个子节点,并更新当前节点的叶子数量。

作为可选的实施方案,从所有叶子节点出发回溯,找到能同时保持稀少类的点和相对类密度的节点的具体过程包括:

找到所有叶子节点,从每个叶子节点出发回溯到一个能同时保持稀少类的点和相对类密度的祖先节点;

将在该节点求得的类标签数量用递归方式分配给其子树里的叶子节点;

各个叶子节点根据分配到的类标签,在所有该类点中进行随机采样,选出一个点作为最终采样结果输出。

作为更进一步的限定,每个叶子节点出发回溯到一个能同时保持稀少类的点和相对类密度的祖先节点的具体过程包括:

从内部包含类数量超过1的叶子节点开始,回溯到包含叶子数量超过其中的类数量的祖先节点;对符合要求的祖先节点求一个类分配数组,其记录了每个类应该由几个叶子节点表示,继续回溯,找类分配数组的值与相对类密度最一致的节点。

作为更进一步的限定,各节点求得的类标签数量用递归方式分配给其子树里的叶子节点的具体过程包括:

首先选出其中类数量比较多的那个子节点,先向存在于这个子节点中却不存在于另一个子节点中的每个类至少分配一个叶子数量,剩下的数量使用轮盘赌选择法根据该子节点内部的各类密度值得出,得到类分配数组;

用当前节点的类分配数组减去已分配好的节点的类分配数组,得到未分配好的节点的类分配数组;

重复上述过程,直至分配到叶子节点。

一种基于递归划分的多类散点图采样系统,包括:

转换模块,被配置为接收多类散点图,并将其转换为多类密度图;

kd树构建模块,被配置为根据多类密度图上各邻近区域的密度差异将空间递归,划分为kd树结构;

选取模块,被配置为基于kd树结构,从所有叶子节点出发回溯,找到能同时保持稀少类的点和相对类密度的节点,由该节点开始递归分配类标签,保证每类至少一点且类密度顺序与采样前一致,最终从每个叶子节点选取具有分配到的类标签的一个点,作为采样结果输出。

一种计算机可读存储介质,其中存储有多条指令,所述指令适于由终端设备的处理器加载并执行所述的一种基于递归划分的多类散点图采样方法。

一种终端设备,包括处理器和计算机可读存储介质,处理器用于实现各指令;计算机可读存储介质用于存储多条指令,所述指令适于由处理器加载并执行所述的一种基于递归划分的多类散点图采样方法。

与现有技术相比,本公开的有益效果为:

1、本公开在构建二叉kd树时同时考虑到了各邻近区域的密度差异和可能包含离群点的低密度区域,生成的划分结果能保证最终采样结果既能保留相对密度差异,又能展示出主要离群点;

2、本公开所使用的多类采样过程能够在保证稀少类的点在局部可见的同时显示出局部的相对类密度差异;

3、本公开使用统计方法将区域内点数量作为密度,使得采样过程消耗的时间与输入散点图的点数量相互独立,能够在1秒内处理百万级别的数据集。

4、本公开得到的采样结果,能够同时忠实地保持相对数据密度和相对类密度,并显示主要离群点和稀少类的点,有利于保证后期数据进一步分析的准确度与可靠性,同时有效解决了过度绘制的问题。在不影响分析准确率的基础上,有助于提升散点图可视化后的分析数据的效率。

附图说明

构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。

图1是本公开基于递归划分的多类散点图采样技术的流程图;

图2(a)为输入散点图的一部分,图2(b)为输出多类密度图的对应部分;

图3(a)为输入散点图对应的多类密度图,图3(b)为将空间递归地划分为定制的二叉kd树最终得到的空间划分方式与对应树结构,图3(c)为保持稀有类的多类采样算法将所有叶子节点分配类标签完成时的结果,图3(d)为根据分配到的类标签随机选点后得到的最终采样结果;

图4(a)为该部分网格与密度图,图4(b)为该部分对应的树结构;

图5(a)为输入散点图对应的多类密度图,图5(b)为从叶子节点回溯到祖先节点的过程,图5(c)为将类标签通过递归方式分配给子节点的过程,图5(d)为根据分配到的类标签随机选点后得到的采样结果;

图6是在另一个示例数据集上进行从叶子节点回溯到祖先节点的过程的示意图;

图7(a)为本实施例用电量情况的散点图;

图7(b)为本实施例经过处理后得到的采样结果示意图。

具体实施方式:

下面结合附图与实施例对本公开作进一步说明。

应该指出,以下详细说明都是例示性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

本公开提供了一种基于递归划分的多类散点图采样方法,可以应用于地理坐标构建、故障诊断评估、数据汇总分析等场景。需要进行数据处理时,根据各类数据的散点图,进行有针对性的采样,以用电量的汇总分析为例进行说明如图7(a)所示,某个美国家庭一年内每日的用电量情况的散点图,对其进行具体如图1所示的采样过程,包括:

(1)将给定多类散点图转化为多类密度图;

(2)通过分析密度图上各邻近区域的密度差异将空间递归地划分为定制的二叉kd树;

(3)基于该kd树来执行考虑到保持稀有类的多类采样算法,并输出采样结果。

步骤(1)中,将给定多类散点图转化为多类密度图的过程包括以下步骤,图2为该过程的示意图:

(1-1)按用户输入的网格大小将给定的屏幕空间划分为一系列等大小的网格,图2中灰线即为划分网格的边;

(1-2)将输入多类散点图映射到该屏幕空间,结果如图2(a)所示,3种不同的颜色表示3个类;

(1-3)统计落在每个网格中的每个类的散点个数,并将各类的点个数相加得到总点数,结果如图2(b)所示,各类点个数有与该类颜色一样的数字表示,总点数由黑色数字表示。每个网格内各类点个数就是各类密度,从网格位置到各类密度的映射即为多类密度图。

步骤(2)中,将空间递归地划分为定制的二叉kd树包括以下步骤,图3(b)为该过程在示例数据集上的最终得到的空间划分方式与对应树结构:

(2-1)将覆盖整个密度图的区域作为定制的二叉kd树的根节点,在图3(b)中左边为密度图,每个网格里黑色的数字表示其中点的总密度,由图3(a)中显示的两类点密度相加得到,没有数字就表示其中没有点,整个8x8密度图被用于创建右边二叉树的根节点;

(2-2)执行一个迭代的过程,每次从根节点开始执行一个递归划分构建kd树的过程,且给出进行划分的建议。一直到所有的叶子节点都无法继续划分时,迭代停止,在图3(b)中左边网格中的粗黑线表示沿该边界进行过划分,右边的树结构与左边的划分相对应,叶子中的数字表示叶子节点中包含的总密度。

步骤(2-2)中,递归划分构建kd树的过程包括以下步骤:

(2-2-1)检查节点是否是叶子节点;

(2-2-2)如果节点不是叶子节点,则:

(2-2-2-1)对其两个子节点调用同样的递归划分过程,是否给出进行划分的建议由父节点给当前节点的建议和两个子节点的采样率差是否足够小同时决定,如图4所示,用紫色虚线框框起的节点(17)与红色实线框框起的节点(26)的采样率差不够小,所以紫色节点没有划分,而红色节点与紫色节点的采样率差足够小,所以红色节点被给予了应该继续划分的建议;

(2-2-2-2)在子节点划分完成后,将两子节点的子树的叶子数量相加得到当前节点子树的叶子数量;

(2-2-2-3)将是否有某个子节点成功进行了划分的结果回传给调用者;

(2-2-3)如果节点是叶子节点,在其内部含有点的网格数量大于1,并且满足父节点建议进行划分或内部含有离群点这两个条件中的一个时,划分叶子节点为两个子节点并返回一个成功进行了划分的结果,否则返回一个没有划分的结果,如图4所示,用绿色虚线框框起的节点(25)中内部含有点的网格数量不大于1,所以尽管满足父节点建议进行划分的条件,该节点也没有进一步划分。

步骤(2-2-2-1)中的采样率由以下公式定义:

其中v表示节点,nleaf表示以v为根的子树中的叶子个数,dsum表示v所覆盖的区域中所有网格的总密度的和。

步骤(2-2-2-1)中两个子节点的采样率差是否足够小由以下公式定义:

α(v.leftchild)-α(v.rightchild)<λ

其中v表示节点,leftchild表示左子节点,rightchild表示右子节点,λ是一个用户定义的阈值。需要注意的是,上式是判断是否该建议左子节点划分时的公式,判断右子节点是否划分的公式由上式的leftchild与rightchild互换得到。

步骤(2-2-3)中内部含有离群点由以下公式定义:

其中v表示节点,noccupied表示含有点的网格数量,ncell表示v所覆盖的区域的网格总数,τ是一个用户定义的阈值。

步骤(2-2-3)中,划分叶子节点为两个子节点包括以下步骤:

(2-2-3-1)将所有网格的位置用密度加权平均,求出该节点覆盖的区域的质心;

(2-2-3-2)在与x轴平行和与y轴平行的距质心最近的网格边界线中选择使将要生成的两个子节点vl和vr的内部密度和之差最小的那一条作为划分线;

(2-2-3-3)按选中的划分线划分当前节点的密度图,分配给两个子节点,并将当前节点的叶子数置为2。

步骤(3)中,基于该kd树来执行考虑到保持稀有类的多类采样算法包括以下步骤,图5为该过程的示意图:

(3-1)找到所有叶子节点,图5(a)中两个网格分别是一个叶子节点;

(3-2)从每个叶子节点出发回溯到一个能同时保持稀少类的点和相对类密度的祖先节点,图5(b)中是回溯到这两个叶子节点的父节点,其就能保持能同时保持稀少类的点和相对类密度;

(3-3)将在该节点求得的类标签数量用递归方式分配给其子树里的叶子节点,图5(c)是分配过程的示意图,因为只有上方叶子节点存在红色点,所以红色类标签被分配给了它,剩下的蓝色类标签被分配给了下方叶子节点;

(3-4)各个叶子节点根据分配到的类标签,在所有该类点中进行随机采样,选出一个点,图5(d)是选点结果;

(3-5)输出最终采样结果。

步骤(3-2)中,每个叶子节点出发回溯到一个能同时保持稀少类的点和相对类密度的祖先节点包括以下步骤:

(3-2-1)从内部包含类数量超过1的叶子节点开始,回溯到包含叶子数量超过其中的类数量的祖先节点;

(3-2-2)对这样的节点求一个类分配数组,其记录了每个类应该由几个叶子节点表示;

(3-2-3)从这样的节点继续回溯,找类分配数组的值与相对类密度最一致的节点。用户可以通过设置一个最大搜索深度depth来把搜索限制在局部,从而更好地保持稀少类。

步骤(3-2-2)中,求类分配数组的方式为:

(3-2-2-1)为每个存在的类分配一个叶子数量;

(3-2-2-2)剩余叶子节点应该分配的类由轮盘赌选择法(a.lipowskiandd.lipowska.roulette-wheelselectionviastochasticacceptance.physicaa:statisticalmechanicsanditsapplications,391(6):2193–2196,2012.)根据当前节点内部的各类密度值得出。

步骤(3-2-3)中,类分配数组的值与相对类密度最一致的节点是通过最大化以下得分选出的:

其中μ表示节点,m是节点内类的数量,{nds1,…,ndsm}是按降序排列的μ中各类密度的数组,{p1,…,pm}是类分配数组,φ在前项大于后项时返回1,两项相等时返回0,前项较小时返回-1,δ在括号内两项相等时取1,否则取0。图6是该最大化得分过程的示意图,当只回溯一层时φ(ndsi,ndsj)=1,φ(pi,pj)=0,故δ返回0,所以ω(a)=0,而回溯两层时φ(ndsi,ndsj)=1,φ(pi,pj)=1,故δ返回1,所以ω(b)=1,而ω(c)也等于1,因此选择b作为同时保持局部稀少类和相对类密度的最佳节点。

步骤(3-3)中,将在该节点求得的类标签数量用递归方式分配给其子树里的叶子节点包括以下步骤:

(3-3-1)首先选出其中类数量比较多的那个子节点;

(3-3-2)先向存在于这个子节点中却不存在于另一个子节点中的每个类至少分配一个叶子数量,剩下的数量使用轮盘赌选择法根据该子节点内部的各类密度值得出,如此得到类分配数组;

(3-3-3)用当前节点的类分配数组减去已分配好的节点的类分配数组,得到未分配好的节点的类分配数组;

(3-3-4)两个节点都重新调用从(3-3-1)开始的整个过程,直至分配到叶子节点。

最终得到采样结果如图7(b)所示,能够保证采样点既保留了相对密度差异,又能展示出主要离群点,有利于数据分析的准确度与可靠性,有效解决了过度绘制的问题。在不影响分析准确率的基础上,有助于提升散点图可视化后的分析数据的效率。

相应的,提供产品实施例如下:

一种基于递归划分的多类散点图采样系统,包括:

转换模块,被配置为接收多类散点图,并将其转换为多类密度图;

kd树构建模块,被配置为根据多类密度图上各邻近区域的密度差异将空间递归,划分为kd树结构;

选取模块,被配置为基于kd树结构,从所有叶子节点出发回溯,找到能同时保持稀少类的点和相对类密度的节点,由该节点开始递归分配类标签,保证每类至少一点且类密度顺序与采样前一致,最终从每个叶子节点选取具有分配到的类标签的一个点,作为采样结果输出。

一种计算机可读存储介质,其中存储有多条指令,所述指令适于由终端设备的处理器加载并执行上述的一种基于递归划分的多类散点图采样方法。

一种终端设备,包括处理器和计算机可读存储介质,处理器用于实现各指令;计算机可读存储介质用于存储多条指令,所述指令适于由处理器加载并执行上述的一种基于递归划分的多类散点图采样方法。

本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

上述虽然结合附图对本公开的具体实施方式进行了描述,但并非对本公开保护范围的限制,所属领域技术人员应该明白,在本公开的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本公开的保护范围以内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1