一种聚类方法及装置与流程

文档序号:17187435发布日期:2019-03-22 21:29阅读:165来源:国知局
一种聚类方法及装置与流程

本发明涉及数据处理技术领域,特别是涉及一种聚类方法及装置。



背景技术:

聚类,即将物理或抽象对象的集合分成由类似的对象组成的多个类的过程。由聚类所生成的簇是一组数据对象的集合。聚类分析是研究样本或指标分类问题的一种统计分析方法,同时也是数据挖掘以及模式识别等领域中的一个重要的技术之一。

对于传统的聚类方法来讲,在数据的聚类过程中会存在一些问题,第一是数据的更新问题,另一个则是聚类的中心点不可控,当其在聚类过程中迭代到一定程度时,无论最后的聚类结果是否符合要求、中心点是否准确均无法判断,因此,也会影响最终的聚类结果的准确性。



技术实现要素:

本发明提供了一种聚类方法及装置以克服上述问题或者至少部分地解决上述问题。

根据本发明的一个方面,提供了一种聚类方法,包括:

获取包括多个聚类对象的待处理数据以及所述待处理数据的指定目标类别数;其中,所述待处理数据包括多媒体数据、文本数据和/或用户数据;

依据各聚类对象的类别属性将所述待处理数据中的各聚类对象进行分类,获得所述指定目标类别数的聚类类别;

计算各聚类类别的纯度;

结合所述各聚类类别的纯度确认所述待处理数据的最终聚类类别,并输出各最终聚类类别的聚类中心。

可选地,所述依据各聚类对象的类别属性将所述待处理数据中的各聚类对象进行分类,获得所述指定目标类别数的聚类类别,包括:

基于所述指定目标类别数随机初始化所述待处理数据的各聚类中心;

计算所述待处理数据中每个聚类对象到各聚类中心的距离,并以最小距离将各聚类对象分类到对应的聚类中心所在的聚类类别。

可选地,所述计算所述待处理数据中每个聚类对象到各聚类中心的距离,并以最小距离将各聚类对象分类到对应的聚类中心所在的聚类类别之后,还包括:

计算各聚类类别的新聚类中心;

获取所述每个聚类对象到所述新聚类中心的距离,并以最小距离将各聚类对象分类到对应的新聚类中心所属的聚类类别;

迭代计算所述各聚类类别的新聚类中心指定次数,直至各聚类类别的新聚类中心的变化距离在预设范围内。

可选地,所述结合所述各聚类类别的纯度确认所述待处理数据的最终聚类类别,并输出各最终聚类类别的聚类中心,包括:

判断所述各聚类类别的新聚类中心的迭代计算次数是否达到最大迭代次数;

若所述各聚类类别的新聚类中心的迭代计算次数没有达到最大迭代次数,则筛选出纯度大于预设的初始筛选纯度的第一聚类类别;

保存并输出所述第一聚类类别的聚类中心。

可选地,所述若所述各聚类类别的新聚类中心的迭代计算次数没有达到最大迭代次数,则筛选出纯度大于预设的初始筛选纯度的第一聚类类别之后,保存所述第一聚类类别的聚类中心之前,还包括:

若判断存在纯度小于所述初始筛选纯度的第二聚类类别,则继续迭代计算所述第二聚类类别的新聚类中心;

若所述第二聚类类别纯度达到所述初始筛选纯度,则保存并输出所述第二聚类类别的聚类中心。

可选地,所述若所述各聚类类别的新聚类中心的迭代计算次数没有达到最大迭代次数,则筛选出纯度大于预设的初始筛选纯度的第一聚类类别之后,还包括:

若判断所述第一聚类类别的数量为零,则将所述初始筛选纯度下调指定数值;其中,下调后的筛选纯度大于指定类别筛选纯度基准;

选取纯度达到当前筛选纯度的第三聚类类别;

保存并输出所述第三聚类类别的聚类中心。

可选地,所述若判断所述第一聚类类别的数量为零,则将所述初始筛选纯度下调指定数值之后,还包括:

若判断存在纯度小于当前筛选纯度的第四聚类类别,则继续迭代计算所述第四聚类类别的新聚类中心;

若所述第四聚类类别纯度达到当前筛选纯度,则保存并输出所述第四聚类类别的聚类中心。

可选地,所述选取纯度大于当前筛选纯度的第三聚类类别之后,还包括:

若判断所述第三聚类类别的数量为零,则执行至少一次基于当前筛选纯度下调指定数值、以及获取纯度达到新筛选纯度的聚类类别的步骤;

若在任意一次基于当前筛选纯度下调指定数值的之后,判断此次下调后的筛选纯度小于所述指定类别筛选纯度基准,则保存并输出当前各聚类类别的聚类中心。

可选地,所述判断所述各聚类类别的新聚类中心的迭代计算次数是否达到最大迭代次数之后,还包括:

若所述各聚类类别的新聚类中心的迭代计算次数达到最大迭代次数,则将最后一次迭代计算时的各聚类类别作为最终聚类类别,保存并输出所述最终聚类类别的聚类中心。

可选地,所述计算各聚类类别的纯度,包括:

对于任一聚类类别,基于该聚类类别的所有聚类对象筛选出指定比例的第一聚类对象;

分别获取与各所述第一聚类对象相邻的预设数量的第二聚类对象;

基于所述第二聚类对象的类别属性计算所述聚类类别的纯度。

可选地,所述计算各聚类类别的纯度,包括:

结合knn方法通过以下公式计算各聚类类别的纯度:

其中,purityi表示聚类类别i的纯度;classi表示聚类类别i;knny表示样本y的k近邻;num(x)表示在聚类类别i中所有聚类对象取k近邻的聚类对象总数;num(x∈classi)表示所述聚类对象总数中属于聚类类别i的聚类对象数。

根据本发明的另一个方面,还提供了一种聚类装置,包括:

获取模块,获取包括多个聚类对象的待处理数据以及所述待处理数据的指定目标类别数;其中,所述待处理数据包括多媒体数据、文本数据和/或用户数据;

聚类模块,配置为依据各聚类对象的类别属性将所述待处理数据中的各聚类对象进行分类,获得所述指定目标类别数的聚类类别;

计算模块,配置为计算各聚类类别的纯度;

确认模块,配置为结合所述各聚类类别的纯度确认所述待处理数据的最终聚类类别,并输出各最终聚类类别的聚类中心。

可选地,所述聚类模块包括:

初始化单元,配置为基于所述指定目标类别数随机初始化所述待处理数据的各聚类中心;

第一分类单元,配置为计算所述待处理数据中每个聚类对象到各聚类中心的距离,并以最小距离将各聚类对象分类到对应的聚类中心所在的聚类类别。

可选地,所述聚类模块还包括:

迭代计算单元,配置为计算各聚类类别的新聚类中心;

获取所述每个聚类对象到所述新聚类中心的距离,并以最小距离将各聚类对象分类到对应的新聚类中心所属的聚类类别;

迭代计算所述各聚类类别的新聚类中心指定次数,直至各聚类类别的新聚类中心的变化距离在预设范围内。

可选地,所述确认模块包括:

迭代次数判断单元,配置为判断所述各聚类类别的新聚类中心的迭代计算次数是否达到最大迭代次数;

筛选单元,配置为当所述各聚类类别的新聚类中心的迭代计算次数没有达到最大迭代次数时,筛选出纯度大于预设的初始筛选纯度的第一聚类类别;

输出单元,配置为保存并输出所述第一聚类类别的聚类中心。

可选地,所述筛选单元,还配置为在筛选出纯度大于预设的初始筛选纯度的第一聚类类别之后,判断存在纯度小于所述初始筛选纯度的第二聚类类别时,继续迭代计算所述第二聚类类别的新聚类中心;

所述输出单元,还配置为当所述第二聚类类别纯度达到所述初始筛选纯度时,保存并输出所述第二聚类类别的聚类中心。

可选地,所述筛选单元,还配置为判断所述第一聚类类别的数量为零时,将所述初始筛选纯度下调指定数值;其中,下调后的筛选纯度大于指定类别筛选纯度基准;

所述输出单元,还配置为选取纯度达到当前筛选纯度的第三聚类类别,保存并输出所述第三聚类类别的聚类中心。

可选地,所述筛选单元,还配置为在将所述初始筛选纯度下调指定数值之后,当判断存在纯度小于当前筛选纯度的第四聚类类别时,继续迭代计算所述第四聚类类别的新聚类中心;

所述输出单元,还配置为当所述第四聚类类别纯度达到当前筛选纯度时,保存并输出所述第四聚类类别的聚类中心。

可选地,所述筛选单元,还配置为选取纯度大于当前筛选纯度的第三聚类类别之后,当判断所述第三聚类类别的数量为零时,执行至少一次基于当前筛选纯度下调指定数值、以及获取纯度达到新筛选纯度的聚类类别的步骤;

所述输出单元,还配置为当在任意一次基于当前筛选纯度下调指定数值的之后,判断此次下调后的筛选纯度小于所述指定类别筛选纯度基准时,保存并输出当前各聚类类别的聚类中心。

可选地,所述输出单元还配置为:

当所述各聚类类别的新聚类中心的迭代计算次数达到最大迭代次数时,将最后一次迭代计算时的各聚类类别作为最终聚类类别,保存并输出所述最终聚类类别的聚类中心。

可选地,所述计算模块还配置为:

对于任一聚类类别,基于该聚类类别的所有聚类对象筛选出指定比例的第一聚类对象;

分别获取与各所述第一聚类对象相邻的预设数量的第二聚类对象;

基于所述第二聚类对象的类别属性计算所述聚类类别的纯度。

可选地,所述计算模块还配置为:

结合knn方法通过以下公式计算各聚类类别的纯度:

其中,purityi表示聚类类别i的纯度;classi表示聚类类别i;knny表示样本y的k近邻;num(x)表示在聚类类别i中所有聚类对象取k近邻的聚类对象总数;num(x∈classi)表示所述聚类对象总数中属于聚类类别i的聚类对象数。

根据本发明的另一个方面,还提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序代码,当所述计算机程序代码在计算设备上运行时,导致所述计算设备执行上述任一项所述的聚类方法。

根据本发明的另一个方面,还提供了一种计算设备,包括:

处理器;

存储有计算机程序代码的存储器;

当所述计算机程序代码被所述处理器运行时,导致所述计算设备执行上述任一项所述的聚类方法。

本发明提供了一种聚类方法及装置,在获取到包括多个聚类对象的待处理数据以及指定目标类别数之后可对多个聚类对象进行分类,并且在完成聚类之后会计算各聚类类别的纯度,进而结合各聚类类别的纯度确认最终聚类类别,以输出最终聚类类别的聚类中心。基于本发明提供的聚类方法,在聚类过程中引入了纯度的计算对聚类结果进行监督,在优化待处理数据聚类过程的同时,提升聚类结果的准确性。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1是根据本发明实施例的聚类方法流程示意图;

图2是根据本发明实施例的聚类类别的纯度计算方法流程示意图;

图3是根据本发明优选实施例的聚类方法流程示意图;

图4是根据本发明实施例的聚类装置结构示意图;

图5是根据本发明优选实施例的聚类装置结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1是根据本发明实施例的聚类方法流程示意图,参见图1可知,本发明实施例提供的聚类方法可以包括:

步骤s102,获取包括多个聚类对象的待处理数据以及上述待处理数据的指定目标类别数;其中,待处理数据包括多媒体数据、文本数据和/或用户数据;

步骤s104,依据各聚类对象的类别属性将待处理数据中的各聚类对象进行分类,获得指定目标类别数的聚类类别;

步骤s106,计算各聚类类别的纯度;

步骤s108,结合各聚类类别的纯度确认待处理数据的最终聚类类别,并输出各最终聚类类别的聚类中心。

本发明实施例提供了一种聚类方法,在获取到包括多个聚类对象的待处理数据以及指定目标类别数之后可对多个聚类对象进行分类,并且在完成聚类之后会计算各聚类类别的纯度,进而结合各聚类类别的纯度确认最终聚类类别,以输出最终聚类类别的聚类中心。基于本发明实施例提供的聚类方法,在聚类过程中引入了纯度的计算对聚类结果进行监督,在优化待处理数据聚类过程的同时,提升聚类结果的准确性。本发明实施例中的待处理数据可以为多媒体数据,如图片、音频以及视频等数据,还可以是文本数据或是用户数据,对于多媒体数据以及文本数据来讲,可以先提取其中的数据特征,进而基于各多媒体数据的数据特征在同一多维向量空间中相应地数据坐标点,进而基于各数据坐标点进行聚类。对于用户数据来讲,可以基于用户的视频浏览历史、关键词搜索历史以及浏览习惯等为各用户配置标识,进而基于各用户的标识在多维向量空间中确定用户的坐标点,进而基于各坐标点对相应的用户进行聚类,将具备相同兴趣爱好或浏览习惯的用户进行分类,以进行信息推送等。

在上述步骤s104中提及,会依据各聚类对象的类别属性对各聚类对象进行分类,本发明实施例中可优先采用k-means聚类算法对各聚类对象进行分类,可选地,上述步骤s104可以包括:

s104-1,基于指定目标类别数随机初始化待处理数据的各聚类中心;

s104-2,计算上述待处理数据中每个聚类对象到各聚类中心的距离,并以最小距离将各聚类对象分类到对应的聚类中心所在的聚类类别。

对于待处理数据中的各聚类对象来讲,可以看做是一个多维空间中的多个数据点,在初始聚类时,由于已经获知指定目标类别数如k(k可以为自然数,根据不同需求进行设置),即待处理数据需要分为k类,因此,可先基于该指定目标类别数随机初始化待处理数据的各聚类中心,选取k个聚类对象作为初始聚类中心,再对于其他的聚类对象计算到每个所选取聚类中心的距离,进而将各聚类对象分类到与其距离最近的聚类中心。

一般情况下,对多个聚类对象进行聚类时,需要进行多次迭代处理才能达到最优效果,因此,在上述步骤s104-2之后,还可以包括:

s104-3,计算各聚类类别的新聚类中心;

s104-4,获取每个聚类对象到新聚类中心的距离,并以最小距离将各聚类对象分类到对应的新聚类中心所属的聚类类别;

s104-5,迭代计算各聚类类别的新聚类中心指定次数,直至各聚类类别的新聚类中心的变化距离在预设范围内。

在上述步骤s104-3计算各聚类类别的新聚类中心时,由于在上述步骤s104-2已经对各聚类对象聚类以获得指定目标类别数的聚类类别,因此,在对任一聚类类别时,可计算该聚类类别的均值,即计算与各聚类对象向量长度相同的聚类对象作为该新聚类中心,其他聚类类别做同样的数据处理。

在确认出指定目标类别数的新聚类中心之后,再计算各聚类对象到新聚类中心的距离,以最小距离将各聚类对象分类到对应的新聚类中心所属聚类类别。重复上述步骤s104-3~s104-4,迭代计算各聚类类别的新聚类中心指定次数,直至各聚类类别的新聚类中心的变化距离在预设范围内,该预设距离可根据不同的应用需求进行设置,本发明不做限定。

在本发明实施例中,执行完一次新聚类中心的选取时,即可对新的聚类类别的纯度进行计算,或是在聚类指定次数之后计算聚类类别的纯度。

上述步骤s108介绍,可以结合各聚类类别的纯度确认待处理数据的最终聚类类别,并输出各最终聚类类别的聚类中心,在本发明优选实施例中,步骤s108可以具体包括以下步骤:

s108-1,判断各聚类类别的新聚类中心的迭代计算次数是否达到最大迭代次数;

s108-2,若各聚类类别的新聚类中心的迭代计算次数没有达到最大迭代次数,则筛选出纯度大于预设的初始筛选纯度的第一聚类类别;

s108-3,保存并输述第一聚类类别的聚类中心。

在对待处理数据中的各聚类对象执行聚类操作时,可预先设置初始筛选纯度,上文提及,各聚类类别可迭代指定次数,并且可以在每次重新计算新聚类中心之后计算类别纯度,因此,本优选实施例中,计算出各聚类类别的纯度之后,可判断各聚类类别的新聚类中心的迭代计算次数是否达到最大迭代次数,若没有到达,则将各聚类类别的纯度与初始筛选纯度进行比较,若任一聚类类别的纯度达到(即大于或等于)初始筛选纯度,则确定该聚类类别满足要求,此时即可将其作为第一聚类类别,保存并输出该聚类类别的聚类中心。另外,在上述步骤s108-1之后,若各聚类类别的新聚类中心的迭代计算次数达到最大迭代次数,则将最后一次迭代计算时的各聚类类别作为最终聚类类别,保存并输出所述最终聚类类别的聚类中心。得到最终聚类的聚类中心之后,即可计算各聚类对象到各最终聚类类别的聚类中心的距离,进而将各聚类对象分类至与各自聚类最近的聚类中心所属类别后输出最终的聚类类别,实现多个聚类对象的聚类。另外,当后续对待处理数据进行更新或新增新聚类对象时,可依据已输出的聚类中心对新的聚类对象进行快速聚类,提升数据更新后的聚类效率。

有些情况下,可能并非每个聚类类别的纯度在同一次聚类之后可以同时达到初始筛选纯度,因此,在上述步骤s108-2之前,还可以包括以下步骤:

s108-4,若判断存在纯度小于初始筛选纯度的第二聚类类别,则继续迭代计算第二聚类类别的新聚类中心;

s108-5,若第二聚类类别纯度达到初始筛选纯度,则保存并输出第二聚类类别的聚类中心。

由于对于纯度的对比是在判断各聚类类别的新聚类中心的迭代计算次数没有达到最大迭代次数的前提下进行的,因此,当判断存在纯度小于初始筛选纯度的第二聚类类别时,可以继续迭代计算第二聚类类别的新聚类中心,基于新聚类中心获得的聚类类别的纯度达到该初始筛选纯度时,即可保存并输出第二聚类类别的聚类中心。

上述实施例所介绍的是聚类类别达到初始筛选纯度时的情况,实际应用中,在对各聚类对象的聚类过程中,可能经过多个迭代之后各聚类类别的纯度无法达到初始筛选纯度,此时,则可以降低筛选纯度,再确定最终聚类类别,即上述步骤s108-2之后,还可以包括:

s108-6,若判断第一聚类类别的数量为零,则将初始筛选纯度下调指定数值;其中,下调后的筛选纯度大于指定类别筛选纯度基准;

s108-7,选取纯度达到当前筛选纯度的第三聚类类别;

s108-8,保存并输出第三聚类类别的聚类中心。

也就是说,若判断没有聚类类别达到初始筛选纯度,则可以将初始筛选纯度下调指定数值,进而选取纯度达到当前筛选纯度的第三聚类类别,同时保存并输出第三聚类类别的聚类中心。另外,下调后的筛选纯度需大于指定类别筛选纯度基准,本发明实施例中的指定类别筛选纯度基准为判断聚类类别的纯度的最低标准,每次经下调后的筛选纯度需大于该最低标准,以保证聚类类别的准确性。本发明实施例中的指定类别筛选纯度基准可以基于不同的应用场景、以及不同的聚类对象进行设置,本发明不做限定。

可选地,在上述步骤s108-6之后,还可以包括:

s108-9,若判断存在纯度小于当前筛选纯度的第四聚类类别,则继续迭代计算第四聚类类别的新聚类中心;

s108-10,若所第四聚类类别纯度达到当前筛选纯度,则保存并输出第四聚类类别的聚类中心。

此外,对于有些聚类类别来讲,即使下调了初始筛选纯度,其纯度可能依旧无法达到(即大于或等于)下调后的筛选纯度,也就是说判断存在纯度小于当前筛选纯度的第四聚类类别,此时可继续迭代计算第四聚类类别的新聚类中心,当迭代计算过程中判断其纯度达到当前筛选纯度时,保存并输出第四聚类类别的聚类中心。除此之外,如果选取纯度大于当前筛选纯度的第三聚类类别之后,判断第三聚类类别的数量为零,则可以继续执行至少一次基于当前筛选纯度下调指定数值、以及获取纯度达到新筛选纯度的聚类类别的步骤。

前文介绍,本发明实施例中会设置指定类别筛选纯度基准为判断聚类类别的纯度的最低标准,因此,在每次对筛选纯度进行下调之后,需与指定类别筛选纯度基准进行对比,在执行至少一次基于当前筛选纯度下调指定数值、以及获取纯度达到新筛选纯度的聚类类别的步骤之后,若在任意一次基于当前筛选纯度下调指定数值的之后,判断此次下调后的筛选纯度小于指定类别筛选纯度基准,则保存并输出当前各聚类类别的聚类中心,无需再进行迭代筛选。

在上述实施例中介绍,在确认最终聚类类别时,需要结合各聚类类别的纯度进行判断。本发明优选实施例还提供了一种聚类类别的纯度计算方法,如图2所示,根据本发明实施例提供的聚类类别的纯度计算方法可以包括:

步骤s202,对于任一聚类类别,基于该聚类类别的所有聚类对象筛选出指定比例的第一聚类对象;

步骤s204,分别获取与各第一聚类对象相邻的预设数量的第二聚类对象;

步骤s206,基于第二聚类对象的类别属性计算聚类类别的纯度。

举例来说,在计算任一聚类类别的纯度时,可先选取该聚类类别中全部聚类对象或是其中的90%的聚类对象作为第一聚类对象,假设第一聚类对象为y个,计算纯度时,可获取与上述y个聚类对象中各聚类对象相邻的15个聚类对象作为第二聚类对象,即与每个聚类对象距离最近的15个聚类对象,此时,可计算在15*y个聚类对象中属于该聚类类别的聚类对象所占比例即为该聚类类别的纯度。

可选地,本发明实施例计算各聚类类别的纯度时,可结合knn方法,即k最近邻(knn,k-nearestneighbor)分类算法计算各聚类类别的纯度。knn算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。具体可通过以下公式计算:

其中,purityi表示聚类类别i的纯度;classi表示聚类类别i;knny表示样本y的k近邻;num(x)表示在聚类类别i中所有聚类对象取k近邻的聚类对象总数;num(x∈classi)表示所述聚类对象总数中属于聚类类别i的聚类对象数。

下面通过一优选实施例对上述实施例所提供的聚类方法进行详细说明。在本优选实施例中,待处理数据包括音频数据,其中包括的多个音频作为聚类对象进行聚类;其中,设定指定目标类别数为4,类别筛选纯度基准为base_purity,当前筛选纯度为select_purity,指定迭代次数iteration为y。

参见图3可知,本发明优选实施例提供的聚类方法可以包括:

步骤s301,获取待处理音频数据,待处理音频数据中包括多个音频作为聚类对象,并且使用时序cnn网络抽取各音频对象的音频表征,在预先构建的多维向量空间中将各音频对象映射为该多维向量空间中的各数据点;

步骤s302,采用k-means聚类方法将多维向量空间中的多个音频数据点进行聚类,得到a、b、c、d共4个聚类类别;

步骤s303,分别计算a、b、c、d各聚类类别的类别纯度;计算各类别纯度时,例如类别a,假设属于类别a的音频数量为20,首先选取类别a中的所有的音频数据点,再基于每个音频数据对应的数据点获取距离近邻(即与其距离最近)的15个音频数据点;此时,共得到15*20=300个数据点,再计算这300个音频数据点中属于类别a的音频数据点所占的比例即为类别a的纯度;

步骤s304,判断对待处理音频数据的聚类是否达到最大迭代次数y,若没有则执行步骤s306,若达到最大迭代次数y,则执行步骤s305;

步骤s305,将当前聚类类别作为最终聚类类别,输出最终聚类类别的聚类中心;

步骤s306,选择纯度大于当前筛选纯度(select_purity)的聚类类别;一般情况下,在计算纯度之前,会先设置一个初始筛选纯度如90%,在第一次聚类之后,分别计算a、b、c、d四个聚类类别的纯度,并选择其中纯度大于等于90%的聚类类别;

步骤s307,判断纯度达到90%的聚类类别个数是否为零;

步骤s308,若纯度达到90%的聚类类别个数不为零,则保存并输出纯度达到90%的聚类类别的聚类中心,对其他纯度没有达到90%聚类类别继续迭代聚类;若纯度达到90%的聚类类别个数为零,则执行步骤s309;

步骤s309,可以减少当前筛选纯度(select_purity),下调一定数值,如降低至80%,对当前筛选纯度(select_purity)赋予新的值,即80%;

步骤s310,判断此时的当前筛选纯度(select_purity=80%)与类别筛选纯度基准为base_purity进行比较,若当前筛选纯度(select_purity)小于类别筛选纯度基准为base_purity,则执行步骤s305;若当前筛选纯度(select_purity)大于或等于类别筛选纯度基准为base_purity;则执行步骤s306,筛选纯度达到当前筛选纯度(select_purity=80%)的聚类类别。

在本发明优选实施例中,可筛选出纯度达到所设置筛选纯度的聚类类别,使得聚类结果达到预设要求,如果没有聚类类别达到当前筛选纯度的话,还可以下调筛选纯度,即对当前筛选纯度进行递减。此外,本优选实施例还可以设置纯度筛选基准,如果当前筛选纯度下降至筛选纯度基准的话,为保证最终聚类类别的准确性,则不会再进行下调,将聚类类别最终结果控制在优效的范围之内。上述实施例介绍了对于待处理数据为音频数据的聚类方法,当待处理数据为视频数据时,同样可先提取视频数据的特征数据,进而基于各视频的特征数据在同一多维空间中相应地数据坐标点,进而基于各数据坐标点采用上述方式进行聚类。当待处理数据为文本数据时,可先对各项文本进行分词,进而基于公共关键词构建的多维向量空间中确定各文本对应的数据点,最后基于空间向量中的数据点采用本实施例提供的方法对各文本进行聚类。

基于同一发明构思,本发明实施例还提供了一种聚类装置,如图4所示,根据本发明实施例提供的聚类装置可以包括:

获取模块410,获取包括多个聚类对象的待处理数据以及上述待处理数据的指定目标类别数;其中,上述待处理数据包括多媒体数据、文本数据和/或用户数据;

聚类模块420,配置为依据各聚类对象的类别属性将待处理数据中的各聚类对象进行分类,获得指定目标类别数的聚类类别;

计算模块430,配置为计算各聚类类别的纯度;

确认模块440,配置为结合各聚类类别的纯度确认待处理数据的最终聚类类别,并输出各最终聚类类别的聚类中心。

在本发明一优选实施例中,如图5所示,聚类模块420可以包括:

初始化单元421,配置为基于指定目标类别数随机初始化待处理数据的各聚类中心;

第一分类单元422,配置为计算待处理数据中每个聚类对象到各聚类中心的距离,并以最小距离将各聚类对象分类到对应的聚类中心所在的聚类类别。

在本发明一优选实施例中,如图5所示,聚类模块420还可以包括:

迭代计算单元423,配置为计算各聚类类别的新聚类中心;

获取每个聚类对象到新聚类中心的距离,并以最小距离将各聚类对象分类到对应的新聚类中心所属的聚类类别;

迭代计算各聚类类别的新聚类中心指定次数,直至各聚类类别的新聚类中心的变化距离在预设范围内。

在本发明一优选实施例中,如图5所示,确认模块440可以包括:

迭代次数判断单元441,配置为判断各聚类类别的新聚类中心的迭代计算次数是否达到最大迭代次数;

筛选单元442,配置为当各聚类类别的新聚类中心的迭代计算次数没有达到最大迭代次数时,筛选出纯度大于预设的初始筛选纯度的第一聚类类别;

输出单元443,配置为保存并输出第一聚类类别的聚类中心。

在本发明一优选实施例中,筛选单元442,还可以配置为在筛选出纯度大于预设的初始筛选纯度的第一聚类类别之后,判断存在纯度小于所述初始筛选纯度的第二聚类类别时,继续迭代计算第二聚类类别的新聚类中心;

输出单元443,还可以配置为当第二聚类类别纯度达到初始筛选纯度时,保存并输出第二聚类类别的聚类中心。

在本发明一优选实施例中,筛选单元442,还可以配置为判断第一聚类类别的数量为零时,将初始筛选纯度下调指定数值;其中,下调后的筛选纯度大于指定类别筛选纯度基准;

输出单元443,还可以配置为选取纯度达到当前筛选纯度的第三聚类类别,保存并输出第三聚类类别的聚类中心。

在本发明一优选实施例中,筛选单元442,还可以配置为在将初始筛选纯度下调指定数值之后,当判断存在纯度小于当前筛选纯度的第四聚类类别时,继续迭代计算第四聚类类别的新聚类中心;

输出单元443,还可以配置为当第四聚类类别纯度达到当前筛选纯度时,保存并输出第四聚类类别的聚类中心。

在本发明一优选实施例中,筛选单元442,还可以配置为选取纯度大于当前筛选纯度的第三聚类类别之后,当判断第三聚类类别的数量为零时,执行至少一次基于当前筛选纯度下调指定数值、以及获取纯度达到新筛选纯度的聚类类别的步骤;

输出单元443,还可以配置为当在任意一次基于当前筛选纯度下调指定数值的之后,判断此次下调后的筛选纯度小于指定类别筛选纯度基准时,保存并输出当前各聚类类别的聚类中心。

在本发明一优选实施例中,输出单元443还可以配置为:

当各聚类类别的新聚类中心的迭代计算次数达到最大迭代次数时,将最后一次迭代计算时的各聚类类别作为最终聚类类别,保存并输出最终聚类类别的聚类中心。

在本发明一优选实施例中,计算模块430还可以配置为:

对于任一聚类类别,基于该聚类类别的所有聚类对象筛选出指定比例的第一聚类对象;

分别获取与各第一聚类对象相邻的预设数量的第二聚类对象;

基于第二聚类对象的类别属性计算聚类类别的纯度。

在本发明一优选实施例中,计算模块430还可以配置为:

结合knn方法通过以下公式计算各聚类类别的纯度:

其中,purityi表示聚类类别i的纯度;classi表示聚类类别i;knny表示样本y的k近邻;num(x)表示在聚类类别i中所有聚类对象取k近邻的聚类对象总数;num(x∈classi)表示聚类对象总数中属于聚类类别i的聚类对象数。

基于同一发明构思,本发明实施例还提供了一种计算机存储介质,计算机存储介质存储有计算机程序代码,当计算机程序代码在计算设备上运行时,导致计算设备执行上述任一实施例所述的聚类方法。

基于同一发明构思,本发明实施例还提供了一种计算设备,包括:

处理器;

存储有计算机程序代码的存储器;

当计算机程序代码被处理器运行时,导致计算设备执行上述任一实施例所述的聚类方法。

本发明实施例提供了一种更高效率的聚类方法,在获取到包括多个聚类对象的待处理数据以及指定目标类别数之后可对多个聚类对象进行分类,并且在完成聚类之后会计算各聚类类别的纯度,进而结合各聚类类别的纯度确认最终聚类类别,以输出最终聚类类别的聚类中心。基于本发明实施例提供的聚类方法,在聚类过程中引入了纯度的计算对聚类结果进行监督,在优化待处理数据聚类过程的同时,提升聚类结果的准确性。另外,本发明实施例所提供的方法除了可以设置初始筛选纯度之外,还可以在聚类过程中逐次递减,同时设定筛选纯度下限,从而实现在有效范围内得到最准确的聚类结果。

所属领域的技术人员可以清楚地了解到,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,为简洁起见,在此不另赘述。

另外,在本发明各个实施例中的各功能单元可以物理上相互独立,也可以两个或两个以上功能单元集成在一起,还可以全部功能单元都集成在一个处理单元中。上述集成的功能单元既可以采用硬件的形式实现,也可以采用软件或者固件的形式实现。

本领域普通技术人员可以理解:所述集成的功能单元如果以软件的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,其包括若干指令,用以使得一台计算设备(例如个人计算机,服务器,或者网络设备等)在运行所述指令时执行本发明各实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom)、随机存取存储器(ram),磁碟或者光盘等各种可以存储程序代码的介质。

或者,实现前述方法实施例的全部或部分步骤可以通过程序指令相关的硬件(诸如个人计算机,服务器,或者网络设备等的计算设备)来完成,所述程序指令可以存储于一计算机可读取存储介质中,当所述程序指令被计算设备的处理器执行时,所述计算设备执行本发明各实施例所述方法的全部或部分步骤。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:在本发明的精神和原则之内,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案脱离本发明的保护范围。

根据本发明实施例的一个方面,提供了a1.一种聚类方法,包括:

获取包括多个聚类对象的待处理数据以及所述待处理数据的指定目标类别数;其中,所述待处理数据包括多媒体数据、文本数据和/或用户数据;

依据各聚类对象的类别属性将所述待处理数据中的各聚类对象进行分类,获得所述指定目标类别数的聚类类别;

计算各聚类类别的纯度;

结合所述各聚类类别的纯度确认所述待处理数据的最终聚类类别,并输出各最终聚类类别的聚类中心。

a2.根据a1所述的方法,其中,所述依据各聚类对象的类别属性将所述待处理数据中的各聚类对象进行分类,获得所述指定目标类别数的聚类类别,包括:

基于所述指定目标类别数随机初始化所述待处理数据的各聚类中心;

计算所述待处理数据中每个聚类对象到各聚类中心的距离,并以最小距离将各聚类对象分类到对应的聚类中心所在的聚类类别。

a3.根据a2所述的方法,其中,所述计算所述待处理数据中每个聚类对象到各聚类中心的距离,并以最小距离将各聚类对象分类到对应的聚类中心所在的聚类类别之后,还包括:

计算各聚类类别的新聚类中心;

获取所述每个聚类对象到所述新聚类中心的距离,并以最小距离将各聚类对象分类到对应的新聚类中心所属的聚类类别;

迭代计算所述各聚类类别的新聚类中心指定次数,直至各聚类类别的新聚类中心的变化距离在预设范围内。

a4.根据a3所述的方法,其中,所述结合所述各聚类类别的纯度确认所述待处理数据的最终聚类类别,并输出各最终聚类类别的聚类中心,包括:

判断所述各聚类类别的新聚类中心的迭代计算次数是否达到最大迭代次数;

若所述各聚类类别的新聚类中心的迭代计算次数没有达到最大迭代次数,则筛选出纯度大于预设的初始筛选纯度的第一聚类类别;

保存并输出所述第一聚类类别的聚类中心。

a5.根据a4所述的方法,其中,所述若所述各聚类类别的新聚类中心的迭代计算次数没有达到最大迭代次数,则筛选出纯度大于预设的初始筛选纯度的第一聚类类别之后,保存所述第一聚类类别的聚类中心之前,还包括:

若判断存在纯度小于所述初始筛选纯度的第二聚类类别,则继续迭代计算所述第二聚类类别的新聚类中心;

若所述第二聚类类别纯度达到所述初始筛选纯度,则保存并输出所述第二聚类类别的聚类中心。

a6.根据a4所述的方法,其中,所述若所述各聚类类别的新聚类中心的迭代计算次数没有达到最大迭代次数,则筛选出纯度大于预设的初始筛选纯度的第一聚类类别之后,还包括:

若判断所述第一聚类类别的数量为零,则将所述初始筛选纯度下调指定数值;其中,下调后的筛选纯度大于指定类别筛选纯度基准;

选取纯度达到当前筛选纯度的第三聚类类别;

保存并输出所述第三聚类类别的聚类中心。

a7.根据a6所述的方法,其中,所述若判断所述第一聚类类别的数量为零,则将所述初始筛选纯度下调指定数值之后,还包括:

若判断存在纯度小于当前筛选纯度的第四聚类类别,则继续迭代计算所述第四聚类类别的新聚类中心;

若所述第四聚类类别纯度达到当前筛选纯度,则保存并输出所述第四聚类类别的聚类中心。

a8.根据a6所述的方法,其中,所述选取纯度大于当前筛选纯度的第三聚类类别之后,还包括:

若判断所述第三聚类类别的数量为零,则执行至少一次基于当前筛选纯度下调指定数值、以及获取纯度达到新筛选纯度的聚类类别的步骤;

若在任意一次基于当前筛选纯度下调指定数值的之后,判断此次下调后的筛选纯度小于所述指定类别筛选纯度基准,则保存并输出当前各聚类类别的聚类中心。

a9.根据a4-a8任一项所述的方法,其中,所述判断所述各聚类类别的新聚类中心的迭代计算次数是否达到最大迭代次数之后,还包括:

若所述各聚类类别的新聚类中心的迭代计算次数达到最大迭代次数,则将最后一次迭代计算时的各聚类类别作为最终聚类类别,保存并输出所述最终聚类类别的聚类中心。

a10.根据a1-a8任一项所述的方法,其中,所述计算各聚类类别的纯度,包括:

对于任一聚类类别,基于该聚类类别的所有聚类对象筛选出指定比例的第一聚类对象;

分别获取与各所述第一聚类对象相邻的预设数量的第二聚类对象;

基于所述第二聚类对象的类别属性计算所述聚类类别的纯度。

a11.根据a1-a8任一项所述的方法,其中,所述计算各聚类类别的纯度,包括:

结合knn方法通过以下公式计算各聚类类别的纯度:

其中,purityi表示聚类类别i的纯度;classi表示聚类类别i;knny表示样本y的k近邻;num(x)表示在聚类类别i中所有聚类对象取k近邻的聚类对象总数;num(x∈classi)表示所述聚类对象总数中属于聚类类别i的聚类对象数。

根据本发明实施例的另一个方面,还提供了b12.一种聚类装置,包括:

获取模块,获取包括多个聚类对象的待处理数据以及所述待处理数据的指定目标类别数;其中,所述待处理数据包括多媒体数据、文本数据和/或用户数据;

聚类模块,配置为依据各聚类对象的类别属性将所述待处理数据中的各聚类对象进行分类,获得所述指定目标类别数的聚类类别;

计算模块,配置为计算各聚类类别的纯度;

确认模块,配置为结合所述各聚类类别的纯度确认所述待处理数据的最终聚类类别,并输出各最终聚类类别的聚类中心。

b13.根据b12所述的装置,其中,所述聚类模块包括:

初始化单元,配置为基于所述指定目标类别数随机初始化所述待处理数据的各聚类中心;

第一分类单元,配置为计算所述待处理数据中每个聚类对象到各聚类中心的距离,并以最小距离将各聚类对象分类到对应的聚类中心所在的聚类类别。

b14.根据b13所述的装置,其中,所述聚类模块还包括:

迭代计算单元,配置为计算各聚类类别的新聚类中心;

获取所述每个聚类对象到所述新聚类中心的距离,并以最小距离将各聚类对象分类到对应的新聚类中心所属的聚类类别;

迭代计算所述各聚类类别的新聚类中心指定次数,直至各聚类类别的新聚类中心的变化距离在预设范围内。

b15.根据b14所述的装置,其中,所述确认模块包括:

迭代次数判断单元,配置为判断所述各聚类类别的新聚类中心的迭代计算次数是否达到最大迭代次数;

筛选单元,配置为当所述各聚类类别的新聚类中心的迭代计算次数没有达到最大迭代次数时,筛选出纯度大于预设的初始筛选纯度的第一聚类类别;

输出单元,配置为保存并输出所述第一聚类类别的聚类中心。

b16.根据b15所述的装置,其中,

所述筛选单元,还配置为在筛选出纯度大于预设的初始筛选纯度的第一聚类类别之后,判断存在纯度小于所述初始筛选纯度的第二聚类类别时,继续迭代计算所述第二聚类类别的新聚类中心;

所述输出单元,还配置为当所述第二聚类类别纯度达到所述初始筛选纯度时,保存并输出所述第二聚类类别的聚类中心。

b17.根据b15所述的装置,其中,

所述筛选单元,还配置为判断所述第一聚类类别的数量为零时,将所述初始筛选纯度下调指定数值;其中,下调后的筛选纯度大于指定类别筛选纯度基准;

所述输出单元,还配置为选取纯度达到当前筛选纯度的第三聚类类别,保存并输出所述第三聚类类别的聚类中心。

b18.根据b17所述的装置,其中,

所述筛选单元,还配置为在将所述初始筛选纯度下调指定数值之后,当判断存在纯度小于当前筛选纯度的第四聚类类别时,继续迭代计算所述第四聚类类别的新聚类中心;

所述输出单元,还配置为当所述第四聚类类别纯度达到当前筛选纯度时,保存并输出所述第四聚类类别的聚类中心。

b19.根据b17所述的装置,其中,

所述筛选单元,还配置为选取纯度大于当前筛选纯度的第三聚类类别之后,当判断所述第三聚类类别的数量为零时,执行至少一次基于当前筛选纯度下调指定数值、以及获取纯度达到新筛选纯度的聚类类别的步骤;

所述输出单元,还配置为当在任意一次基于当前筛选纯度下调指定数值的之后,判断此次下调后的筛选纯度小于所述指定类别筛选纯度基准时,保存并输出当前各聚类类别的聚类中心。

b20.根据b15-b19任一项所述的装置,其中,所述输出单元还配置为:

当所述各聚类类别的新聚类中心的迭代计算次数达到最大迭代次数时,将最后一次迭代计算时的各聚类类别作为最终聚类类别,保存并输出所述最终聚类类别的聚类中心。

b21.根据b12-b19任一项所述的装置,其中,所述计算模块还配置为:

对于任一聚类类别,基于该聚类类别的所有聚类对象筛选出指定比例的第一聚类对象;

分别获取与各所述第一聚类对象相邻的预设数量的第二聚类对象;

基于所述第二聚类对象的类别属性计算所述聚类类别的纯度。

b22.根据b12-b19任一项所述的装置,其中,所述计算模块还配置为:

结合knn方法通过以下公式计算各聚类类别的纯度:

其中,purityi表示聚类类别i的纯度;classi表示聚类类别i;knny表示样本y的k近邻;num(x)表示在聚类类别i中所有聚类对象取k近邻的聚类对象总数;num(x∈classi)表示所述聚类对象总数中属于聚类类别i的聚类对象数。

根据本发明实施例的另一个方面,还提供了c23.一种计算机存储介质,所述计算机存储介质存储有计算机程序代码,当所述计算机程序代码在计算设备上运行时,导致所述计算设备执行a1-a11任一项所述的聚类方法。

根据本发明实施例的另一个方面,还提供了d24.一种计算设备,包括:

处理器;

存储有计算机程序代码的存储器;

当所述计算机程序代码被所述处理器运行时,导致所述计算设备执行a1-a11任一项所述的聚类方法。

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