基于密度自适应的特征向量组最优选取谱聚类方法与流程

文档序号:11216946阅读:628来源:国知局
基于密度自适应的特征向量组最优选取谱聚类方法与流程

本发明属于谱聚类算法领域,具体涉及一种基于密度自适应的特征向量组最优选取谱聚类方法。



背景技术:

聚类是数据挖掘、模式识别、机器学习等领域的重要研究内容之一。聚类就是将相似性较高的样本聚在一起,而将相似性较低的样本放在不同的簇中。随着聚类技术的发展,学者们提出多种聚类算法,例如聚类分析中最为经典的k-means算法,该算法较为简单,能够用于多种类型数据的聚类。但处理非凸数据集的时候,k-means算法往往会陷入局部最优解。为了解决k-means算法无法在非凸数据集上聚类的问题,研究学者开始利用谱聚类算法来处理非凸数据集。谱聚类算法是一种建立在谱图理论基础上的聚类算法,而与k-means聚类算法相比较起来,它具有能在任意形状的样本空间中聚类的特点。

在谱聚类算法的发展过程中出现了许多具有代表性的谱聚类算法,例如meila提出的多路归一化割谱聚类算法以及elhamifar等提出的稀疏子空间谱聚类算法。学者们针对谱聚类算法出现的问题提出了相应的改进算法,其中比较具有代表性的改进算法主要有:fowlkeset等人提出了算法,该算法有效的降低了算法的时间复杂度和空间复杂度,但是这个算法特别依赖于初始点的选取,聚类效果不稳定,而且当数据集中存在一定的噪声点和不相关的特征时,算法选择的特值向量组并不能很好的反映数据集的数据结构,本文将结合技术的njw算法作为本文的比较算法之一;由于目前的谱聚类算法大多都是离线算法,无法直接处理动态数据集,h.ning等人提出了isc算法,该算法能够使得动态数据所对应的相似度值也能够动态更新,而且这个算法的时间复杂度相对较低,但是该算法的聚类准确率相对较差;yand等人提出了自动近似谱聚类算法,该算法在降低了时间复杂度的基础上,增加了聚类准确率,但是该算法需要人工输入聚类个数;xchen等人提出了基于标志点的谱聚类算法,该算法选取标志点来近似的表示整个数据集,减少了算法的空间复杂度,但是该算法的标志点个数和聚类个数的选择需要人为设定;huang等人提出了整合相似度谱聚类算法该算法通过整合不同特征所对应的相似度矩阵得到一个最能表达数据结构的相似度矩阵,来消除不相关的特征和不起作用的相似度使得算法聚类效果更加准确,聚类结果更加稳定,但是该算法在处理多重尺度数据集时效果不理想;rxia等人提出了rmsc算法,该算法能够消除数据集中噪声点的干扰,并且该算法对参数的选择并不敏感,但是该算法无法自动确定聚类个数,且算法的聚类效果较差;ntremblay等人提出了压缩谱聚类算法,该算法降低了在特征分解和k-means算法聚类等步骤的时间复杂度,而且得到较好的聚类效果,但是该算法依据最大特征值选择特征向量法选择的特征向量组并不能很好的反映出数据结构;yli等人提出了密度谱聚类算法,该算法将高密度的点作为初始点,且构造基于密度自适应的相似度矩阵,这个算法能够在聚类的时候显示出来其良好的稳定性和较好的聚类效果,但是该算法并没有解决空间复杂度和时间复杂度过高的问题。

分析以上的改进谱聚类算法,目前谱聚类算法主要存在以下几个问题:第一,算法中一些自定义参数需要人为设定;第二,许多改进谱聚类算法在处理多重尺度数据集时效果不理想;第三,需要人工确定聚类个数;第四,难以选取合适的特征向量组来反映数据结构。针对这些问题,本文提出了基于密度自适应的最优特征向量组选取谱聚类算法。



技术实现要素:

为了客服现有谱聚类方法存在的一些自定义参数需要人为设定、处理多重尺度数据集时效果不理想、需要人工确定聚类个数、难以选取合适的特征向量组来反映数据结构的不足,本发明提出了基于密度自适应的最优特征向量组选取谱聚类方法。

本发明解决其技术问题所采用的技术方案是:

一种基于密度自适应的特征向量组最优选取谱聚类方法,所述方法包括以下步骤:

1)数据初始化,过程如下:

1.1)确定临近点个数迭代范围和初始临近点个数,设置初始fitness函数值为fitness_g=0;

1.2)对在没有获得数据集的每一维权重信息情况下,采用最小-最大方法对数据进行规范化,使之落入一个设定区间,把实验数据集的每一维同时用最小-最大方法进行规范化,处理后得到的第i个数据的第j维数值为:

其中x(j)表示所有数据点的第j维,xi(j)表示第i个数据的第j维的数值,u_b、l_b分别是规范后数据每一维的最大值和最小值;

2)基于密度自适应的稀疏相似度矩阵的计算,过程如下:

2.1)首先输入数据,设置划分区间个数block,即每个区间内有m=n/block个数据点;

2.2)计算第j区间的区间距离矩阵distj=[d(j-1)*m+1;d(j-1)*m+2;…;dj*m],其中第i个数据与所有点的距离形成点距离矩阵的表示形式为di=[d(i,1),d(i,2),…,d(i,n)],d(i,j)表示数据点i和数据点j之间的距离值;

2.3)依据当前临近点个数以及区间距离矩阵找出第j个区间内每个数据点对应的临近点,保留与临近点之间的距离值,删除其余距离值,从而得到区间稀疏距离矩阵,并求区间内各个数据所对应的局部尺度参数σi,如公式(2)所示:

σli=∑s∈liσs/num_li(2)

其中li表示与点i存在直接或者间接临近点关系的数据点集合,num_li表示li集合内数据点个数,参数σs的取值为数据点s与其t个临近点的距离均值,如公式(3)所示:

其中nj表示数据点i的t个临近点的集合n中的第j个点;

2.4)依据利用重新定义的基于密度自适应的相似函数计算出区间稀疏距离矩阵所对应的区间稀疏相似度矩阵;

基于密度自适应的相似函数的计算公式:

其中,对于任意数据对象i的局部密度ρi定义为:

其中m矩阵是由距离矩阵中最小的percent×n个距离值组成,percent表示邻居点个数占总数据点距离个数的比例,d(i,j)表示点i和点j之间的距离;为保证计算m矩阵的时候不会影响到算法的整体空间复杂度,需要在每个计算区间距离矩阵的同时,利用该区间距离矩阵逐个与m矩阵中仍保留的距离值比较,每次比较只将其中percent×n个最小距离值存储在m矩阵中,直到所有区间距离矩阵比较完为止;

2.5)如果迭代完,则执行2.6);否则更新j的值,并执行2.2);

2.6)将所得到的所有区间稀疏相似度矩阵整合得到稀疏相似度矩阵;

3)自动确定聚类中心算法,过程如下:

3.1)密度的定义引用步骤2.4)中局部密度的定义,得到密度矩阵

3.2)计算每个数据点的距离值,对于任何样本点,若临近点中有点的局部密度大于该点局部密度,则该点距离值为密度比它大的临近点中距离最近的点距离;否则将该点判断为非候选点,则将该点判断为候选点,其中只有候选点有可能成为聚类中心点,候选点到密度更高点的最小距离的计算如公式(7)所示:

其中dni表示数据点i的临近点中局部密度比它高的所有临近点与该点的距离值集合,ρi表示点i的密度,ρmax表示数据点最大局部密度,max(δ)表示最大距离值;

3.3)根据步骤3.1)和3.2)得到的密度矩阵和距离矩阵绘制出对应的决策图;

3.4)依据决策图的分析,引入变量γ,对于任意一个数据点i,γi定义为:

γi=ρi×δi(8)

根据γ的概率分布情况,对于该γ的分布进行曲线的拟合,发现其图形的拟合曲线形状类似于一条正态分布曲线;

3.5)利用选取置信区间的方式在所对应的正态分布曲线中寻找出聚类中心点的信息,由ρ-δ关系图上的离散数据点进行一元线性拟合,得到拟合曲线yδ=kxρ+b0,计算各个数据点的残差值εδi=yδi-δi,绘制残差直方图εδi-h,得到方差值σδ,利用λσ原则确定处在置信区间外的聚类中心点;

4)特征分解,求取特征向量组,过程如下:

4.1)首先需要计算出度矩阵d和拉普拉斯矩阵l,度矩阵是一个对角阵,它的对角线上的元素dii由相似度矩阵的第i行元素相加求和得到的,度矩阵d计算公式如下:

然后根据度矩阵d和相似度矩阵s计算得到拉普拉斯矩阵l,拉普拉斯矩阵计算公式如下:

4.2)将拉普拉斯矩阵进行特征分解,选出所有p个特征值为1所对应的主特征向量;

4.3)接着通过拉普拉斯分值法选出剩余特征向量的拉普拉斯分值最小的k-p个特征向量;

拉普拉斯分值lr计算方法为:

其中fri是第i个样本点的第r个特征,定义第r个特征均值为d是度矩阵,sij表示稀疏相似度矩阵s中互为临近点的样本点i和j之间的相似度;

4.4)将被选择的k个特征向量组成矩阵v,v=[v1,v2,…,vk],输出特征向量组v;

5)标准化特征向量组,并聚类,过程如下:

对所选取的特征向量组v进行标准化处理,得到矩阵u:

此时u矩阵中每行数据表示原始数据在拉普拉斯空间中的映射位置,接着对u矩阵所表示的所有数据在特征空间中的映射的元素进行k-means聚类;

6)最优临近点选取,过程如下:

6.1)得到当前临近点个数所对应的聚类结果;

6.2)依据当前临近点个数所对应的聚类结果计算对应的fitness函数值;

其中m表示簇的个数,n表示数据量,ci和cj表示第i个簇和第j个簇的聚类中心;

6.3)比较fitness_g与当前fitness函数值,如果当前fitness函数值较小,则更新fitness_g函数值并保留该临近点个数值作为当前最优临近点个数,否则保留fitness_g函数值;

6.4)更新临近点个数,判断是否超出范围,若临近点个数超出范围,则转至步骤6.5);否则转至步骤6.2);

6.5)输出最优临近点个数所对应的聚类结果。

本发明的技术构思为:基于密度自适应的特征向量组最优选取谱聚类算法,能够根据数据分布将数据点的密度信息引入到相似函数中,自动确定聚类中心的个数,选择最优特征向量组,降低了聚类过程的参数敏感性问题。该算法对于一个数据集的处理,首先进行预处理,采用最小-最大方法对数据进行规范化,使之落入一个特定区间,具体来说就是把实验数据集的每一维同时用最小-最大方法进行规范化;接着通过临近点法计算出区间稀疏距离矩阵以及定义的局部尺度参数,将数据点局部尺度参数引入到相似函数当中,通过区间稀疏距离矩阵和相似函数计算得出区间稀疏相似度矩阵,并整理成整体稀疏相似度矩阵;然后调用自动确定聚类中心ccfd算法,先确定具有更高局部密度的其他点的最小距离,并利用其与以确定的数据点的局部密度的关系进行残差分析,得到在置信区间外的拟合产生的聚类中心个数;接着依据公式计算出度矩阵d和拉普拉斯矩阵l,并对拉普拉斯矩阵l进行特征分解,结合最大特征值选择特征向量法和拉普拉斯分值法,选择出最能够表达数据结构的特征向量组;最后对数据集在特征空间中的映射特征向量组中的所有元素进行标准化处理,后进行k-means聚类,得到聚类结果;计算fitness函数值,不断迭代,选取最高fitness函数值所对应的最优临近点个数的聚类结果进行输出。

本发明的有益效果主要表现在:将数据点密度信息引入到相似函数中,使得算法处理多重尺度数据集时效果得到改善;能够选择出最优特征向量组;并且利用fitness函数实现了临近点个数的参数自适应。在真实数据集的实验结果表明,该算法具有良好的适用性,并使得聚类的结果更加准确。

附图说明

图1是基于密度自适应的特征向量组最优选取谱聚类方法的流程图。

图2是自动确定聚类中心算法流程图。

图3是样本数据分布与ρ-δ分布图的映射关系,其中(a)是样本数据分布图,(b)是ρ-δ分布图。

图4是最优特征向量组选取流程图

图5是fitness函数迭代确定最佳临近点个数流程图。

具体实施方式

下面结合附图对本发明作进一步描述。

参照图1~图5,一种基于密度自适应的特征向量组最优选取谱聚类方法,包括以下步骤:

1)数据预处理:

1.1)初始化设置,确定临近点个数迭代范围和初始临近点个数,设置初始fitness函数值为fitness_g=0,以及划分区间个数block;

1.2)对实际数据集进行分析我们可以看出来,一些数据集的某些维远远大于该数据集的其他维,而且这些维数值的差值较大,这导致其他维的重要性可能被减弱甚至被忽略。在没有获得数据集的每一维权重信息情况下,采用最小-最大方法对数据进行规范化,使之落入一个特定区间,具体来说就是把实验数据集的每一维同时用最小-最大方法进行规范化。具体过程如下:

输入数据集,对数据集的每一维x1,…,xn∈rm同时用最小-最大方法进行规范化,即第i个数据处理后的第j维数值为:

其中x(j)表示所有数据点的第j维,xi(j)表示第i个数据的第j维的数值,u_b、l_b分别是规范后数据每一维的最大值和最小值。本发明中u_b、l_b分别取1和-1,则规范化后yi(j)∈[-1,1]。

2)基于密度自适应的稀疏相似度矩阵的计算,算法流程图如图1所示,具体过程如下:

2.1)首先将所有数据划分到block个区间内,即每个区间内有个数据点;

2.2)计算第j区间的区间距离矩阵distj=[d(j-1)*m+1;d(j-1)*m+2;…;dj*m],其中第i个数据与所有点的距离形成点距离矩阵的表示形式为di=[||yi-y1||,||yi-y2||,…,||yi-yn||],||yi-yj||表示数据点i和数据点j之间的距离值;

2.3)临近点法的主要思想:如果一个样本的最临近的几个样本中的大多数属于同一个簇类,则该样本也属于这个簇类。使用临近点法计算相似度矩阵主要是保留临近点之间的相似度值,而舍去距离较远点之间的相似度值。

使用临近点法依据得到的区间距离矩阵找出第j个区间内每个数据点对应的临近点,保留与临近点之间的距离值,删除其余距离值,从而得到区间稀疏距离矩阵,并求区间内各个数据所对应的局部尺度参数σi,如公式(2)所示:

其中li表示与点i存在直接或者间接临近点关系的数据点集合,num_li表示li集合内数据点个数,参数σs的取值为数据点s与其t个临近点的距离均值,如公式(3)所示:

其中nj表示数据点i的t个临近点的集合n中的第j个点;

2.4)依据利用重新定义的基于密度自适应的相似函数计算出区间稀疏距离矩阵所对应的区间稀疏相似度矩阵;

基于密度自适应的相似函数的计算公式:

其中,对于任意数据对象i的局部密度ρi定义为:

其中m矩阵是由距离矩阵中最小的percent×n个距离值组成,percent表示邻居点个数占总数据点距离个数的比例,d(i,j)表示点i和点j之间的距离;为保证计算m矩阵的时候不会影响到算法的整体空间复杂度,需要在每个计算区间距离矩阵的同时,利用该区间距离矩阵逐个与m矩阵中仍保留的距离值比较,每次比较只将其中percent×n个最小距离值存储在m矩阵中,直到所有区间距离矩阵比较完为止;

2.5)如果迭代完,则执行2.6);否则更新j的值,并执行2.2);

2.6)将所得到的所有区间稀疏相似度矩阵整合得到稀疏相似度矩阵;

3)自动确定聚类中心个数ccfd算法流程图如图2所示,其基本思想为:簇类中心被较低局部密度的临近点所包围,且和具有更高局部密度的其他数据对象有相对较大的距离。

具体过程如下:

3.1)给定参数percent,引用2.5)定义的局部密度,得到密度矩阵

3.2)计算每个数据点的距离值,对于任何样本点,若临近点中没有点的局部密度大于该点密度,则将该点判断为候选点,其中只有候选点有可能成为聚类中心点,候选点到密度更高点的最小距离的计算如公式(7)所示;否则将该点判断为非候选点,则该点距离值为密度比它大的临近点中距离最近的点距离。

其中dni表示数据点i的临近点中局部密度比它高的所有临近点与该点的距离值集合,ρi表示点i的密度,ρmax表示数据点最大局部密度,max(δ)表示最大距离值。

所述的距离值计算方法,具体的数据点距离值计算步骤如下:

3.2.1)首先将步骤2.2)所得到的区间距离矩阵整理成完整的距离矩阵;

3.2.2)依据密度矩阵和临近点法,得到数据点的临近点密度;

3.2.3)如果临近点中没有点的密度大于该点密度,则将该点判断为候选点;否则该点为非候选点,其距离值为密度大于该点的临近点中距离最小的点;

3.2.4)依据公式(7)计算候选点的距离值;

3.2.5)整合所有数据点的距离值,输出该距离值矩阵。

3.3)根据步骤3.1)和3.2)得到的密度矩阵和距离矩阵绘制出对应的决策图,得到所有数据局部密度ρ和距离δ的函数关系ρ*(i)=f(δ(i));

如图3所示,图3为样本数据集dataset二维空间内数据分布。计算样本数据集中每个数据点i的局部密度ρi和到密度更高点的最小距离ρi,绘制出ρ-δ分布图,如图3(b)所示。图3所示主要是为了显示出数据分布与数据对象ρ-δ分布存在映射关系。图3(a)中的三个聚类中心分别为a1、a2、a3,他们在图3(a)的ρ-δ分布图中表现出了较大的ρ值和δ值;对于其他点,称其为边界点,它们均属于某一个类簇,表现出较小的ρ值和δ值。

3.4)引入变量γ,对于任意一个数据点i,其γi定义为:

γi=ρi×δi(8)

根据γ的概率分布情况,对于该γ的分布进行曲线的拟合,发现其图形的拟合曲线形状类似于一条正态分布曲线;

3.5)对ρ-δ关系图上的离散数据点进行线性拟合,得到拟合曲线yδ=kxρ+b0,计算各个数据点的残差值εδi=yδi-δi,绘制残差直方图εδi-h,得到均值μ和方差值σ,利用λσ原则确定处在置信区间外的聚类中心点。具体方法如下:

设置边界值wide=μ+λσ,将数据集中所有点的γ值与wide进行比较。对于数据点i,若γ>wide,则标记i为聚类中心点。依据这种思路比较所有数据点的γ值,确定出数据集的所有聚类中心点。

4)特征分解,求取最优特征向量组,流程图如图4所示,具体过程如下:

4.1)首先需要计算出度矩阵d和拉普拉斯矩阵l。度矩阵是一个对角阵,它的对角线上的元素dii由相似度矩阵的第i行元素相加求和得到的。度矩阵d计算公式如下:

然后根据度矩阵d和相似度矩阵s计算得到拉普拉斯矩阵l,拉普拉斯矩阵计算公式如下:

4.2)将拉普拉斯矩阵进行特征分解,选出所有p个特征值为1所对应的主特征向量;

4.3)接着通过拉普拉斯分值法选出剩余特征向量的拉普拉斯分值最小的k-p个特征向量。

拉普拉斯分值lr计算方法为:

其中fri是第i个样本点的第r个特征,定义第r个特征均值为d是度矩阵,dii=∑jsij,sij表示稀疏相似度矩阵s中互为临近点的样本点i和j之间的相似度;

4.4)将被选择的k个特征向量组成矩阵v,v=[v1,v2,…,vk],输出特征向量组v;

5)标准化特征向量组,并用k-means算法聚类,具体过程如下:

5.1)对所选取的特征向量组v进行标准化处理,得到矩阵u:

此时u矩阵中每行数据表示原始数据在拉普拉斯空间中的映射位置;

5.2)设置k个不同点作为算法初始聚类中心点,初始qold为无穷大,并设置聚类迭代阈值thr;

5.3)依据当前聚类中心点,将所有数据点分配到离该点最近的聚类中心所对应的类中,并计算所有数据点到所属聚类中心点距离;

5.4)将当前聚类中心点最近的一点设置为新的聚类中心点;

5.5)计算所有点到所属聚类的中心点距离总和,记为qnew;

5.6)如果thr大于|qnew-qold|/qold,则输出现有中心点所有数据点的类标信息;否则转至步骤5.3)。

6)最优临近点个数选取,流程图如图5所示,具体过程如下:

6.1)得到当前临近点个数所对应的聚类结果;

6.2)依据当前临近点个数所对应的聚类结果计算对应的fitness函数值;

其中m表示簇的个数,n表示数据量,ci和cj表示第i个簇和第j个簇的聚类中心;

6.3)比较fitness_g与当前fitness函数值,如果当前fitness函数值较小,则更新fitness_g函数值并保留该临近点个数值作为当前最优临近点个数,否则保留fitness_g函数值;

6.4)更新临近点个数,判断是否超出范围,若临近点个数超出范围,则转至步骤6.5);否则转至步骤6.2);

6.5)输出最优临近点个数所对应的聚类结果。

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