基于Isomap算法布局的低维平行坐标图构建方法与流程

文档序号:21725572发布日期:2020-08-05 01:16阅读:290来源:国知局
基于Isomap算法布局的低维平行坐标图构建方法与流程

本发明属于可视化技术领域,具体涉及基于isomap算法布局的低维平行坐标图构建方法。



背景技术:

随着大数据时代的到来,人们产生的数据量不断增多,同时数据的更新速度也在不断加快。大数据时代所带来的,不仅仅是数据量的增大,同时数据本身也发生了不小的变化。与过去相比,在现代信息流下产生的海量数据中,很大一部分都是高维数据。而由于空间想象能力的限制,人们很难直接从这种数据中来获得信息。在这种现状下,如何对高维数据进行有效处理,如何从高维数据中获取有价值的信息,就成为了有待解决的问题。

现如今,数据可视化(datavisualization)已经成了解决该问题的一个重要方法。数据可视化是可视化分支的一种,它是将数据信息转化为视觉形式的过程,是关于数据视觉表现形式的科学技术研究。数据可视化将难以进行空间想象的高维数据,转化为可供人们直接观测的图形,这种转变不仅能够让人快速理解数据的表面信息,同时也能够充分利用人们的洞察力,使之更加轻松的推演出海量数据表象之下所隐含的逻辑关系。正因如此,高维数据的可视化也已经成为了当前众多科学家的研究方向之一。



技术实现要素:

针对上述问题本发明提供了基于isomap算法布局的低维平行坐标图构建方法。

为了达到上述目的,本发明采用了下列技术方案:

基于isomap算法布局的低维平行坐标图构建方法,包括以下步骤:

步骤s1,利用isomap算法进行维度相关性计算及布局;

步骤s2,维度子集划分;

步骤s3,维度顺序排布并构造平行坐标图。

进一步,所述步骤1中利用isomap算法进行维度相关性计算及布局,还包括以下步骤:

步骤s1.1数据的预处理;

步骤s1.2计算数值维度的各个维度对(di,dj)间的距离dist(di,dj),并生成距离矩阵l;

步骤s1.3将得到的距离矩阵输入mds算法,得到维度点的二维散点图布局。

再进一步,所述步骤s1.1数据的预处理的方法是数据清洗,填补缺失值,建立数据集,并将数据集维度的值视为向量;

数据集d有n个样本,样本的属性为m维,则数据集d和第i项ai表述为:

d={a1,a2,…,an}

ai={vi1,vi2,…,vim}

其中,vij表示第i项的第j维值;

将每个数值维度视为一个向量,则得到:

d={d1,d2,…,dm}

dj={v1j,v2j,…,vnj}

其中,dj表示第j维度,n为样本数。

再进一步,所述步骤s1.2计算数值维度的各个维度对(di,dj)间的距离dist(di,dj),并生成距离矩阵l的方法还包括以下步骤:

步骤s1.2.1,设定邻近参数k,即dj与k个近邻维度点之间的距离设置为欧式距离;

将维度点d1作为起始,记为集合s={d1},集合u包含除点d1外的其他顶点,即u={其余顶点},若集合u中维度点u是d1的近邻维度点,则<d1,u>的距离记为dist(d1,u),若u不是d1的近邻维度点,则<d1,u>的距离记为∞;

步骤s1.2.2,从d1的k个近邻维度点中选取一个距离最小的维度点d2,并将d2从集合u中移除,加入到集合s中;以d2为新考虑的起始点,修改除集合u中维度点的距离:若从起始点d1经过d2到维度点u的距离比不经过维度点d2的距离短,则修改维度点u的距离值为dist(d1,u)=<d1,d2>+<d2,u>;

步骤s1.2.3,重复步骤s1.2.2直到所有维度都包含在s中,求出d1与所有维度点的距离;最终计算数值维度的各个维度对(di,dj)间的距离dist(di,dj),并生成距离矩阵l,表示为:l=(dist(di,dj))m×m。

步骤s1.2所得到的距离矩阵l,与仅使用欧氏距离来计算维度对间的距离并得到的距离矩阵相比,其中长距离的计算已被固有测地距离的估计所取代,因此用该算法计算得到的布局结果,能更准确的反映出维度间的相关性强弱,以减小误差。

再进一步,所述步骤s1.3将得到的距离矩阵输入mds算法,得到维度点的二维散点图布局的方法是:

距离矩阵其中,表示m×m维实数矩阵,距离矩阵中的元素dist(di,dj)为维度对(di,dj)间的距离,求出各维度点的二维位置坐标dist2(di,·),dist2(·,dj),dist2(·,·);

其中,·表示di或dj中的i或j取了全部值,即从1取到m。

接着求取内积矩阵b=(bij)m×m,其矩阵中元素计算方式如下:

对内积矩阵b做特征值分解,b=vλvt,其中,λ为特征值构成的对角矩阵,v为特征向量矩阵;由于此处需要二维位置坐标,则取两个最大特征值构成的对角矩阵和特征向量矩阵矩阵而b≈ztz,矩阵z就是维度点在二维空间中的表示,即每行是一个维度点的二维坐标;

将二维坐标绘制成散点图,则得到了最终的isomap算法布局。isomap布局解决了传统布局方法中,散点图上距离很近的顶点所代表维度,其真正距离并没有图中所显示的近,即其对应维度的相关性并没有图中所显示的强度的问题,从而弱化了这种由距离带来的误差对之后的实验过程造成的影响。

进一步,所述步骤s2中维度子集划分,还包括以下步骤:

步骤s2.1构造无向图;

步骤s2.2利用bron-kerbosch算法进行极大团检测。

再进一步,所述步骤s2.1构造无向图的方法是:

基于二维散点布局图和距离矩阵,结合需求自定义阈值,如果维度间的距离dist(di,dj)小于用户所定义的阈值,则将两维度连接起来,相反则保持原状,最终形成一个或多个无向图。因此,如果用户设置的阈值越大,就会生成更多的连接,最终所得到的无向图中包含的节点也就越多。反之,若用户设置的阈值越小,生成的连接也越少,最终所得到的无向图中包含的节点也会减少,但这些节点的相关性必然都会比较高。

再进一步,所述步骤s2.2利用bron-kerbosch算法进行极大团检测的方法还包括以下步骤:

步骤s2.2.1,取多个无向图中的一个,对无向图中节点ν定义四个集合r、p、x、n(v),其中,r:目前已经在团中的节点集合,初始时为空集;

p:可能在团中的节点集合,初始时为全集;

x:不被考虑的节点集合,初始时为空集;

n(v):结点v的所有相邻的节点集合;

步骤s2.2.2,首先从集合p中选出一个结点v,并寻找包含v的极大团;将v放入集合r中,并将不在n(v)的结点从集合p和集合x中移出了;最后从剩下的集合p中再选出一个结点,重复步骤s2.2.2的操作,直到p成为空集;若集合x也是空集,则集合r是新的极大团,如果集合x不为空,则说明集合r是已经找到的极大团的一个子集。

步骤s2.2.3,回溯到上一个选择的结点,并将集合r、p、x也恢复到初始状态,同时,将本次选择的结点从集合p中移出,加入集合x,从集合p中选出下一个结点,重复步骤s2.2.2及步骤s2.2.3的操作,直到选出所有的极大团为止;所得的多个极大团,即为维度划分出的多个子集。

由于筛选出的是极大团,也就说明其团中顶点对应的维度,皆是在用户给定阈值内的相关维度。如此一来,就极大程度的保证了在之后构造平行坐标图时,维度所对应的坐标轴,其排布的自由性。

进一步,所述步骤s3中维度顺序排布并构造平行坐标图,还包括以下步骤:

步骤s3.1针对步骤s2中划分出的多个维度子集,将其维度按贪婪算法思想进行排序;

步骤s3.2依照维度顺序构造平行坐标图,并进行折线着色以增加可视化结果的清晰度。

再进一步,所述步骤s3.1针对步骤s2中划分出的多个维度子集,将其维度按贪婪算法思想进行排序的方法是:对于划分的维度子集,首先根据距离矩阵的结果,从维度子集中挑出距离最小的一对维度,将其所对应的两个坐标轴依次排布在平行坐标图左一、左二的位置;其次,以左二坐标轴为基准,在剩余未排布维度中,选择与基准坐标轴所对应维度点距离最近的维度,将其坐标轴排布在左三位置;以此类推,直到子集集合中所有维度排布完毕,最终所得到的维度顺序就是低维平行坐标图构建后各坐标轴排布顺序;

所述步骤s3.2依照维度顺序构造平行坐标图,并进行折线着色以增加可视化结果的清晰度的方法是:依照维度顺序对将要构建的低维平行坐标图的坐标轴进行排序,并根据维度数据绘制出平行坐标图;同时,坐标图折线颜色根据用户选择的类别来进行定义;若数据集没有任何分类维度,在这种情况下,使用多种聚类方式将数据样本分成若干组,并相应地分配颜色,其中组群的数量由用户来进行指定。

折线着色可以帮助用户区分平行坐标图中的折线,提高平行坐标图的信息表达能力,并减少由于数据量过大,导致图像过于杂乱,而产生的多线杂波等,同时该工具也可以提高平行坐标图的美观性,增强用户的兴趣。

与现有技术相比本发明具有以下优点:

将相似或高度相关的维度分组到同一集合中的“维度集合选择”方案。本发明通过对维度间的相关关系进行布局,连接高度相关的维度生成维度图,并将维度图的极大团提取为高度相关的维度集合,制作多个低维平行坐标图。

本发明基于等距特征映射(isomap)方法,利用大量短距离来测量长距离,从而对各维度进行更好的布局,并以此来进行低维平行坐标图的构建。使得最终得到的可视化图像能减少由于距离投影失真而带来的误差,在尽量保留原始数据大量有效信息的情况下,有效利用显示空间,并呈现出一个方便提取及解读相关维度信息的结果。

附图说明

图1为阈值为3的isomap布局结果图;

图2为根据阈值形成的无向图图1中①处放大结果图;

图3为根据阈值形成的无向图图1中②处放大结果图;

图4为图1中①处图像分割数据集可视化结果图;

图5为图1中②处图像分割数据集可视化结果图;

图6为isomap布局结果图;

图7为mds布局结果图;

图8为a无向图构造出的平行坐标图;

图9为b无向图构造出的平行坐标图;

图10为c无向图构造出的平行坐标图。

具体实施方式

下述实施例使用python3.6(64-bit)实现了维度的布局及分割,并使用rstudio实现了平行坐标图的最终构建;整个过程在windows7(64位)上执行。

实施例1

基于isomap算法布局的低维平行坐标图构建方法,包括以下步骤:

步骤s1,利用isomap算法进行维度相关性计算及布局;

步骤s1.1数据的预处理;

数据清洗,填补缺失值,建立数据集,并将数据集维度的值视为向量;

数据集d有n个样本,样本的属性为m维,则数据集d和第i项ai表述为:

d={a1,a2,…,an}

ai={vi1,vi2,…,vim}

其中,vij表示第i项的第j维值;

将每个数值维度视为一个向量,则得到:

d={d1,d2,…,dm}

dj={v1j,v2j,…,vnj}

其中,dj表示第j维度,n为样本数。

步骤s1.2计算数值维度的各个维度对(di,dj)间的距离dist(di,dj),并生成距离矩阵l;

步骤s1.2.1,设定邻近参数k,即dj与k个近邻维度点之间的距离设置为欧式距离;

将维度点d1作为起始,记为集合s={d1},集合u包含除点d1外的其他顶点,即u={其余顶点},若集合u中维度点u是d1的近邻维度点,则<d1,u>的距离记为dist(d1,u),若u不是d1的近邻维度点,则<d1,u>的距离记为∞;

步骤s1.2.2,从d1的k个近邻维度点中选取一个距离最小的维度点d2,并将d2从集合u中移除,加入到集合s中;以d2为新考虑的起始点,修改除集合u中维度点的距离:若从起始点d1经过d2到维度点u的距离比不经过维度点d2的距离短,则修改维度点u的距离值为dist(d1,u)=<d1,d2>+<d2,u>;

步骤s1.2.3,重复步骤s1.2.2直到所有维度都包含在集合s中,求出d1与所有维度点的距离;最终计算数值维度的各个维度对(di,dj)间的距离dist(di,dj),并生成距离矩阵l,表示为:l=(dist(di,dj))m×m。

步骤s1.3将得到的距离矩阵输入mds算法,得到维度点的二维散点图布局;

距离矩阵其中,表示m×m维实数矩阵,距离矩阵中的元素dist(di,dj)为维度对(di,dj)间的距离,求出各维度点的二维位置坐标dist2(di,·),dist2(·,dj),dist2(·,·);

其中,·表示di或dj中的i或j取了全部值,即从1取到m。

接着求取内积矩阵b=(bij)m×m,其矩阵中元素计算方式如下:

对内积矩阵b做特征值分解,b=vλvt,其中,λ为特征值构成的对角矩阵,v为特征向量矩阵;由于此处需要二维位置坐标,则取两个最大特征值构成的对角矩阵和特征向量矩阵矩阵而b≈ztz,矩阵z就是维度点在二维空间中的表示,即每行是一个维度点的二维坐标;

将二维坐标绘制成散点图,则得到了最终的isomap算法布局。

步骤s2,维度子集划分;

步骤s2.1构造无向图;

基于二维散点布局图和距离矩阵,结合需求自定义阈值,如果维度间的距离dist(di,dj)小于用户所定义的阈值,则将两维度连接起来,相反则保持原状。最终形成一个或多个无向图。

步骤s2.2利用bron-kerbosch算法进行极大团检测。

步骤s2.2.1,取多个无向图中的一个,对无向图中节点ν定义四个集合r、p、x、n(v),其中,r:目前已经在团中的节点集合,初始时为空集;

p:可能在团中的节点集合,初始时为全集;

x:不被考虑的节点集合,初始时为空集;

n(v):结点v的所有相邻的节点集合;

步骤s2.2.2,首先从集合p中选出一个结点v,并寻找包含v的极大团;将v放入集合r中,并将不在n(v)的结点从集合p和集合x中移出;最后从剩下的集合p中再选出一个结点,重复步骤s2.2.2的操作,直到p成为空集;

步骤s2.2.3,若集合x也是空集,则集合r是新的极大团,如果集合x不为空,则说明集合r是已经找到的极大团的一个子集;然后,回溯到上一个选择的结点,并将集合r、p、x也恢复到初始状态,同时,将本次选择的结点从集合p中移出,加入集合x,从集合p中选出下一个结点,重复步骤s2.2.2及步骤s2.2.3的操作,直到选出所有的极大团为止;所得的多个极大团,即为维度划分出的多个子集。

步骤s3,维度顺序排布并构造平行坐标图。

步骤s3.1针对步骤s2中划分出的多个维度子集,将其维度按贪婪算法思想进行排序;

对于划分的维度子集,首先根据距离矩阵的结果,从维度子集中挑出距离最小的一对维度,将其所对应的两个坐标轴依次排布在平行坐标图左一、左二的位置;其次,以左二坐标轴为基准,在剩余未排布维度中,选择与基准坐标轴所对应维度点距离最近的维度,将其坐标轴排布在左三位置;以此类推,直到子集集合中所有维度排布完毕,最终所得到的维度顺序就是低维平行坐标图构建后各坐标轴排布顺序;

步骤s3.2依照维度顺序构造平行坐标图,并进行折线着色以增加可视化结果的清晰度;

依照维度顺序对将要构建的低维平行坐标图的坐标轴进行排序,并根据维度数据绘制出平行坐标图;同时,坐标图折线颜色根据用户选择的类别来进行定义;若数据集没有任何分类维度,在这种情况下,使用多种聚类方式将数据样本分成若干组,并相应地分配颜色,其中组群的数量由用户来进行指定。

实施例2

本实施例数据来自uci机器学习存储库中的图像分割数据集。该数据选取了7张不同的户外图片,并将每张图片都手工分割成30块,并选取20个度量值,形成了一个包含210块图像20个特征值的数据集。本实施例中将每张图作为一个类,将特征值作为维度,将分割出的每块图片作为一个样本。形成20维210个样本的数据集。

对数据按维度进行了归一化处理,将数据集的20个维度看做20个向量,利用isomap算法将其布局在二维平面上,并根据需求选择阈值。

为了布局结果的清晰,维度标识为x1至x20。数据布局及维数集选择结果如附图1图所示。由图1可以看出,该数据集的布局结果中形成了两个无向图,说明根据所选定的阈值,该数据集的维度中被划分出了两个子集,图2,图3是将两处无向图分别放大的结果。将图2,图3中显示的维度点形成的无向图,利用bron-kerbosch算法筛选出极大团,并将极大团中包含的点所对应的维度,根据其两两之间的相关性,遵循贪婪算法思想进行排列,以得到平行坐标图的维度顺序。

得到由划分出的子集所形成的低维平行坐标图,如图4,图5所示;图中坐标轴编号含义如下:

x6:一种线提取算法的结果,该算法计算长度为5(任意方向),对比度较低且大于5的线的数量;

x7:测量区域内水平相邻像素的对比度(平均值);

x8:测量区域内水平相邻像素的对比度(标准差);

x9:测量区域内垂直相邻像素的对比度(平均值);

x10:测量区域内垂直相邻像素的对比度(标准差);

x11:取(r+g+b)/3区域的平均值;

x12:r区域内的平均值;

x13:b区域内的平均值;

x14:g区域内的平均值;

x16:测量多余的蓝色:(2b-(g+r));

x18:使用foley和vandam算法对rgb值进行三维非线性转换。

图4中平行坐标图所包含的5个维度,基本上都是相邻像素的对比度的测量结果,其中水平相邻像素的对比度可当作垂直边缘的检测器,而同样的,垂直相邻像素的对比度可当作水平边缘的检测器,所以这几个维度之间都具有相关性。例如观察图4中x7和x9两个维度,可以看出这两个维度间的关系为弱负相关。

而对于5图来说,其所包含的6个维度与图像颜色相关,其维度含义均是r、g、b三个区域值的不同计算,所以可以猜测,这几个维度之间也都具有很强的相关性。图5验证了这个猜想,其中三组折线代表样本来源于三个不同的图像,由于不同图像中各组区域的占比也各不相同,因此平行坐标图中出现了三个明显的类别,并用i组,ii组,iii组表示。由图5可以看出,针对左边五个维度,三组折线显示出的趋势说明,这些维度均是强正相关的。而对于右边两个维度,不同的类别其相关关系也不同。i组折线所代表的类别这两个维度间的关系是强负相关,iii组呈现出的关系是弱负相关,ii是强正相关。造成这种结果的原因,与样本来源的原始图片类别分布有关。

实施例3

本实施例数据来源:医学数据信息学是医疗中一个日益重要的研究领域,而可视化则可以通过显示相关维度的组合对应于特定的临床结果来提高数据的可验证性。本实施例数据来自uci的早期慢性肾病医疗数据集。该数据中从印度阿波罗医院搜集,共400条数据样本。其中有250个样本为病患,150个样本为非病患。数据集包括24个指标特征,13种定类变量及11种数值型变量。将数据集中的缺失值进行数据补齐后,完成预处理。最终得到24维400样本的数据集。

由于isomap算法是在mds的基础上,利用最短路径算法,将各维度间的距离由欧式距离改为由短距离组成的长距离,也就是测地线距离。所以取相同阈值的情况下,mds算法得到的布局,其形成的极大团中包含的维度点极大可能会多于isomap布局,然而这样排序出来的近距离维度点,并不一定代表强相关性的维度。

图6,图7给出了数据集mds算法及isomap算法得到的布局结果,为了布局结果的清晰,维度标识为x0至x23,此处主要分析右上角形成的无向图。如图6,图7所示,两种布局方法中,其c与c无向图所包含的维度点均为五个,即x2、x12、x14、x15和x17。但由于两种方法计算出来的维度距离不同,所以在取相同阈值的情况下,无向图结构不同,继而利用bron-kerbosch算法所筛选出来的极大团,以及通过贪婪算法思想进行排序后得到的维度顺序也并不相同。

表4.1布局方式及子集维度顺序

由表4.1可以看出,mds布局得到的无向图最终筛选出了一个极大团,形成一个维度子集,并且包含了所有的五个维度。而isomap算法布局得到的无向图则是筛选出了三个极大团,形成三个各包含三维度的维度子集,其中x14和x15这两个维度在三个子集中都有出现。

表4.2相关系数矩阵

利用相关系数矩阵对五个维度之间的相关性进行比较,由表4.2可以看出五个维度中,x14与x15的相关系数最高,为0.857,之后则是x14与x17,这符合得到的子集维度顺序。而除此之外,x2与x17之间的相关系数是0.660,x2与x15则是0.684;x12与x2之间的相关系数是0.538,而x12与x14则是0.581。对比来说,通过isomap算法进行布局而得到的三个维度子集,其各维度相关性,比mds算法得到的一个维度子集其维度间相关性更强。也就是说,相同阈值的情况下,isomap算法比mds算法有更好的布局效果。

在阈值为3的情况下,基于isomap布局构造出的所有平行坐标图。图8、图9,图10分别对应了布局中a、b及c三个无向图。为了节约空间,若两个平行坐标图最左或最右有重合维度,则将其合并为一个平行坐标图。整体来看,平行坐标图中,患病样本和非患病样本被明显分成了两类,图中标号为i的线条为未患病样本分布,而标号为ii的折线组为患病样本分布。其中非患病样本在无论哪一个坐标图中分布都比较集中,而患病样本分布区间则较为分散,这种表现与正常人各种身体指标处于一个指定范围有关。

观察平行坐标图细节,a组中,x9,x10与x11是相关性较强的一对维度,由图可以看出,x9,x10两个维度间ii组折线的关系为弱负相关,x10与x11则是正相关。其中x9的含义为随机血糖,x10的含义为血尿素,x11的含义为血清肌酐。肌酐是小分子物质,和血尿素一样通过肾球滤过后随尿排出,所以x10与x11两者关系呈正相关。而肾衰竭往往会导致肾脏过滤下降,导致尿液中血尿素与血清肌酐含量上升,所以图中的这几个维度,ii组线条基本均在i组上方。

而c组中,x14、x15和x17三个维度成正相关,这三个维度均是与红细胞相关,其中x14含义为血红蛋白数量,x15为红细胞压积,即红细胞在血液中所占容积的比值,而x17为红细胞数。由于肾衰竭的患者自身血红素生成的能力降低,所以代表患者的ii组折线处于i组折线的下方,而三维度间正相关的关系也符合医学常理。

本发明利用两个不同的数据集,展示了划分维度子集,将其转化为由相关维度组成的多个低维平行坐标图的可行性。并对isomap布局与mds布局结果进行了对比,利用维度相关系数为指标,说明了相同阈值的情况下,isomap算法比mds算法有更好的布局效果。此外对所展示的实验结果进行了分析阐述,表明实验数据所得到的结果均忠于实际情况。

本发明说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

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