技术领域
[0001] 本
发明属于
数据挖掘与可视分析技术领域,涉及一种基于维度相关性的子空间聚类的可视分析方法。
背景技术
[0002]
聚类分析是数据挖掘领域中的关键技术之一。子空间聚类是对传统聚类方法在高维数据空间中的扩展,其思想是将搜索局部化在相关维中进行。
[0003] 传统聚类方法在高维数据集中进行聚类时,主要遇到两个问题。1、高维数据集中存在大量无关的属性使得在所有维中存在聚类的可能性几乎为零;2、高维空间中数据较低维空间中数据分布要稀疏,其中数据间距离几乎相等是普遍现象,而传统聚类方法是基于距离进行聚类的,因此在高维空间中无法基于距离来构建聚类。
[0004] 为了解决这些问题,数据挖掘的研究者们提出了子空间聚类技术,尝试在数据集的不同子空间上发现聚类。根据搜索方向的不同,可以将子空间聚类方法分成两大类:自顶向下的搜索策略,包括PROCLUS等;以及自底向上的搜索策略,包括CLIQUE等。
[0005] 但自动化的子空间聚类方法往往得到数量庞大的冗余结果,其聚类结果难以理解和解释。为此,数据挖掘和
可视化领域提出了一系列的可视化方法,例如Assent等人的“Visual subspace clustering analysis,SIGKDD Explor.Newsl.9(2):5-12.2007.”,Tatu等人的"Subspace search and visualization to make sense of alternative clusterings in high-dimensional data,IEEE VAST,pages.63-72,2012"方法等。但这些方法仅限于对自动化子空间聚类方法的结果进行可视化,用户无法进行交互式的可视分析。
[0006] 与本发明方法最接近的方法是袁晓如等人提出的"Dimension projection matrix/tree:Interactive subspace visual exploration and analysis of high dimensional data.IEEE TVCG,19(12):2625-2633,2013",但其维度之间的距离基于皮尔逊相关系数,仅可用于特征选择,缺乏聚类上的意义。此外,对于子空间聚类的复杂结构,如不同子空间在维度上的重叠,不同聚类在数据上的重叠等,以上可视化方法都没有给出良好的解决方案。
发明内容
[0007] 本发明旨在针对上述现有方法存在的问题,提供一种基于维度相关性的子空间聚类可视分析方法,在交互式、可视化的数据探索过程中,给予用户有效的引导信息,指导 用户快速发现有价值的子空间和对应的聚类。
[0008] 本发明所采用的技术方案是,一种基于维度相关性的子空间聚类可视分析方法,按照以下步骤进行:
[0009] 步骤一、建立基于聚类显著性的维度相关性度量方法;
[0010] 步骤二、建立子空间聚类复杂结构的有效可视化方法;
[0011] 步骤三、建立基于维度相关性的可视分析
框架。
[0012] 进一步的,所述步骤一中,维度相关性度量方法包括以下步骤:
[0013] 步骤a,定义维度间的相似性:
[0014]
[0015]
[0016]
[0017] 其中表达式(1)中p(p,di)描述的是数据在维度di上、点p
位置处的
密度;kNN是指k最近邻;kNN(p,di)指在维度di上离p点最近的k个点;max(kNN(p,di))指kNN(p,di)中坐标值最大的点,min(kNN(p,di))指kNN(p,di)中坐标值最小的点;DB代表了数据集,|DB|为数据集中数据点的个数;ε=1/|DB|(ε是一个足够小的数,防止表达式(1)的分母为0);
[0018] 表达式(2)中r(di,dj)定义了维度i和j之间的相似性;
[0019] 表达式(3)中r(d1,d2,......,dm)定义了维度集合d1,d2,.....,dm之间的相似性;
[0020] 步骤b,定义维度间的距离:
[0021] 维度间的距离基于维度间的相似性得到,具体表达式如下:
[0022]
[0023]
[0024]
[0025] 其中表达式(4)中dist(di,dj)定义了两个维度di,dj之间的距离,r(di,dj)为维度i和j之间的相似性,由表达式(2)给出;表达式(5)中dist(dm+1,S)定义了维度dm+1和维度集合S之间的距离,其中r(d1,d2,.....dm,dm+1)为维度集合S和维度dm+1之间的相似性。
[0026] 进一步的,所述步骤二中,建立子空间聚类复杂结构的有效可视化方法包括以下步骤:
[0027] 使用超图描述子空间结构,超图的数据结构由
节点和边组成,其中节点表示维度,边表示维度的子集,即一个子空间;一条边可以连接多个节点,一条边连接的维度节点张成一个子空间;
[0028] 然后采用星形结构来可视化超图数据结构,具体表示过程为:
[0029] 步骤a,找到需要用星形结构包围起来点集的最小包围圆,记包围圆的圆心为点C;
[0030] 步骤b,将点集中的其它点与C点连接起来,组成星形结构的初始骨架;
[0031] 步骤c,每个骨架选取5个以上的点做为控制点,选取的控制点分布均匀,并能够将骨架包围起来;
[0032] 步骤d,将两个相邻骨架的重叠区域中的控制点删除;
[0033] 步骤e,以控制点做为参考点,以逆
时针为方向用一条b样条曲线绘制出一个封闭的区域,此区域就是所需要的星形凸包结构。
[0034] 进一步的,所述步骤三中,基于维度相关性的可视分析框架;包括维度视图和数据视图;
[0035] 所述维度视图包括维度点,超图边,圆形工作区,如图1维度视图。其中维度点是指代表维度的点,超图边代表维度子集,即一个子空间,用星形结构来可视表达,圆形工作区包括内圆和外圆,其中内圆中指编辑区域(如图1维度视图中的编辑区域)(编辑区域是用来展现当前被选中的点集,点集中的点按被选中顺序,呈螺旋状从内到外分布),外圆和内圆之间的区域(如图1维度视图中的内圆与外圆之间的区域)分布着未选中的维度点。维度点的布局包含初始布局和动态布局。
[0036] 维度点的初始布局为:用户没有进行任何操作前,维度视图的分布情况。维度点的初始布局由MDS
算法给出;
[0037] 所述由MDS算法得到维度点的初始布局步骤为:
[0038] 步骤a,得到维度点距离矩阵:距离矩阵为各个维度与其余维度之间的距离组成,维度之间的距离由表达式(4)给出;
[0039] 步骤b,得到维度点的布局信息:将距离矩阵作为MDS算法的输入,将算法得到的结果做为维度点在维度视图中的坐标信息;
[0040] 维度点动态布局为:即维度视图更新时使用的布局。维度点距离维度视图中心的距离,会根据维度点与当前正在编辑的子空间的距离进行动态调整;当编辑区域中的维度点集发生变化时,对每个不在编辑区域中的维度点做以下操作:
[0041] 步骤a,运用表达式(5)得到当前维度点与正在编辑的子空间的距离d,0≤d≤1;
[0042] 步骤b,将距离d映射到[a,b]范围中,映射函数由表达式(6)给出。其中a代表小圆半径,b代表大圆半径,f代表映射的结果;
[0043] f=a+d*(b-a) (6)
[0044] 步骤c,在当前点与维度视图中心点连线的方向上,将当前点的距离调整为距离维度视图中心为f的位置处;
[0045] 在维度视图中包含以下交互功能:
[0046] 1),
鼠标点击一个点/星形结构:如果该点/星形结构位于编辑区域,则将该点/星形结构移出编辑区域;如果该点/星形结构不位于编辑区域,则将其放置到编辑区域内,最后更新维度视图和数据视图;
[0047] 2),鼠标
悬停在点/星形结构上:当鼠标悬在该点/星形结构时,维度视图的分布更新为鼠标点击该点/星形结构后的情况;当鼠标移开时,维度视图的分布还原到悬停前的样子;
[0048] 3),鼠标圈选操作:圈选是在维度视图上用鼠标绘制一个多边形,所有位于这个多边形内部的点集都将被赋予以下操作,如果该点位于编辑区域,则将该点移出编辑区域;如果该点不位于编辑区域,则将其放置到编辑区域内,最后更新维度视图和数据视图;
[0049] 所述数据视图为一系列的数据点组成,数据点的布局情况由MDS算法给出。
[0050] 由MDS算法得到数据点的布局步骤为:
[0051] 步骤a,得到距离矩阵:距离矩阵是数据点中每个数据点与其余的数据点之间的距离组成的一个矩阵;数据点与数据点之间的距离由表达式(7)给出,其中pi,pj代表的是第i个点和第j个数据点,dist(pi,pj)为数据点pi,pj之间的距离,S为输入的子空间维度集, 即维度视图的编辑区域中包含的维度子集,S随维度视图中的编辑操作即时更新;d是指S中的某一个维度;pi(d),pj(d)分别代表的是pi,pj点在维度d上的值;
[0052]
[0053] 步骤b,得到数据点在数据中视图中的分布:将距离矩阵作为MDS算法的输入,将算法得到的结果做为数据点在数据视图中的坐标信息。
[0054] 在数据视图中包含以下操作:
[0055] 1)圈选标记
颜色:圈选是在维度视图上用鼠标绘制一个多边形,所有在这个多边形内部的点集都将被标记为当前
指定的颜色;
[0056] 本发明的有益效果是,提出了一种度量维度之间存在聚类的显著性的一种方法。并且我们有了一个特殊的数据结构去表达子空间结构,并将其直观的呈现出来。最后,我们提出了一个高效的子空间聚类的可视化分析方法。总之,本发明是交互式可视分析的一种方法,并在交互式的可视分析过程中,给予用户明确的信息来指导用户查找存在有价值聚类特征的子空间,提高了子空间聚类的查找效率。
附图说明
[0057] 为了更清楚地说明本发明
实施例或
现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0058] 图1是基于子空间聚类的可视化分析框架图。
[0059] 其中图的左半部分为维度视图,右半部分为数据视图。在维度视图中,点代表的是一个维度。星形结构是超图中的一条边,代表一个子空间。中间部分为正在编辑的子空间。数据视图为数据点在正在编辑的子空间下的分布情况。
[0060] 图2是星形凸包结构的绘制步骤图。
具体实施方式
[0061] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0062] 本发明包括基于聚类显著性的维度相关性度量方法,子空间聚类复杂结构的有效可视化方法,以及基于维度相关性的可视分析框架。
[0063] 本实例中采用一台高性能的电脑,电脑上的内存应该在8G以上。
[0064] 一种基于维度相关性的子空间聚类可视分析方法,包含以下内容:
[0065] 内容1:基于聚类显著性的维度相关性度量方法;维度相关性度量方法包含以下步骤:
[0066] 步骤1,定义维度间的相似性:维度之间的相似性由以下表达式给出。
[0067] 其中表达式(1)中p(p,di)描述的是数据在维度di上、点p位置处的密度。
[0068] kNN(k-Nearest-Neighbors)是指k最近邻。kNN(p,di)指在维度di上离p点最近的k个点。max(kNN(p,di))指kNN(p,di)中坐标值最大的点,min(kNN(p,di))指kNN(p,di)中坐标值最小的点。DB代表了数据集,|DB|为数据集中数据点的个数。ε=1/|DB|(ε是一个足够小的数,防止表达式(1)的分母为0)。
[0069] 表达式(2)中r(di,dj)定义了维度i和j之间的相似性。
[0070] 表达式(3)中r(d1,d2,......,dm)定义了维度集合d1,d2,.....,dm之间的相似性。
[0071]
[0072]
[0073]
[0074] 步骤2,定义维度间的距离:维度间的距离基于维度间的相似性得到,具体表达式如下:
[0075] 其中表达式(4)中dist(di,dj)定义了两个维度di,dj之间的距离,r(di,dj)为维度i和j之间的相似性,由表达式(2)给出。表达式(5)中dist(dm+1,S)定义了维度dm+1和维度集合S之间的距离。其中r(d1,d2,.....dm,dm+1)为维度集合S和维度dm+1之间的相似性。
[0076]
[0077]
[0078] 内容2:子空间聚类复杂结构的有效可视化方法;在本发明中使用超图描述子空间结构。超图的数据结构由节点和边组成。其中节点表示维度,边表示维度的子集(即一个子空间)。一条边可以连接多个节点。一条边连接的维度节点张成一个子空间。在本发明中,提出了一种星形结构来可视化超图数据结构。
[0079] 星形结构的表示过程为:
[0080] 步骤1,找到需要用星形结构包围起来点集的最小包围圆,记包围圆的圆心为点C;如图2a;
[0081] 步骤2,将点集中的其它点与C点连接起来,组成星形结构的初始骨架;
[0082] 步骤3,通常为每个骨架选取5个以上的点做为控制点,选取的控制点应该尽量均匀,并能够将骨架包围起来(如图2b);
[0083] 步骤4,将两个相邻骨架的重叠区域中的控制点删除(如图2c中的空心圆);
[0084] 步骤5,以控制点做为参考点,以逆时针为方向用一条b样条曲线绘制出一个封闭的区域。此区域就是所需要的星形凸包结构(如图2d);
[0085] 其中b样条曲线是样条曲线的一种,样条曲线是指给定一组控制点而得到一条曲线,曲线的大致形状由这些控制点予以控制。
[0086] 内容3:基于维度相关性的可视分析框架;包括维度视图和数据视图。
[0087] 所述维度视图包括维度点,超图边,圆形工作区,如图1维度视图。其中维度点是指代表维度的点,超图边代表维度子集,即一个子空间,用星形结构来可视表达,圆形工作区包括内圆和外圆,其中内圆中指编辑区域(如图1维度视图中的编辑区域)(编辑区域是用来展现当前被选中的点集,点集中的点按被选中顺序,呈螺旋状从内到外分布),外圆和内圆之间的区域(如图1维度视图中的内圆与外圆之间的区域)分布着未选中的维度点。维度点的布局包含初始布局和动态布局。
[0088] 维度点的初始布局为:用户没有进行任何操作前,维度视图的分布情况。维度点的初始布局由MDS算法给出;
[0089] 所述由MDS算法得到维度点的初始布局步骤为:
[0090] 步骤a,得到维度点距离矩阵:距离矩阵为各个维度与其余维度之间的距离组成,维度之间的距离由表达式(4)给出;
[0091] 步骤b,得到维度点的布局信息:将距离矩阵作为MDS算法的输入,将算法得到的 结果做为维度点在维度视图中的坐标信息;
[0092] 维度点动态布局为:即维度视图更新时使用的布局。维度点距离维度视图中心的距离,会根据维度点与当前正在编辑的子空间的距离进行动态调整;当编辑区域中的维度点集发生变化时,对每个不在编辑区域中的维度点做以下操作:
[0093] 步骤a,运用表达式(5)得到当前维度点与正在编辑的子空间的距离d,0≤d≤1;
[0094] 步骤b,将距离d映射到[a,b]范围中,映射函数由表达式(6)给出。其中a代表小圆半径,b代表大圆半径,f代表映射的结果;
[0095] f=a+d*(b-a) (6)
[0096] 步骤c,在当前点与维度视图中心点连线的方向上,将当前点的距离调整为距离维度视图中心为f的位置处;
[0097] 在维度视图中包含以下交互功能:
[0098] 1),鼠标点击一个点/星形结构:如果该点/星形结构位于编辑区域,则将该点/星形结构移出编辑区域;如果该点/星形结构不位于编辑区域,则将其放置到编辑区域内,最后更新维度视图和数据视图;
[0099] 2),鼠标悬停在点/星形结构上:当鼠标悬在该点/星形结构时,维度视图的分布更新为鼠标点击该点/星形结构后的情况;当鼠标移开时,维度视图的分布还原到悬停前的样子;
[0100] 3),鼠标圈选操作:圈选是在维度视图上用鼠标绘制一个多边形,所有位于这个多边形内部的点集都将被赋予以下操作,如果该点位于编辑区域,则将该点移出编辑区域;如果该点不位于编辑区域,则将其放置到编辑区域内,最后更新维度视图和数据视图;
[0101] 所述数据视图为一系列的数据点组成,数据点的布局情况由MDS算法给出。
[0102] 由MDS算法得到数据点的布局步骤为:
[0103] 步骤a,得到距离矩阵:距离矩阵是数据点中每个数据点与其余的数据点之间的距离组成的一个矩阵;数据点与数据点之间的距离由表达式(7)给出,其中pi,pj代表的是第i个点和第j个数据点,dist(pi,pj)为数据点pi,pj之间的距离,S为输入的子空间维度集,即维度视图的编辑区域中包含的维度子集,S随维度视图中的编辑操作即时更新;d是指S中的某一个维度;pi(d),pj(d)分别代表的是pi,pj点在维度d上的值;
[0104]
[0105] 步骤b,得到数据点在数据中视图中的分布:将距离矩阵作为MDS算法的输入,将算法得到的结果做为数据点在数据视图中的坐标信息。
[0106] 在数据视图中包含以下操作:
[0107] 1)圈选标记颜色:圈选是在维度视图上用鼠标绘制一个多边形,所有在这个多边形内部的点集都将被标记为当前指定的颜色;
[0108] 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何
修改、等同替换、改进等,均包含在本发明的保护范围内。