一种反馈式密度峰值聚类方法及系统与流程

文档序号:11620987阅读:256来源:国知局

本发明一种反馈式密度峰值聚类方法及系统,可以在任意形状的数据集上自动聚类,涉及模式识别和机器学习领域。特别涉及利用svm模型反馈两个类之间的聚类结果,根据svm训练得到的支持向量设计出一种新的反馈策略合并类,得到准确的聚类结果。



背景技术:

聚类分析是非监督学习,是数据挖掘的一个重要研究方向,大体可以分为基于划分、基于层次、基于模型、基于密度和基于网格等5类聚类算法。基于密度的聚类算法将簇看作数据空间中由低密度区域分隔开的高密度对象区域,同时聚类的形状没有基准,可以用来过滤噪声孤立点数据,发现任意形状的簇。

基于密度的密度峰值聚类算法在2014年被提出,可以用于不同数据的聚类分析。密度峰值聚类算法是根据聚类中心的两大属性:聚类中心本身的密度较大,被密度不超过它的邻居包围以及聚类中心离密度大于它的点距离较远来绘制决策图,快速寻找两个属性都大的值称为密度峰值作为聚类中心。密度峰值聚类算法不需要预先设定类簇数,同时算法复杂度不高,并能应用于任意形状的数据。但当聚类时一个类中出现多个密度峰值时,异常样本点将会作为伪聚类中心被选中,一个类会被分成多个类,影响聚类结果,同时密度峰值聚类算法在高维数据集上的准确率不高。



技术实现要素:

为了解决上述问题,本发明提出一种反馈式密度峰值聚类方法及系统。首先,用非负矩阵分解对数据集进行特征提取,然后,以基于密度峰值的聚类算法作为基础,进行聚类,最后提出一种反馈策略,对类进行合并得出正确的聚类结果。该方法不仅能够有效提高密度峰值算法的鲁棒性,在一个类中出现多个密度峰值的时候不会被多划分,发现任意形状的簇,同时能有效地处理高维数据集,具有很好地聚类效果。

本发明是通过以下方案实现的:

本发明涉及一种反馈式密度峰值聚类方法,以密度峰值聚类算法作为基础,在聚类之前引入非负矩阵分解,同时在聚类时提出一种反馈策略进行类合并,以提高聚类的准确率。

本发明具体步骤如下:

步骤1:用非负矩阵分解nmf对数据集进行特征提取。

步骤2:构成距离矩阵dij。

步骤3:利用计算每个数据点的局部密度ρi。

步骤4:利用计算每个数据点的距离属性δi。

步骤5:根据上述求出的局部密度属性ρi和距离属性δi,绘制决策图,取两个属性值都高的数据点作为聚类中心。

步骤6:将剩余点归于密度等于或者高于当前点的最近点一类。

步骤7:计算出当前类别的边界,然后找出边界中密度最高点的密度作为阈值,去除当前类别中小于此密度的点。

步骤8:用svm对每两个类进行训练,反馈一个结果值。

步骤9:根据反馈值对类进行合并,得出聚类结果。

本发明具有如下优点及效果:

(1)本方法能够当一个类中出现多密度峰值时准确聚类,不会将这个类划分成多个类。

(2)通过非负矩阵分解对数据集进行预先特征提取,解决密度峰值聚类算法在高维数据集上聚类不准确的弊端,有效提高聚类的准确率。

(3)采用自定义的反馈策略进行类合并,成功降低了由于聚类中心由人为选择的错误率,提出的方法可以自动进行准确聚类。

附图说明

为了对本发明进一步理解,更清楚地说明本发明实施例,下面将对实施例描述中所需要使用的附图作简单介绍。

图1为本申请实施案例提供的一种反馈式密度峰值聚类的流程图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施案例仅仅是本申请一部分实施例。基于本申请中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

实施例1

如图1所示,本实施案例包括以下步骤:

输入:数据集x={x1,x2,x3,……xn},截断距离dc,合并指标d。

输出:聚类结果标签。

步骤1,用非负矩阵分解对数据集进行特征提取,其计算公式如下:

步骤2,基于密度峰值聚类算法进行初始聚类。

步骤2.1:计算两两数据点之间的距离,构成距离矩阵dij,例如两个点的坐标分别为a(x11,x12,…,x1n)和b(x21,x22,…,x2n),则这两个数据点之间的距离:

步骤2.2:计算数据点的局部密度:

步骤2.3:计算数据点与具有更高密度的最近单元格之间的距离属性δi,其计算公式如下:

步骤2.4:根据局部密度属性ρi和距离属性δi,绘制决策图,取两个属性值都高的数据点作为聚类中心。

步骤2.5:采用最近邻算法将当前点归于密度等于或者高于当前点的最近点一类。

步骤2.6:去除噪声点,计算出当前类别的边界,然后找出边界中密度最高点的密度作为阈值,去除当前类别中小于此密度的点。

步骤3,根据反馈策略进行类合并。

步骤3.1:利用svm模型对类进行训练,根据训练得到的支持向量反馈每两个类的聚类结果值。假设聚类结果集c={c1,c2,c3,…ck},x={x1,x2,x3,…xn}和y={y1,y2,y3,…ym}分别为用svm训练后类h和类p的支持向量,代表数据点到所有类h中其他数据点的最短距离,代表数据点到类p中数据点的最短距离。那么类h和类p之间的反馈值为:

步骤3.2:如果上面得到的f(ch,cp)>d,我们将这两个类进行合并,直到所有的类都被访问结束合并。

步骤4,返回最终聚类结果标签。

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