一种基于大数据的聚类方法、装置及电子设备与流程

文档序号:16250789发布日期:2018-12-12 00:01阅读:193来源:国知局
一种基于大数据的聚类方法、装置及电子设备与流程

本发明涉及数据聚类领域,更具体的说,涉及一种基于大数据的聚类方法、装置及电子设备。

背景技术

随着数据处理技术的不断发展,越来越多的领域需要对数据进行聚类,如图像和音视频压缩领域、径向基函数网络的系统建模与预处理领域等。其中,聚类是指将物理或抽象对象的集合分成由类似的对象组成的多个类的过程。

对数据进行聚类,进而能够对每个聚类的数据进行统一分析与处理,提高数据处理的效率,因此,亟需一种对数据进行聚类的方法。



技术实现要素:

有鉴于此,本发明提供一种基于大数据的聚类方法、装置及电子设备,以解决现有技术中没有数据聚类的方法的问题。

为解决上述技术问题,本发明采用了如下技术方案:

一种基于大数据的聚类方法,包括:

获取待聚类的多个数据点以及预设聚类数量;

根据第一预设阈值、每个所述数据点与获取的其他每个所述数据点之间的距离,确定每个所述数据点的密度参数;

根据每个所述数据点的密度参数,将多个所述数据点聚类成所述预设聚类数量的初始集群;

根据多个所述数据点以及聚类得到的多个所述初始集群中包括的每个所述数据点,对多个所述数据点进行二次聚类,得到所述预设聚类数量的多个集群。

优选地,根据多个所述数据点以及聚类得到的多个所述初始集群中包括的每个所述数据点,对多个所述数据点进行二次聚类,得到所述预设聚类数量的多个集群,包括:

从所述多个数据点中随机选取出至少一个所述数据点;

将选取的至少一个所述数据点添加到离选取的所有的所述数据点距离之和最小的初始集群中;

根据每个初始集群中的每个所述数据点的权重值以及预设集群中心确定公式,确定出每个所述初始集群的集群中心点;

根据确定出的每个所述集群中心点,对多个所述数据点进行二次聚类,得到所述预设聚类数量的多个集群。

优选地,根据每个初始集群中的每个所述数据点的权重值以及预设集群中心确定公式,确定出每个所述初始集群的集群中心点,包括:

从每个所述初始集群中的多个所述数据点中随机选取一个数据点作为聚类中心点;其中,每个所述集群中除所述聚类中心点之外的其他每个所述数据点作为非聚类中心点;

根据每个所述初始集群中所述聚类中心点与相应的初始集群中包括的每个所述非聚类中心点的距离,确定每个所述初始集群中每个所述非聚类中心点的权重值;

根据每个所述初始集群中每个所述非聚类中心点的权重值以及预设集群中心确定公式,计算出每个所述集群中的聚类中心点对应的聚类值;

返回从每个所述初始集群中的多个所述数据点中随机选取一个数据点作为聚类中心点这一步骤,直到计算出每个所述初始集群中的每个所述数据点对应的聚类值为止;

从每个所述初始集群中的每个所述数据点对应的聚类值中选取出数值最小的聚类值对应的数据点作为相应的初始集群的集群中心点。

优选地,根据每个所述数据点的密度参数,将多个所述数据点聚类成所述预设聚类数量的初始集群,包括:

筛选出对应的所述密度参数大于第二预设阈值的至少一个所述数据点作为核心数据点;其中,所述第二预设阈值为根据所述预设聚类数量计算得到的数值;

根据筛选出的至少一个所述核心数据点,将多个所述数据点聚类成所述预设聚类数量的初始集群。

优选地,所述根据第一预设阈值、每个所述数据点与获取的其他每个所述数据点之间的距离,确定每个所述数据点的密度参数,包括:

计算每个所述数据点与获取的其他每个所述数据点之间的距离;

确定每个所述数据点与获取的其他每个所述数据点之间的距离中距离值大于所述第一预设阈值的个数;

将每个所述数据点对应的个数作为相应的所述数据点的密度参数。

一种基于大数据的聚类装置,包括:

获取模块,用于获取待聚类的多个数据点以及预设聚类数量;

确定模块,用于根据第一预设阈值、每个所述数据点与获取的其他每个所述数据点之间的距离,确定每个所述数据点的密度参数;

第一聚类模块,用于根据每个所述数据点的密度参数,将多个所述数据点聚类成所述预设聚类数量的初始集群;

第二聚类模块,用于根据多个所述数据点以及聚类得到的多个所述初始集群中包括的每个所述数据点,对多个所述数据点进行二次聚类,得到所述预设聚类数量的多个集群。

优选地,所述第二聚类模块包括:

选取子模块,用于从所述多个数据点中随机选取出至少一个所述数据点;

添加子模块,用于将选取的至少一个所述数据点添加到离选取的所有的所述数据点距离之和最小的初始集群中;

第一确定子模块,用于根据每个初始集群中的每个所述数据点的权重值以及预设集群中心确定公式,确定出每个所述初始集群的集群中心点;

第一聚类子模块,用于根据确定出的每个所述集群中心点,对多个所述数据点进行二次聚类,得到所述预设聚类数量的多个集群。

优选地,所述第一确定子模块包括:

第一选取单元,用于从每个所述初始集群中的多个所述数据点中随机选取一个数据点作为聚类中心点;其中,每个所述集群中除所述聚类中心点之外的其他每个所述数据点作为非聚类中心点;

确定单元,用于根据每个所述初始集群中所述聚类中心点与相应的初始集群中包括的每个所述非聚类中心点的距离,确定每个所述初始集群中每个所述非聚类中心点的权重值;

计算单元,用于根据每个所述初始集群中每个所述非聚类中心点的权重值以及预设集群中心确定公式,计算出每个所述集群中的聚类中心点对应的聚类值;

判断单元,用于判断是否计算出每个所述初始集群中的每个所述数据点对应的聚类值;

所述第一选取单元,还用于当所述判断单元判断出未计算出每个所述初始集群中的每个所述数据点对应的聚类值,从每个所述初始集群中的多个所述数据点中随机选取一个数据点作为聚类中心点;

第二选取单元,用于从每个所述初始集群中的每个所述数据点对应的聚类值中选取出数值最小的聚类值对应的数据点作为相应的初始集群的集群中心点。

优选地,所述第一聚类模块包括:

筛选子模块,用于筛选出对应的所述密度参数大于第二预设阈值的至少一个所述数据点作为核心数据点;其中,所述第二预设阈值为根据所述预设聚类数量计算得到的数值;

第二聚类子模块,用于根据筛选出的至少一个所述核心数据点,将多个所述数据点聚类成所述预设聚类数量的初始集群。

优选地,所述确定模块包括:

计算子模块,用于计算每个所述数据点与获取的其他每个所述数据点之间的距离;

第二确定子模块,用于确定每个所述数据点与获取的其他每个所述数据点之间的距离中距离值大于所述第一预设阈值的个数;

第三确定子模块,用于将每个所述数据点对应的个数作为相应的所述数据点的密度参数。

一种电子设备,包括:存储器和处理器;

其中,所述存储器用于存储程序;

处理器用于调用程序,其中,所述程序用于:

获取待聚类的多个数据点以及预设聚类数量;

根据第一预设阈值、每个所述数据点与获取的其他每个所述数据点之间的距离,确定每个所述数据点的密度参数;

根据每个所述数据点的密度参数,将多个所述数据点聚类成所述预设聚类数量的初始集群;

根据多个所述数据点以及聚类得到的多个所述初始集群中包括的每个所述数据点,对多个所述数据点进行二次聚类,得到所述预设聚类数量的多个集群。

相较于现有技术,本发明具有以下有益效果:

本发明提供了一种基于大数据的聚类方法、装置及电子设备,本发明中获取待聚类的多个数据点以及预设聚类数量,根据第一预设阈值、每个所述数据点与获取的其他每个所述数据点之间的距离,确定每个所述数据点的密度参数,根据每个所述数据点的密度参数,将多个所述数据点聚类成所述预设聚类数量的初始集群,根据多个所述数据点以及聚类得到的多个所述初始集群中包括的每个所述数据点,对多个所述数据点进行二次聚类,得到所述预设聚类数量的多个集群。通过本发明能够实现数据聚类。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的一种基于大数据的聚类方法的方法流程图;

图2为本发明实施例提供的另一种基于大数据的聚类方法的方法流程图;

图3为本发明实施例提供的再一种基于大数据的聚类方法的方法流程图;

图4为本发明实施例提供又一种基于大数据的聚类方法的方法流程图;

图5为本发明实施例提供的第五种基于大数据的聚类方法的方法流程图;

图6为本发明实施例提供的一种基于大数据的聚类装置的结构示意图;

图7为本发明实施例提供的另一种基于大数据的聚类装置的结构示意图。

具体实施方式

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

本发明实施例提供了一种基于大数据的聚类方法,其中,聚类方法可以是硬聚类算法k-means算法。

参照图1,聚类方法可以包括:

s11、获取待聚类的多个数据点以及预设聚类数量;

其中,数据源可以是任何领域,如医疗领域或金融领域等。本实施例对数据点的维数不做限定,可以是一维或多维。

预设聚类数量是指想要聚为几类,预设聚类数量是技术人员根据数据点的数量以及数据点的领域进行设定的。

s12、根据第一预设阈值、每个所述数据点与获取的其他每个所述数据点之间的距离,确定每个所述数据点的密度参数;

可选的,在本实施例的基础上,参照图2,步骤s12可以包括:

s21、计算每个所述数据点与获取的其他每个所述数据点之间的距离;

具体的,计算两点之间的距离的计算公式为:

其中,xi、ki分别为一个数据点,dj,i为xi、ki之间的距离。

需要说明的是,xi、ki为维数,即属性数量为正整数的数据。

依据本实施例中的距离计算公式,计算出任意两个数据点之间的距离。

s22、确定每个所述数据点与获取的其他每个所述数据点之间的距离中距离值大于所述第一预设阈值的个数;

具体的,此处需要统计密度参数τ,一个范围内包含的数据点的数量定义为密度参数。范围是以非统计的数据点为中心,以γ为半径.密度越大,密度参数的值越大.可选的,τ=n/100,其中,n为所有的数据点的数量,2γ=1/100。

具体的,确定密度参数,即个数的过程为,以一个数据点为中心,以第一预设数值为半径,来确定其他数据点落入到该范围内的个数。确定得到的个数即为密度参数。

s23、将每个所述数据点对应的个数作为相应的所述数据点的密度参数。

s13、根据每个所述数据点的密度参数,将多个所述数据点聚类成所述预设聚类数量的初始集群;

其中,初始集群的数量为预设聚类数量。初始集群具有以下特点:

1、相似性;

数据点在同一簇内尽量相似,在不同簇内尽量不相似。其中,簇可以为初始集群。

2、数据对象的距离;

把所有的数据点作为测试数据的采集对象,在同一个初始集群的两个数据点之间的距离,不应大于不同的两个初始集群的任意两个数据点的距离;

3、数据对象的密度;

将所有的数据点作为数据对象的多维空间聚集,初始集群包含的数据点的维度空间比较大,数据属性和特征比较复杂。

可选的,在本实施例的基础上,参照图3,步骤s13可以包括:

s31、筛选出对应的所述密度参数大于第二预设阈值的至少一个所述数据点作为核心数据点;

其中,所述第二预设阈值为根据所述预设聚类数量计算得到的数值。

具体的,如果一个数据点的γ-领域至少包含pts-min数据点的数量,那么该数据点称为核心数据点。

其中,pts-min为第二预设阈值,第二预设阈值是技术人员根据预设聚类数量以及具体数据聚类场景进行分析得到的。

需要说明的是,本步骤即为确定核心数据点的过程。

s32、根据筛选出的至少一个所述核心数据点,将多个所述数据点聚类成所述预设聚类数量的初始集群。

具体的,由于不同的数据点对应的空间位置不同,在筛选出了至少一个数据点之后,即得到核心数据点之后,由核心数据点组成不同的几个区间段,进而能够将多个数据点聚类成预设聚类数量的初始集群。

以体重为例,假设多个数据点分别为70、80、90、100和110,得到核心数据点为90和110,则,将多个数据点聚为小于90一类和90-110一类。

s14、根据多个所述数据点以及聚类得到的多个所述初始集群中包括的每个所述数据点,对多个所述数据点进行二次聚类,得到所述预设聚类数量的多个集群。

其中,得到的多个集群为最终聚类得到的集群,上文中的初始集群即为中间过程中生成的集群。

本实施例中,获取待聚类的多个数据点以及预设聚类数量,根据第一预设阈值、每个所述数据点与获取的其他每个所述数据点之间的距离,确定每个所述数据点的密度参数,根据每个所述数据点的密度参数,将多个所述数据点聚类成所述预设聚类数量的初始集群,根据多个所述数据点以及聚类得到的多个所述初始集群中包括的每个所述数据点,对多个所述数据点进行二次聚类,得到所述预设聚类数量的多个集群。通过本发明能够实现数据聚类。

可选的,在上述任一实施例的基础上,参照图4,步骤s14可以包括:

s41、从所述多个数据点中随机选取出至少一个所述数据点;

其中,选取的数据点的数量不做限制,可以是一个,也可以是多个。

s42、将选取的至少一个所述数据点添加到离选取的所有的所述数据点距离之和最小的初始集群中;

具体的,选取出若干个数据点之后,计算每个数据点到每个初始集群的距离。计算出每个数据点到每个初始集群的距离后,计算所有选取的数据点到每个初始集群的距离之和,选取出距离之和最小的一个初始集群,将选取出的至少一个数据点添加到选取出的初始集群中。

本步骤中,选取出至少一个所述数据点添加到离选取的所有的所述数据点距离之和最小的初始集群中,是为了能够更好的确定集群中心点。

s43、根据每个初始集群中的每个所述数据点的权重值以及预设集群中心确定公式,确定出每个所述初始集群的集群中心点;

s44、根据确定出的每个所述集群中心点,对多个所述数据点进行二次聚类,得到所述预设聚类数量的多个集群。

具体的,“根据确定出的每个所述集群中心,对多个所述数据点进行二次聚类,得到所述预设聚类数量的多个集群”的过程与“根据筛选出的至少一个所述核心数据点,将多个所述数据点聚类成所述预设聚类数量的初始集群”的过程类似,请参照“根据筛选出的至少一个所述核心数据点,将多个所述数据点聚类成所述预设聚类数量的初始集群”的过程,在此不再赘述。

可选的,在本实施例的基础上,参照图5,步骤s43可以包括:

s51、从每个所述初始集群中的多个所述数据点中随机选取一个数据点作为聚类中心点;

其中,每个所述集群中除所述聚类中心点之外的其他每个所述数据点作为非聚类中心点。

具体的,每个初始集群中随机选择一个数据点作为聚类中心点,将剩余的数据点作为非聚类中心点。

s52、根据每个所述初始集群中所述聚类中心点与相应的初始集群中包括的每个所述非聚类中心点的距离,确定每个所述初始集群中每个所述非聚类中心点的权重值;

具体的,根据非聚类中心点与聚类中心点的距离,来确定每个非聚类中心点的权重值,其中,可以采用多种计算方式来确定权重值,如,权重值与距离值成反比。计算聚类中心点和非聚类中心点的距离可以采用上述的距离计算公式。

需要说明的是,非聚类中心点距离聚类中心点的距离越近,则非聚类中心点的权重值越大,非聚类中心点距离聚类中心点的距离越远,则非聚类中心点的权重值越小。

s53、根据每个所述初始集群中每个所述非聚类中心点的权重值以及预设集群中心确定公式,计算出每个所述集群中的聚类中心点对应的聚类值;

其中,预设集群中心确定公式为:

其中,j代表第j个初始集群,h代表初始集群中的数据点的数量,djh代表初始集群j中的第h个非聚类中心点与聚类中心点之间的欧式距离,xj1至xjh为上文中确定的每个非聚类中心的权重值。d为dji之和,k为聚类值。

并且有:

其中,非聚类中心点与聚类中心点的欧式距离决定这个非聚类中心点属于哪一类。非聚类中心点与聚类中心点的欧氏距离的计算公式如下:

其中,j代表第j个初始集群cj,i代表了第i个非聚类中心点xi,dji是非聚类中心点xi和聚类中心点之间的欧式距离,dj,i为非聚类中心点xi和聚类中心点之间的距离;σi代表初始集群cj的平方误差,σ是所有的初始集群c的总的平方误差.

根据上述公式以及权重值,就能够计算得到每个所述集群中的聚类中心点对应的聚类值。

s54、判断是否计算出每个所述初始集群中的每个所述数据点对应的聚类值;若判断出计算出每个所述集群中的每个所述数据点对应的聚类值,执行步骤s55;若判断出未计算出每个所述初始集群中的每个所述数据点对应的聚类值,返回执行步骤s51,直到计算出每个所述初始集群中的每个所述数据点对应的聚类值为止。

其中,对于每个初始集群,需要在初始集群中包括的多个数据点中选择出一个集群中心,所以应该计算出每个数据点对应的聚类值,然后才能从多多个数据点中选择出集群中心点。

s55、从每个所述初始集群中的每个所述数据点对应的聚类值中选取出数值最小的聚类值对应的数据点作为相应的初始集群的集群中心点。

具体的,集群中心点为最优的聚类中心点。由于需要在每个初始集群中选择一个最优的数据点作为集群中心点,所以应该保证初始集群的集群中心点的聚类值最小。

本实施例中,通过设置每个非聚类数据点的权重值,进而可以减少数据聚类算法的时间复杂度和空间复杂度。

上述介绍了基于大数据的聚类方法,为了评估本发明的方法,运用高达6573080对象和多达400000个对象合成的真实数据集进行实验和评估。基于所获得的实验结果,可以发现,对比与标准k-means算法,合成数据集的方法仅降低3.2%的数据质量,但执行时间却提高了91%;对于真正的数据集,数据质量减少了5.8%,但是执行时间减少了73%。最坏的情况下显示出当质量减少2.26%时,时间只减少52%。能够看出该实验法在大数据的处理中大大提高了执行时间及运行效率。

可选的,在上述基于大数据的聚类方法的实施例的基础上,本发明的另一实施例提供了一种基于大数据的聚类装置,参照图6,聚类装置可以包括:

获取模块101,用于获取待聚类的多个数据点以及预设聚类数量;

确定模块102,用于根据第一预设阈值、每个所述数据点与获取的其他每个所述数据点之间的距离,确定每个所述数据点的密度参数;

第一聚类模块103,用于根据每个所述数据点的密度参数,将多个所述数据点聚类成所述预设聚类数量的初始集群;

第二聚类模块104,用于根据多个所述数据点以及聚类得到的多个所述初始集群中包括的每个所述数据点,对多个所述数据点进行二次聚类,得到所述预设聚类数量的多个集群。

进一步,所述第一聚类模块包括:

筛选子模块,用于筛选出对应的所述密度参数大于第二预设阈值的至少一个所述数据点作为核心数据点;其中,所述第二预设阈值为根据所述预设聚类数量计算得到的数值;

第二聚类子模块,用于根据筛选出的至少一个所述核心数据点,将多个所述数据点聚类成所述预设聚类数量的初始集群。

进一步,所述确定模块包括:

计算子模块,用于计算每个所述数据点与获取的其他每个所述数据点之间的距离;

第二确定子模块,用于确定每个所述数据点与获取的其他每个所述数据点之间的距离中距离值大于所述第一预设阈值的个数;

第三确定子模块,用于将每个所述数据点对应的个数作为相应的所述数据点的密度参数。

本实施例中,获取待聚类的多个数据点以及预设聚类数量,根据第一预设阈值、每个所述数据点与获取的其他每个所述数据点之间的距离,确定每个所述数据点的密度参数,根据每个所述数据点的密度参数,将多个所述数据点聚类成所述预设聚类数量的初始集群,根据多个所述数据点以及聚类得到的多个所述初始集群中包括的每个所述数据点,对多个所述数据点进行二次聚类,得到所述预设聚类数量的多个集群。通过本发明能够实现数据聚类。

需要说明的是,本实施例中的各个模块和子模块的工作过程,请参照上述实施例中的相应说明,在此不再赘述。

可选的,在上述任一聚类装置的实施例的基础上,参照图7,所述第二聚类模块104可以包括:

选取子模块1041,用于从所述多个数据点中随机选取出至少一个所述数据点;

添加子模块1042,用于将选取的至少一个所述数据点添加到离选取的所有的所述数据点距离之和最小的初始集群中;

第一确定子模块1043,用于根据每个初始集群中的每个所述数据点的权重值以及预设集群中心确定公式,确定出每个所述初始集群的集群中心点;

第一聚类子模块1044,用于根据确定出的每个所述集群中心点,对多个所述数据点进行二次聚类,得到所述预设聚类数量的多个集群。

进一步,所述第一确定子模块包括:

第一选取单元,用于从每个所述初始集群中的多个所述数据点中随机选取一个数据点作为聚类中心点;其中,每个所述集群中除所述聚类中心点之外的其他每个所述数据点作为非聚类中心点;

确定单元,用于根据每个所述初始集群中所述聚类中心点与相应的初始集群中包括的每个所述非聚类中心点的距离,确定每个所述初始集群中每个所述非聚类中心点的权重值;

计算单元,用于根据每个所述初始集群中每个所述非聚类中心点的权重值以及预设集群中心确定公式,计算出每个所述集群中的聚类中心点对应的聚类值;

判断单元,用于判断是否计算出每个所述初始集群中的每个所述数据点对应的聚类值;

所述第一选取单元,还用于当所述判断单元判断出未计算出每个所述初始集群中的每个所述数据点对应的聚类值,从每个所述初始集群中的多个所述数据点中随机选取一个数据点作为聚类中心点;

第二选取单元,用于从每个所述初始集群中的每个所述数据点对应的聚类值中选取出数值最小的聚类值对应的数据点作为相应的初始集群的集群中心点。

本实施例中,通过设置每个非聚类数据点的权重值,进而可以减少数据聚类算法的时间复杂度和空间复杂度。

需要说明的是,本实施例中的各个模块、子模块和单元的工作过程,请参照上述实施例中的相应说明,在此不再赘述。

可选的,在上述聚类方法和聚类装置的实施例的基础上,本发明的另一实施例提供了一种电子设备,包括:存储器和处理器;

其中,所述存储器用于存储程序;

处理器用于调用程序,其中,所述程序用于:

获取待聚类的多个数据点以及预设聚类数量;

根据第一预设阈值、每个所述数据点与获取的其他每个所述数据点之间的距离,确定每个所述数据点的密度参数;

根据每个所述数据点的密度参数,将多个所述数据点聚类成所述预设聚类数量的初始集群;

根据多个所述数据点以及聚类得到的多个所述初始集群中包括的每个所述数据点,对多个所述数据点进行二次聚类,得到所述预设聚类数量的多个集群。

本实施例中,获取待聚类的多个数据点以及预设聚类数量,根据第一预设阈值、每个所述数据点与获取的其他每个所述数据点之间的距离,确定每个所述数据点的密度参数,根据每个所述数据点的密度参数,将多个所述数据点聚类成所述预设聚类数量的初始集群,根据多个所述数据点以及聚类得到的多个所述初始集群中包括的每个所述数据点,对多个所述数据点进行二次聚类,得到所述预设聚类数量的多个集群。通过本发明能够实现数据聚类。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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