子空间聚类的方法及装置的制造方法
【技术领域】
[0001]本发明属于计算机技术领域,尤其涉及子空间聚类的方法及装置。
【背景技术】
[0002]在高维数据聚类中,常常由于数据的稀疏或不同维度的冗余,导致聚类时间复杂度和空间复杂度高,聚类效果差,子空间聚类方法的提出,使之成为了解决上述问题的有效途径之一。常用的子空间聚类方法有CLIQUE,以及在CLIQUE方法的基础之上衍生出来的其他方法。CLIQUE方法采用类似Apr1ri算法的方式,在高维数据中将每个维度按照数据密度进行划分,然后从低维往高维组合出可聚类的高维子空间。
[0003]CLIQUE方法通过网格对数据密度进行划分,然而,在数据集分布并不按照网格划分的情况之下(如图1所示的情况),通过CLIQUE方法就无法得到合理的聚类效果。
【发明内容】
[0004]有鉴于此,本发明实施例提供了子空间聚类的方法及装置,以解决在数据集分布并不按照网格划分的情况之下,通过CLIQUE方法无法得到合理的聚类效果问题。
[0005]第一方面,提供了一种子空间聚类的方法,包括:
[0006]初始化SSAm= 0,并随机生成m τ个不为零的c.j,所述SS-为m维K-means组合聚类得到的类间离差和,所述C]S—维空间的聚类中心,所述m τ表示原始数据集共有m τ个维度,所述m表示预设子空间共有m个维度;
[0007]使用所述C]在每个维度上分别进行一维K-means聚类,得到每个维度的类间离差和 SSA1;
[0008]基于mT个类间离差和SS A1,选取Σ SSA1最大且还未组合聚类过的m个维度;
[0009]若已经选取完m个维度在所述mT个维度中的所有组合或存在Σ SSA1< SSAni,则将SS-对应的聚类结果输出;
[0010]若Σ SSA1> SS-,使用当前选取的m个维度对应的Cj作为聚类初始值进行K-means组合聚类,并且计算得到对应的类间离差和ssAn/ ;
[0011]返回执行所述基于mT个类间离差和SSA1,选取Σ SSA1最大且还未组合聚类过的m个维度的操作,且若存在SS' _> SS-,则在所述返回执行前设置SSAni= SS' Αηι。
[0012]另一方面,提供了一种子空间聚类的装置,包括:
[0013]初始化单元,用于初始化SSAm= 0,并随机生成m τ个不为零的c.j,所述SSAmS m维K-means组合聚类得到的类间离差和,所述(^为一维空间的聚类中心,所述m τ表示原始数据集共有%个维度,所述m表示预设子空间共有m个维度;
[0014]排序单元,用于使用所述C]在每个维度上分别进行一维K-means聚类,得到每个维度的类间离差和SSA1;
[0015]选取单元,用于基于mT个类间离差和SSA1,选取Σ SSA1最大且还未组合聚类过的m个维度;
[0016]输出单元,用于若已经选取完m个维度在所述mT个维度中的所有组合或存在Σ SSA1^ SSAni,则将SSAni对应的聚类结果输出;
[0017]计算单元,若Σ SSA1> SSAm,使用当前选取的m个维度对应的作为聚类初始值进行K-means组合聚类,并且计算得到对应的类间离差和SSAn/ ;
[0018]迭代单元,用于返回执行所述选取单元的操作,且若存在SS' SSAni,则在所述返回执行前设置SSAm= SS' ta。
[0019]本发明实施例在子空间聚类中引入了 K-means算法,相比CLIQUE方法,在原始数据集并不按照网格来划分的情况下,本发明实施例提供的方案使得子空间聚类能够快速地得到最佳子空间的聚类结果。
【附图说明】
[0020]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0021]图1是现有技术提供的数据集分布示例图;
[0022]图2是本发明实施例提供的子空间聚类的方法的实现流程图;
[0023]图3是本发明实施例提供的子空间聚类的装置的结构框图。
【具体实施方式】
[0024]以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透切理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
[0025]本发明实施例在子空间聚类过程中引入了 K-means算法,从而在原始数据集并不按照网格来划分的情况下,也能够快速地得到合理的子空间聚类的聚类结果。
[0026]图2示出了本发明实施例提供的子空间聚类的方法的实现流程,详述如下:
[0027]在S201中,初始化SSAni= 0,并随机生成mT个不为零的c j,其中,所述SSAni为m个维K-means组合聚类得到的类间离差和,所述C]S—维空间的聚类中心,所述m 1表示原始数据集共有mT个维度,所述m表示预设子空间共有m个维度。
[0028]作为本发明的一个实施例,在S201之前,还可以对原始数据集的每一维度分别执行数据标准化处理,即,在执行聚类之前,先对原始数据进行去量纲处理(即数据标准化处理)。在本发明实施例中,去量纲处理可以采用Z值来标准化数据,在去量纲后,每个维度的均值为0,方差为1恒成立,由此一来,再采用K-means算法进行聚类,每个维度就拥有相同的权重。
[0029]将随机生成的1%个初始值c j设置为广播变量,作为K-means算法的初始条件,而将初始值C]设置为广播变量,是方便在分布式计算的场景之下,能够将初始值c 配到每台机器之中进行运算。
[0030]在S202中,使用所述Cj在每个维度上分别进行一维K-means聚类,得到每个维度的类间离差和SSA1。
[0031]为了方便后续S203的处理,在S202之后,可以将mT个维度中还未被选取过的维度按照每个维度对应的SSA1的值从大到小进行排序。
[0032]在S203中,基于mT个类间离差和SSA1,选取Σ SSA1最大且还未组合聚类过的m个维度。
[0033]在S204中,若已经选取完m个维度在所述mT个维度中的所有组合或存在Σ SSA1^ SSAni,则将SSjt出对应的聚类结果输出。
[0034]例如,m = 2,mT= 6,通过S202的一维聚类之后,每个维度对应的类间离差和SS A1分别为 SS1 = 0.1、SS2 = 0.2、SS3 = 0.3、SS4 = 0.4、SS5 = 0.5,SS6 = 0.6,其中,SS5+SS6的值最大,则在S203的处理过程中,先选取出SS5和SS6对应的维度,并判断这两个维度是否存在Σ SSA1^ SS-,若存在,则迭代结束,不对SS5和SS6对应的维度进行组合,并将当前的SSAni对应的聚类结果输出。
[0035]在S205中,若Σ SSA1> SS _,使用当前选取的m个维度对应的(^作为聚类初始值进行K-means组合聚类,并且计算得到对应的类间离差和SSAni'。
[0036]在S206中,返回执行S203的操作,且若存在SS' SS Αηι,则在所述返回执行前设置 ssAm= SS'―。
[0037]上述迭代过程反复进行,直至得到SSAni最大的m个维度,将该m个维度选取为最佳的聚类维度。
[0038]其中,将SSAni最大的m个维度选取为最佳的聚类维度的理由如下:
[0039]K-means算法每次迭代分两步,第一步重新计算每个类的中心点,第二步将每个点重新分配到的新类为离这个点最近的中心点所代表的类。通过以上证明过程可知,经过上述第一步后,类内每个点到类新中心点的离差平方和不大于类内每个点到原中心点的离差平方和;经过上述第二步后,由于每个点被分配到最近的中心点,所以在新类中每个点的离差平方不大于每个点到原类中心点的离差平方,因此,K-means算法的第一次迭代过程类内离差和SSEF断减小,直到SS E不再减小时,K-means算法结束,得到最终的聚类结果。
[0040]在聚类结束后,如果类内的点集中,类与类之间的距离较大,S卩,聚类的类内离差和SSE越小,类间离差和SSA越大,那么聚类结果就比较合理,这和单因素方差分析中的组内组间的概念相同,在单因素方差分析方法中,聚类的类内离差和SSE、类间离差和SSA和总方差SST存在以下关系:
[0041]SST= SS A+SSE
[0042]而在本发明实施例中,在给定了子空间维数m后,由于数据已经过标准化处理,所以相同维数的不同子空间SST= m,因此,在上述关系SST= SSA+SSE中,当SS A^P SSE之间确定了其中一个之后,另一个也是可以确定的,因此,在本发明实施例中,可以基于SST =SSA+SSE输出SS jp SSA,用于评判所述最终的聚类结果,S卩,通过不同子空间的聚类结果SSA或-ssj^大小来评判不同子空间的聚类结果的优劣,在ssA最大(也即-ssE最大)的情况之下,聚类结果最优。
[0043]在上述步骤204-步骤205中,由于对每个m个维度的组合来说,该m个维度的Σ SSA1必定大于该m个维度的SS Am,那么,如果存在一组m个维度Z1的Σ SSA1小于或等于另外一组m个维度Z2的SSAni',则Z1的SSaJ^必定小于Z2的SS:,S卩,Z1不可能成为m维聚类的最佳维度,相较Zl,Z2为m维聚类的较佳维度。此时,迭代结束,算法退出,仍然选取Z2中的m个维度作为最佳的聚类维度,而无需对剩余未选取的维度进行组合聚类,由此能够达到运算效率的提升,较快地找到用于进行子空间聚类的最佳的m个维度。
[0044]应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0045]对应于上文实施例所述的子空间聚类的方法,图3示出了本发明实施例提供的子空间聚类的装置的结构框图,所述子空间聚类的装置可以为软件单元、硬件单元或者是软硬结合的单元。为了便于说明,仅示出了与本实施例相关的部分。
[0046]参照图3,该装置包括:
[0047]初始化单元31,初始化SSAm= 0,并随