CN109886311A - 增量聚类方法、装置、电子设备和计算机可读介质 - Google Patents
增量聚类方法、装置、电子设备和计算机可读介质 Download PDFInfo
- Publication number
- CN109886311A CN109886311A CN201910074952.0A CN201910074952A CN109886311A CN 109886311 A CN109886311 A CN 109886311A CN 201910074952 A CN201910074952 A CN 201910074952A CN 109886311 A CN109886311 A CN 109886311A
- Authority
- CN
- China
- Prior art keywords
- core
- objects
- newly added
- neighbor
- cluster
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 230000004044 response Effects 0.000 claims abstract description 87
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 29
- 238000012545 processing Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 9
- 238000001514 detection method Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000007423 decrease Effects 0.000 description 5
- 238000012217 deletion Methods 0.000 description 5
- 230000037430 deletion Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 239000013598 vector Substances 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000001568 sexual effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Image Analysis (AREA)
Abstract
本申请实施例公开了增量聚类方法、装置、电子设备和计算机可读介质。所述方法的实施例包括:利用具有噪声的基于密度的聚类算法对原数据集进行聚类,确定原数据集中的簇;响应于检测到原数据集的更新,基于对原数据集的更新类型,对更新后所得到的新数据集进行增量聚类,以对原数据集中的簇进行更新。该实施方式提高了聚类效率。
Description
技术领域
本申请实施例涉及计算机技术领域,具体增量聚类方法、装置、电子设备和计算机可读介质。
背景技术
随着计算机技术和互联网技术的发展,在许多应用场景中,需要对数据集进行聚类。例如,在人脸检测或者人脸识别的应用场景中,通常需要进行人脸聚类。在这样的应用场景中,数据集通常是不断更新的,不断有新的对象(即新数据)被加入,以及旧的对象被删除。
当前增量聚类方法较少。当数据集发生变化时,通常采用全量的聚类方式,对更新后的数据集中的对象重新聚类。在这种方式中,数据集每发生一次更新,均需要将更新后的数据集看作新数据集,重新确定新的数据集中的各个对象间的距离和属性等信息,因此,在数据集动态变化时,这种聚类方式的聚类速度较慢。
发明内容
本申请实施例提出了增量聚类方法、装置、电子设备和计算机可读介质,解决了现有技术中在数据集动态变化时,使用全量的聚类方式所导致的聚类速度较慢的技术问题效果差的技术问题。
第一方面,本申请实施例提供了一种增量聚类方法,该方法包括:利用具有噪声的基于密度的聚类算法DBSCAN对原数据集进行聚类,确定原数据集中的簇;响应于检测到原数据集的更新,基于对原数据集的更新类型,对更新后所得到的新数据集进行增量聚类,以对原数据集中的簇进行更新,其中,更新类型包括增加对象和删除对象。
在一些实施例中,基于对原数据集的更新类型,对更新后所得到的新数据集进行增量聚类,包括:响应于确定对原数据集的更新类型为增加对象,将增加的对象作为目标对象,执行如下步骤:确定目标对象的属性,属性分为边缘对象和核心对象;更新目标对象的邻居对象的属性和k核心半径,k核心半径为与距离第k近的对象的距离,所述k为正整数;基于所确定的属性,确定更新后所得到的新数据集中的新增核心对象,对新增核心对象的簇标签进行更新,以及,对新增核心对象的邻居对象的簇标签进行更新;基于所确定的k核心半径,对新数据集中的簇进行聚类处理,聚类处理包括合并和/或分裂。
在一些实施例中,确定目标对象的属性,包括:响应于确定原样本集中不存在位于目标对象的Ε邻域中的对象,确定目标对象为边缘对象,所述目标对象的E邻域为与所述目标对象的距离小于或等于E的对象的集合,所述E为正数;或者,响应于确定原样本中位于目标对象的E邻域中的对象的数量大于或等于预设的最小邻接个数,确定目标对象为核心对象,以及,确定目标对象的k核心半径。
在一些实施例中,更新目标对象的邻居对象的k核心半径,包括:更新目标对象的邻居对象中的核心对象的k核心半径。
在一些实施例中,对新增核心对象的簇标签进行更新,以及,对新增核心对象的邻居对象的簇标签进行更新,包括:响应于确定新增核心对象的邻居对象中不存在其他核心对象,执行如下步骤:将新增核心对象与新增核心对象的邻居对象归入新的簇;将新的簇中的对象的簇标签设定为新增核心对象的标识。
在一些实施例中,对新增核心对象的簇标签进行更新,以及,对新增核心对象的邻居对象的簇标签进行更新,包括:响应于确定新增核心对象的邻居对象中存在其他核心对象,且新数据集中不存在与新增核心对象密度直达的核心对象,执行如下步骤:将新增核心对象与新增核心对象的邻居对象归入新的簇;将新的簇中的对象的簇标签设定为新增核心对象的标识;其中,当两个核心对象满足预设条件时,确定所述两个核心对象密度直达,所述预设条件为:两个核心对象的距离小于所述两个核心对象的k核心半径。
在一些实施例中,对新增核心对象的簇标签进行更新,以及,对新增核心对象的邻居对象的簇标签进行更新,包括:响应于确定新增核心对象的邻居对象中存在其他核心对象,且新数据集中仅存在一个与新增核心对象密度直达的目标核心对象,执行如下步骤:将新增核心对象和新增核心对象的邻居对象归入目标核心对象的簇;将新增核心对象和新增核心对象的邻居对象的簇标签设定为目标核心对象的簇的簇标签。
在一些实施例中,对新增核心对象的簇标签进行更新,以及,对新增核心对象的邻居对象的簇标签进行更新,包括:响应于确定新增核心对象的邻居对象中存在其他核心对象,且新数据集存在至少两个与新增核心对象密度直达的目标核心对象,执行如下步骤:确定目标核心对象的簇标签的众数;从众数对应的目标核心对象中,选取距离最近的目标核心对象;将新增核心对象和新增核心对象的邻居对象并入所选取的目标核心对象的簇;将新增核心对象和新增核心对象的邻居对象的簇标签设定为所选取的目标核心对象的簇的簇标签。
在一些实施例中,对新数据集中的簇进行聚类处理,包括:遍历新增核心对象,响应于确定产生新的密度直达关系,将密度直达关系所涉及的两个核心对象、两个核心对象中的各核心对象的密度直达核心对象、两个核心对象中的各核心对象的边缘对象合并为同一个簇;遍历新增核心对象,响应于确定在新增核心对象的邻居对象中,存在由密度直达关系变为密度不直达关系的两个核心对象,将变为密度不直达关系的两个核心对象所在的簇进行分裂。
在一些实施例中,基于对原数据集的更新类型,对更新后所得到的新数据集进行增量聚类,包括:响应于确定对原数据集的更新类型为删除对象,将删除的对象作为目标对象,执行如下步骤:删除目标对象的邻居对象与目标对象的邻居关系;对于目标对象的邻居对象中的核心对象,响应于确定核心对象的E邻域内的对象数量少于预设的最小邻接个数,将核心对象更新为边缘对象,并将核心对象加入待删除核心对象集合;对于待删除核心对象集合中的待删除核心对象,响应于确定在删除待删除核心对象后,待删除核心对象的邻居对象中存在由密度直达关系变为密度不直达关系的两个邻居对象,将这两个邻居对象所在的簇进行分裂。
第二方面,本申请实施例提供了一种增量聚类装置,该装置包括:第一聚类单元,被配置成利用具有噪声的基于密度的聚类算法DBSCAN对原数据集进行聚类,确定原数据集中的簇;第二聚类单元,被配置成响应于检测到原数据集的更新,基于对原数据集的更新类型,对更新后所得到的新数据集进行增量聚类,以对原数据集中的簇进行更新,其中,更新类型包括增加对象和删除对象。
在一些实施例中,第二聚类单元,包括:增加样本聚类模块,被配置成响应于确定对原数据集的更新类型为增加对象,将增加的对象作为目标对象,执行如下步骤:确定目标对象的属性,属性分为边缘对象和核心对象;更新目标对象的邻居对象的属性和k核心半径,k核心半径为与距离第k近的对象的距离,所述k为正整数;基于所确定的属性,确定更新后所得到的新数据集中的新增核心对象,对新增核心对象的簇标签进行更新,以及,对新增核心对象的邻居对象的簇标签进行更新;基于所确定的k核心半径,对新数据集中的簇进行聚类处理,聚类处理包括合并和/或分裂。
在一些实施例中,增加样本聚类模块,进一步被配置成:响应于确定原样本集中不存在位于目标对象的Ε邻域中的对象,确定目标对象为边缘对象,所述目标对象的E邻域为与所述目标对象的距离小于或等于E的对象的集合,所述E为正数;或者,响应于确定原样本中位于目标对象的E邻域中的对象的数量大于或等于预设的最小邻接个数,确定目标对象为核心对象,以及,确定目标对象的k核心半径。
在一些实施例中,增加样本聚类模块,进一步被配置成:更新目标对象的邻居对象中的核心对象的k核心半径。
在一些实施例中,增加样本聚类模块,进一步被配置成:响应于确定新增核心对象的邻居对象中不存在其他核心对象,执行如下步骤:将新增核心对象与新增核心对象的邻居对象归入新的簇;将新的簇中的对象的簇标签设定为新增核心对象的标识。
在一些实施例中,增加样本聚类模块,进一步被配置成:响应于确定新增核心对象的邻居对象中存在其他核心对象,且新数据集中不存在与新增核心对象密度直达的核心对象,执行如下步骤:将新增核心对象与新增核心对象的邻居对象归入新的簇;将新的簇中的对象的簇标签设定为新增核心对象的标识;其中,当两个核心对象满足预设条件时,确定所述两个核心对象密度直达,所述预设条件为:两个核心对象的距离小于所述两个核心对象的k核心半径。。
在一些实施例中,增加样本聚类模块,进一步被配置成:响应于确定新增核心对象的邻居对象中存在其他核心对象,且新数据集中仅存在一个与新增核心对象密度直达的目标核心对象,执行如下步骤:将新增核心对象和新增核心对象的邻居对象归入目标核心对象的簇;将新增核心对象和新增核心对象的邻居对象的簇标签设定为目标核心对象的簇的簇标签。
在一些实施例中,增加样本聚类模块,进一步被配置成:响应于确定新增核心对象的邻居对象中存在其他核心对象,且新数据集存在至少两个与新增核心对象密度直达的目标核心对象,执行如下步骤:确定目标核心对象的簇标签的众数;从众数对应的目标核心对象中,选取距离最近的目标核心对象;将新增核心对象和新增核心对象的邻居对象并入所选取的目标核心对象的簇;将新增核心对象和新增核心对象的邻居对象的簇标签设定为所选取的目标核心对象的簇的簇标签。
在一些实施例中,增加样本聚类模块,进一步被配置成:遍历新增核心对象,响应于确定产生新的密度直达关系,将密度直达关系所涉及的两个核心对象、两个核心对象中的各核心对象的密度直达核心对象、两个核心对象中的各核心对象的边缘对象合并为同一个簇;遍历新增核心对象,响应于确定在新增核心对象的邻居对象中,存在由密度直达关系变为密度不直达关系的两个核心对象,将变为密度不直达关系的两个核心对象所在的簇进行分裂。
在一些实施例中,第二聚类单元,包括:删除样本聚类模块,被配置成响应于确定对原数据集的更新类型为删除对象,将删除的对象作为目标对象,执行如下步骤:删除目标对象的邻居对象与目标对象的邻居关系;对于目标对象的邻居对象中的核心对象,响应于确定核心对象的E邻域内的对象数量少于预设的最小邻接个数,将核心对象更新为边缘对象,并将核心对象加入待删除核心对象集合;对于待删除核心对象集合中的待删除核心对象,响应于确定在删除待删除核心对象后,待删除核心对象的邻居对象中存在由密度直达关系变为密度不直达关系的两个邻居对象,将这两个邻居对象所在的簇进行分裂。
第三方面,本申请实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,其上存储有一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上述第一方面中任一实施例的方法。
第四方面,本申请实施例提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面中任一实施例的方法。
本申请实施例提供的增量聚类方法和装置,首先利用具有噪声的基于密度的聚类算法对原数据集进行聚类,以便确定出原数据集中的簇。在检测到原数据集的更新之后,基于对原数据集的更新类型,对更新后所得到的新数据集进行增量聚类,以对原数据集中的簇进行更新。由于在增加对象或者删除对象时,数据集中的其他对象并未进行更新,且其他对象之间的距离也未发生变化,因此,在数据集动态变化时,对数据进行增量聚类,仅需进行少量的数据计算,由此,提高了聚类速度。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是根据本申请的增量聚类方法的一个实施例的流程图;
图2是根据本申请的增量聚类方法的又一个实施例的流程图;
图3a为利用DBSCAN算法进行聚类后的效果图;
图3b为根据本申请的增量聚类方法进行聚类后的效果图;
图4是根据本申请的增量聚类装置的一个实施例的结构示意图;
图5是适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
请参考图1,其示出了根据本申请的增量聚类方法的一个实施例的流程100。该增量聚类方法,包括以下步骤:
步骤101,利用具有噪声的基于密度的聚类算法对原数据集进行聚类,确定原数据集中的簇。
在本实施例中,增量聚类方法的执行主体(例如服务器等电子设备)可以利用DBSCAN(Density-Based Spatial Clustering of Applications with Noise,具有噪声的基于密度的聚类算法)对原数据集进行聚类,确定上述原数据集中的簇。
此处,原数据集中可以包含多个对象,每一个对象是一条数据。该数据可以是数值、特征向量等信息。例如,可以是从人脸图像中提取的特征向量。数据集中的数据的形式此处不作限定。
实践中,上述DBSCAN算法是一个比较有代表性的基于密度的聚类算法。与划分和层次聚类方法不同,它将簇定义为密度相连的点(即对象)的最大集合,能够把具有足够高密度的区域划分为簇,并可在噪声的空间数据库中发现任意形状的聚类。
在利用DBSCAN算法进行聚类时,在已知包含多个对象的数据集的基础上,首先设定半径E的值和最小邻接个数(MinPts)。其中,半径E为正数,最小邻接个数为正整数。而后,通过DBSCAN算法,对上述原数据集进行聚类,即可确定出上述该数据集中的各个簇。
需要说明的是,在DBSCAN算法中,对于数据集中的某个对象,该对象E邻域可以是与该对象的距离小于或等于E的对象的集合。如果某个对象的Ε邻域内的对象的数量大于或等于上述最小邻接个数,则称可以称该对象为核心对象。
步骤102,响应于检测到原数据集的更新,基于对原数据集的更新类型,对更新后所得到的新数据集进行增量聚类,以对原数据集中的簇进行更新。
在本实施例中,上述执行主体响应于检测到上述原数据集的更新,可以基于对上述原数据集的更新类型,对更新后所得到的新数据集进行增量聚类,以对上述原数据集中的簇进行更新。其中,上述更新类型可以包括增加对象和删除对象。针对不同的更新类型,可以采用不同操作来进行新数据集的增量聚类。
实践中,在增加对象的场景下,由于在原数据集中增加某对象后,除新增加的对象以外,新数据集中的其他对象并未变更,且其他对象之间的距离也未发生变化,因此,可以仅考虑新增的对象对原数据集中的簇的影响,对新数据集进行增量聚类,计算与新增加的对象相关的信息,从而进行簇的更新。同理,在删除对象的场景下,由于在原数据集中删除某对象后,其余的对象并未变更,且其他对象之间的距离也未发生变化,因此,可以仅考虑所删除的对象对原数据集中的簇的影响,计算与所删除的对象相关的信息,对性数据集进行增量聚类,从而进行簇的更新。由此,可以减少数据的计算量,提高聚类速度。
具体地,可以通过以下可选的实现方式分别进行详细描述。
在本实施例的一些可选的实现方式中,响应于确定对上述原数据集的更新类型为增加对象,上述执行主体可以将增加的对象作为目标对象,执行如下步骤:
第一步,确定上述目标对象的属性。其中,上述属性可以分为边缘对象和核心对象。此处,可以基于对上述目标对象的E邻域中的对象数量,确定上述目标对象是否为边缘对象以及核心对象。这里,目标对象的E邻域可以是与该目标对象的距离小于或等于E的对象的集合。
上述执行主体可以利用预先制定的判别规则,来确定目标对象的属性。例如,响应于确定上述原样本集中不存在位于上述目标对象的Ε邻域中的对象,可以确定上述目标对象为边缘对象。响应于确定上述原样本中位于上述目标对象的E邻域中的对象的数量大于或等于预设的最小邻接个数,可以确定上述目标对象为核心对象。
第二步,更新上述目标对象的邻居对象的属性和k核心半径。其中,邻居对象即为位于目标对象的E邻域内的对象。上述k核心半径为与距离第k近的对象的距离。其中,k为正整数。实践中,这里的距离计算方式与上述DBSCAN算法中计算距离的方式相同,通常可以采用欧氏距离等方式计算,此处不再赘述。
实践中,对于上述目标对象的每一个邻居对象,该邻居对象的k核心半径,是与该邻居对象距离第k近的对象到该邻居对象的距离。此处,可以通过如下步骤确定该邻居对象的k核心半径:首先,可以计算除该邻居对象以外的各对象到该邻居对象的距离。之后,可以将所计算的距离按照从小到大的顺序进行排序。最后,可以将排序结果中的第k个对象确定为与该邻居对象距离第k近的对象。以及,可以将上述第k的对象到该邻居对象的距离称为该邻居对象的k核心距离。需要说明的是,k的具体取值可以根据需要预先设定,此处不作限定。
由于在上述目标对象的各邻居对象的E邻域中均多了上述目标对象,因此,在该目标对象的邻居对象中,可能存在一些邻居对象,会由边缘对象更新为核心对象。由此,需要更新上述目标对象的邻居对象的属性和k核心半径。此处,可以只确定邻居对象中的核心对象的k核心半径。对于某个核心对象,该对象的k核心半径即为距离该核心对象第k近的对象与该核心对象之间的距离。
此处,引入k核心半径的概念,当一个簇的密度高时,k核心半径会自动减小;当一个簇的密度低时,k核心半径不会减小太多。由此,只需要预先设定一个大概的半径E,即可根据数据集中的簇的密度进行k核心半径的自行调整。相对于DBSCAN算法中使用固定的半径E,可以基于密度进行自适应。由此,可提高聚类的准确性。
可选的,上述执行主体可以首先更新上述目标对象的邻居对象的属性,从而确定出邻居对象中的核心对象。而后,可以更新上述目标对象的邻居对象中的核心对象的k核心半径。
可选的,上述执行主体也可以逐一地确定上述目标对象的邻居对象是否为核心对象,若是,则确定其k核心半径。不再进行边缘对象的判定。
第三步,基于所确定的属性,确定更新后所得到的新数据集中的新增核心对象,对上述新增核心对象的簇标签进行更新,以及,对上述新增核心对象的邻居对象的簇标签进行更新。
这里,由于已确定了目标对象的属性(即是否为核心对象),以及已确定了上述目标对象的各邻居对象的属性(即是否为核心对象),因此,可以确定出更新后所得到的新数据集中的新增核心对象。之后,可以对新增核心对象进行分析,以便对新增核心对象的簇标签以及上述新增核心对象的邻居对象的簇标签进行更新。
此处,可以通过新增核心对象的邻居对象的属性、距离等信息,确定是否对新增核心对象建立新簇,或者,是否归入原有的簇。这里的执行逻辑可以按照各种预设规则进行,此处不作限定。作为示例,若上述新增核心对象的邻居对象中不存在其他核心对象,则可以首先将上述新增核心对象与上述新增核心对象的邻居对象归入新的簇。以及,可以将上述新的簇中的对象的簇标签设定为上述新增核心对象的标识。作为又一示例,若上述新增核心对象的邻居对象中存在其他核心对象,则可以通过上述新增核心对象与上述其他核心对象的距离,来决定是否将上述新增核心对象与上述新增核心对象的邻居对象归入新的簇。
第四步,基于所确定的k核心半径,对上述新数据集中的簇进行聚类处理,上述聚类处理包括合并和/或分裂。
此处,上述执行主体可以基于所确定的k核心半径,确定两个核心对象是否密度直达。具体地,当两个核心对象满足预设条件时,确定所述两个核心对象密度直达。其中,所述预设条件可以为:所述两个核心对象的距离小于所述两个核心对象的k核心半径。。当两个核心对象的距离大于或等于上述两个核心对象的k核心半径时,可以确定上述两个核心对象密度不直达。而后,可以基于密度直达的判定结果,对上述新数据集中的簇进行聚类处理,上述聚类处理包括合并和/或分裂。这里,可以采用预先设定的规则,来确定簇的合并与分裂。
作为示例,上述执行主体可以遍历新增核心对象。响应于确定产生新的密度直达关系,可以将上述密度直达关系所涉及的两个核心对象、上述两个核心对象中的各核心对象的密度直达核心对象、以及上述两个核心对象中的各核心对象的边缘对象合并为同一个簇。
作为又一示例,上述执行主体可以遍历新增核心对象,响应于确定在上述新增核心对象的邻居对象中,存在由密度直达关系变为密度不直达关系的两个核心对象,将上述变为密度不直达关系的两个核心对象所在的簇进行分裂。分裂后的簇的簇标签不相同。
在本实施例的一些可选的实现方式中,上述执行主体响应于确定对上述原数据集的更新类型为删除对象,可以将删除的对象作为目标对象,执行如下步骤:
第一步,删除上述目标对象的邻居对象与上述目标对象的邻居关系。这里,由于目标对象从原数据集中删除,因此,该目标对象与该目标对象的邻居关系不再存在。可以解除该邻居关系。
第二步,对于上述目标对象的邻居对象中的核心对象,响应于确定上述核心对象的E邻域内的对象数量少于预设的最小邻接个数,将上述核心对象更新为边缘对象,并将上述核心对象加入待删除核心对象集合。
第三步,对于上述待删除核心对象集合中的待删除核心对象,响应于确定在删除上述待删除核心对象后,上述待删除核心对象的邻居对象中存在由密度直达关系变为密度不直达关系的两个邻居对象,将这两个邻居对象所在的簇进行分裂。分裂后的簇的簇标签不相同。
在一些应用场景中,上述原数据集中的数据可以是从人脸图像中提取的特征等数据。上述原数据集通常是不断更新的,不断有新的对象(即新数据)被加入,以及旧的对象被删除,不断形成新数据集。每次数据集更新,均可以基于更新类型,对当前更新后的新数据集中的对象进行增量聚类。在增量聚类后,即可新数据集中的簇的簇标签。实践中,可以将该新数据集作为样本集,将其中的具有簇标签的对象作为样本,从而得到带有标注的样本。进而,可以利用这些样本进行人脸检测模型、人脸识别模型的训练。以便于使用训练后的模型进行人脸检测、人脸识别等操作。
需要说明的是,上述更新类型除增加对象和删除对象之后,还可以包括其他更新类型。例如,可以包括替换对象。实践中,可以将替换对象的操作看作依次进行删除对象、增加对象的操作。
本申请的上述实施例提供的方法,首先利用具有噪声的基于密度的聚类算法对原数据集进行聚类,以便确定出原数据集中的簇。在检测到原数据集的更新之后,基于对原数据集的更新类型,对更新后所得到的新数据集进行增量聚类,以对上述原数据集中的簇进行更新。由于在增加对象或者删除对象时,数据集中的其他对象并未进行更新,且其他对象之间的距离也未发生变化,因此,在数据集动态变化时,对数据进行增量聚类,仅需进行少量的数据计算,由此,提高了聚类速度。。
进一步参考图2,其示出了增量聚类方法的又一个实施例的流程200。该增量聚类方法的流程200,包括以下步骤:
步骤201,利用具有噪声的基于密度的聚类算法对原数据集进行聚类,确定原数据集中的簇。
在本实施例中,增量聚类方法的执行主体(例如服务器等电子设备)可以利用DBSCAN算法对原数据集进行聚类,确定上述原数据集中的簇。此处,原数据集中可以包含多个对象。
步骤202,响应于检测到上述原数据集的更新,确定对原数据集的更新类型。
在本实施例中,响应于检测到上述原数据集的更新,确定对原数据集的更新类型。响应于确定上述更新类型为增加对象,可以执行步骤203-步骤206。响应于确定上述更新类型为删除对象,可以执行步骤207-步骤209。
步骤203,响应于确定对原数据集的更新类型为增加对象,将增加的对象作为目标对象,确定目标对象的属性。
在本实施例中,响应于确定对原数据集的更新类型为增加对象,将增加的对象作为目标对象,确定目标对象的属性。其中,属性可以分为边缘对象和核心对象。此处,可以基于对上述目标对象的E邻域中的对象数量,确定上述目标对象是否为边缘对象以及核心对象。
响应于确定上述原样本集中不存在位于上述目标对象的Ε邻域中的对象,可以确定上述目标对象为边缘对象。上述E邻域为半径E内的区域。
响应于确定上述原样本中位于上述目标对象的E邻域中的对象的数量大于或等于预设的最小邻接个数,可以确定上述目标对象为核心对象,以及,可以确定上述目标对象的k核心半径。此处,上述k核心半径为与距离第k近的对象的距离。即,对于某个核心对象,它的k核心半径为距离它第k近的对象与它之间的距离。其中,k为正整数。实践中,这里的距离计算方式与上述DBSCAN算法中计算距离的方式相同,通常可以采用欧氏距离等方式计算,此处不再赘述。
步骤204,更新目标对象的邻居对象的属性和k核心半径。
在本实施例中,上述执行主体可以更新上述目标对象的邻居对象的属性和k核心半径。其中,上述k核心半径为与距离第k近的对象的距离。对于每一个邻居对象,该邻居对象的k核心半径即为距离该邻居对象第k近的对象与该邻居对象之间的距离。这里,邻居对象即为位于目标对象的E邻域内的对象。
此处,上述执行主体可以首先更新上述目标对象的邻居对象的属性,从而确定出邻居对象中的核心对象。而后,可以更新上述目标对象的邻居对象中的核心对象的k核心半径。
这里,引入k核心半径的概念,当一个簇的密度高时,k核心半径会自动减小;当一个簇的密度低时,k核心半径不会减小太多。由此,只需要预先设定一个大概的般精致,即可根据数据集中的簇的密度进行k核心半径的自行调整。相对于DBSCAN算法中使用固定的半径E,可以基于密度进行自适应。由此,可提高聚类的准确性。
步骤205,基于所确定的属性,确定更新后所得到的新数据集中的新增核心对象,对新增核心对象的簇标签进行更新,以及,对新增核心对象的邻居对象的簇标签进行更新。
在本实施例中,上述执行主体可以基于所确定的属性,确定更新后所得到的新数据集中的新增核心对象,对上述新增核心对象的簇标签进行更新,以及,对上述新增核心对象的邻居对象的簇标签进行更新。此处,可以对新增核心对象进行分析,以便对新增核心对象的簇标签以及上述新增核心对象的邻居对象的簇标签进行更新。
响应于确定上述新增核心对象的邻居对象中不存在其他核心对象,可以执行如下步骤:首先,将上述新增核心对象与上述新增核心对象的邻居对象归入新的簇。之后,将上述新的簇中的对象的簇标签设定为上述新增核心对象的标识。
响应于确定上述新增核心对象的邻居对象中存在其他核心对象,且上述新数据集中不存在与上述新增核心对象密度直达的核心对象,可以执行如下步骤:首先,将上述新增核心对象与上述新增核心对象的邻居对象归入新的簇。之后,将上述新的簇中的对象的簇标签设定为上述新增核心对象的标识。其中,当两个核心对象的距离小于上述两个核心对象的k核心半径时,上述两个核心对象密度直达。当两个核心对象的距离大于或等于上述两个核心对象的k核心半径时,上述两个核心对象密度不直达。由此,意味着只有两个核心对象充分近的情况下,才能认为他们密度直达,相对于DBSCAN算法中当两核心半径小于半径E时即认为密度直达,可以增量聚类的鲁棒性。
响应于确定上述新增核心对象的邻居对象中存在其他核心对象,且上述新数据集中仅存在一个与上述新增核心对象密度直达的目标核心对象,可以执行如下步骤:首先,将上述新增核心对象和上述新增核心对象的邻居对象归入上述目标核心对象的簇。之后,将上述新增核心对象和上述新增核心对象的邻居对象的簇标签设定为上述目标核心对象的簇的簇标签。
响应于确定上述新增核心对象的邻居对象中存在其他核心对象,且上述新数据集存在至少两个与上述新增核心对象密度直达的目标核心对象,可以执行如下步骤:首先,确定上述目标核心对象的簇标签的众数。其中,众数是目标核心对象的簇标签中出现次数最多的簇标签。而后,可以从上述众数对应的目标核心对象中,选取距离最近的目标核心对象(即与上述新增核心对象的距离最小的目标核心对象)。之后,可以将上述新增核心对象和上述新增核心对象的邻居对象并入所选取的目标核心对象所在的簇。最后,可以将上述新增核心对象和上述新增核心对象的邻居对象的簇标签设定为所选取的目标核心对象的簇的簇标签。
步骤206,基于所确定的k核心半径,对新数据集中的簇进行聚类处理,聚类处理包括合并和/或分裂。
在本实施例中,上述执行主体可以基于所确定的k核心半径,确定两个核心对象是否密度直达。具体地,当两个核心对象的距离小于上述两个核心对象的k核心半径时,上述两个核心对象密度直达。当两个核心对象的距离大于或等于上述两个核心对象的k核心半径时,上述两个核心对象密度不直达。
此处,上述执行主体可以遍历新增核心对象。响应于确定产生新的密度直达关系,可以将上述密度直达关系所涉及的两个核心对象、上述两个核心对象中的各核心对象的密度直达核心对象、以及上述两个核心对象中的各核心对象的边缘对象合并为同一个簇。
此外,上述执行主体可以遍历新增核心对象,响应于确定在上述新增核心对象的邻居对象中,存在由密度直达关系变为密度不直达关系的两个核心对象,将上述变为密度不直达关系的两个核心对象所在的簇进行分裂。分裂后的簇的簇标签不相同。
步骤207,响应于确定对原数据集的更新类型为删除对象,将删除的对象作为目标对象,删除目标对象的邻居对象与目标对象的邻居关系。
在本实施例中,响应于确定对上述原数据集的更新类型为删除对象,上述执行主体可以删除上述目标对象的邻居对象与上述目标对象的邻居关系。这里,由于目标对象从原数据集中删除,因此,该目标对象与该目标对象的邻居关系不再存在。可以解除该邻居关系。
步骤208,对于目标对象的邻居对象中的核心对象,响应于确定核心对象的E邻域内的对象数量少于预设的最小邻接个数,将核心对象更新为边缘对象,并将核心对象加入待删除核心对象集合。
在本实施例中,对于上述目标对象的邻居对象中的核心对象,响应于确定上述核心对象的E邻域内的对象数量少于预设的最小邻接个数,上述执行主体可以将上述核心对象更新为边缘对象,并将上述核心对象加入待删除核心对象集合。
步骤209,对于待删除核心对象集合中的待删除核心对象,响应于确定在删除待删除核心对象后,待删除核心对象的邻居对象中存在由密度直达关系变为密度不直达关系的两个邻居对象,将上述两个邻居对象所在的簇进行分裂。
在本实施例中,对于上述待删除核心对象集合中的待删除核心对象,响应于确定在删除上述待删除核心对象后,上述待删除核心对象的邻居对象中存在由密度直达关系变为密度不直达关系的两个邻居对象,上述执行主体可以将上述两个邻居对象所在的簇进行分裂。分裂后的簇的簇标签不相同。
从图2中可以看出,与图1对应的实施例相比,本实施例中的增量聚类方法的流程200涉及了在增加对象和删除对象两种情况下,分别对公更新数据集执行增量聚类的具体操作步骤。其中,在增量聚类过程中,可以根据k核心半径确定核心对象间是否密度直达。当一个簇的密度高时,k核心半径会自动减小。由此,只需要预先设定一个大概的半径E,即可根据数据集中的簇的密度进行k核心半径的自行调整。相对于DBSCAN算法中使用固定的半径E,可以基于对象的密度进行自适应。由此,可以减少将多个不同的簇合并为一个簇的情况发生,可提高聚类的准确性。
这里,可以参照图3a和图3b。其中,图3a为利用DBSCAN算法进行聚类后的效果图。图3b为根据本申请的增量聚类方法进行聚类后的效果图。
图3a和图3b中点为数据集中的对象。此处,每个对象为一个二维的特征向量(即,每一个特征向量包括两个特征值)。图3a和图3b中的横坐标表示特征向量中的第一个特征值,纵坐标轴表示特征向量中的第二个特征值。图3a和图3b中每一个对象具有一个与之对应的圆圈。
图3a中的各圆圈所包围的区域为相应的对象的E邻域。各圆圈的半径为半径E。由于采用DBSCAN算法对数据集进行聚类,因而,图3a中的各对象的半径E相同。由于各对象的E半径相同,因此,利用DBSCAN算法进行聚类,在对象的密度不均匀的情况下,若半径E设置不当(例如设置较大),则容易将不同的簇视为一个簇,导致聚类效果不准确。
图3b中的圆圈的半径为相应的对象的k核心半径。利用本申请的增量聚类方法,当某个簇密度较大时,k核心半径较小;当某个簇密度较小时,k核心半径较大。由此,在对象的密度不均匀的情况下,可以进行k核心半径的自适应调整,因此,能够有效提高聚类的准确性。
此外,基于k核心半径确定两个核心对象是否密度直达,相对于DBSCAN算法中当两核心半径小于半径E时即认为密度直达,可以增量聚类的鲁棒性。
进一步参考图4,作为对上述各图所示方法的实现,本申请提供了一种增量聚类装置的一个实施例,该装置实施例与图1所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图4所示,本实施例所述的增量聚类装置400包括:第一聚类单元401,被配置成利用具有噪声的基于密度的聚类算法DBSCAN对原数据集进行聚类,确定上述原数据集中的簇;第二聚类单元402,被配置成响应于检测到上述原数据集的更新,基于对上述原数据集的更新类型,对更新后所得到的新数据集进行增量聚类,以对上述原数据集中的簇进行更新,其中,上述更新类型包括增加对象和删除对象。
在本实施例的一些可选的实现方式中,上述第二聚类单元402可以包括增加样本聚类模块(图中未示出)。其中,上述增加样本聚类模块可以被配置成响应于确定对上述原数据集的更新类型为增加对象,将增加的对象作为目标对象,执行如下步骤:确定上述目标对象的属性,上述属性分为边缘对象和核心对象;更新上述目标对象的邻居对象的属性和k核心半径,上述k核心半径为与距离第k近的对象的距离;基于所确定的属性,确定更新后所得到的新数据集中的新增核心对象,对上述新增核心对象的簇标签进行更新,以及,对上述新增核心对象的邻居对象的簇标签进行更新;基于所确定的k核心半径,对上述新数据集中的簇进行聚类处理,上述聚类处理包括合并和/或分裂。
在一些实施例中,上述增加样本聚类模块可以进一步被配置成:响应于确定上述原样本集中不存在位于上述目标对象的Ε邻域中的对象,确定上述目标对象为边缘对象,上述E邻域为半径E内的区域;响应于确定上述原样本中位于上述目标对象的E邻域中的对象的数量大于或等于预设的最小邻接个数,确定上述目标对象为核心对象,以及,确定上述目标对象的k核心半径。
在一些实施例中,上述增加样本聚类模块可以进一步被配置成:更新上述目标对象的邻居对象的属性;更新上述目标对象的邻居对象中的核心对象的k核心半径。
在一些实施例中,上述增加样本聚类模块可以进一步被配置成:响应于确定上述新增核心对象的邻居对象中不存在其他核心对象,执行如下步骤:将上述新增核心对象与上述新增核心对象的邻居对象归入新的簇;将上述新的簇中的对象的簇标签设定为上述新增核心对象的标识。
在一些实施例中,上述增加样本聚类模块可以进一步被配置成:响应于确定上述新增核心对象的邻居对象中存在其他核心对象,且上述新数据集中不存在与上述新增核心对象密度直达的核心对象,执行如下步骤:将上述新增核心对象与上述新增核心对象的邻居对象归入新的簇;将上述新的簇中的对象的簇标签设定为上述新增核心对象的标识;其中,当两个核心对象的距离小于上述两个核心对象的k核心半径时,上述两个核心对象密度直达。
在一些实施例中,上述增加样本聚类模块可以进一步被配置成:响应于确定上述新增核心对象的邻居对象中存在其他核心对象,且上述新数据集中仅存在一个与上述新增核心对象密度直达的目标核心对象,执行如下步骤:将上述新增核心对象和上述新增核心对象的邻居对象归入上述目标核心对象的簇;将上述新增核心对象和上述新增核心对象的邻居对象的簇标签设定为上述目标核心对象的簇的簇标签。
在一些实施例中,上述增加样本聚类模块可以进一步被配置成:响应于确定上述新增核心对象的邻居对象中存在其他核心对象,且上述新数据集存在至少两个与上述新增核心对象密度直达的目标核心对象,执行如下步骤:确定上述目标核心对象的簇标签的众数;从上述众数对应的目标核心对象中,选取距离最近的目标核心对象;将上述新增核心对象和上述新增核心对象的邻居对象并入所选取的目标核心对象的簇;将上述新增核心对象和上述新增核心对象的邻居对象的簇标签设定为所选取的目标核心对象的簇的簇标签。
在一些实施例中,上述增加样本聚类模块可以进一步被配置成:遍历新增核心对象,响应于确定产生新的密度直达关系,将上述密度直达关系所涉及的两个核心对象、上述两个核心对象中的各核心对象的密度直达核心对象、上述两个核心对象中的各核心对象的边缘对象合并为同一个簇;遍历新增核心对象,响应于确定在上述新增核心对象的邻居对象中,存在由密度直达关系变为密度不直达关系的两个核心对象,将上述变为密度不直达关系的两个核心对象所在的簇进行分裂。
在一些实施例中,上述第二聚类单元可以包括删除样本聚类模块(图中未示出)。其中,上述删除样本聚类模块可以被配置成响应于确定对上述原数据集的更新类型为删除对象,将删除的对象作为目标对象,执行如下步骤:删除上述目标对象的邻居对象与上述目标对象的邻居关系;对于上述目标对象的邻居对象中的核心对象,响应于确定上述核心对象的E邻域内的对象数量少于预设的最小邻接个数,将上述核心对象更新为边缘对象,并将上述核心对象加入待删除核心对象集合;对于上述待删除核心对象集合中的待删除核心对象,响应于确定在删除上述待删除核心对象后,上述待删除核心对象的邻居对象中存在由密度直达关系变为密度不直达关系的两个邻居对象,将上述两个邻居对象所在的簇进行分裂。
本申请的上述实施例提供的装置,首先第一聚类单元401利用具有噪声的基于密度的聚类算法对原数据集进行聚类,以便确定出原数据集中的簇。在检测到原数据集的更新之后,第一聚类单元402基于对原数据集的更新类型,对更新后所得到的新数据集进行增量聚类,以对上述原数据集中的簇进行更新。由于在增加对象或者删除对象时,数据集中的其他对象并未进行更新,且其他对象之间的距离也未发生变化,因此,在数据集动态变化时,对数据进行增量聚类,仅需进行少量的数据计算,由此,提高了聚类速度。。
下面参考图5,其示出了适于用来实现本申请实施例的电子设备的计算机系统500的结构示意图。图5示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括第一聚类单元和第二聚类单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:利用具有噪声的基于密度的聚类算法对原数据集进行聚类,确定该原数据集中的簇;响应于检测到该原数据集的更新,基于对该原数据集的更新类型,对更新后所得到的新数据集进行增量聚类,以对该原数据集中的簇进行更新。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (22)
1.一种增量聚类方法,其特征在于,所述方法包括:
利用具有噪声的基于密度的聚类算法DBSCAN对原数据集进行聚类,确定所述原数据集中的簇;
响应于检测到所述原数据集的更新,基于对所述原数据集的更新类型,对更新后所得到的新数据集进行增量聚类,以对所述原数据集中的簇进行更新,其中,所述更新类型包括增加对象和删除对象。
2.根据权利要求1所述的聚类方法,其特征在于,所述基于对所述原数据集的更新类型,对更新后所得到的新数据集进行增量聚类,包括:
响应于确定对所述原数据集的更新类型为增加对象,将增加的对象作为目标对象,执行如下步骤:
确定所述目标对象的属性,所述属性分为边缘对象和核心对象;
更新所述目标对象的邻居对象的属性和k核心半径,所述k核心半径为与距离第k近的对象的距离,所述k为正整数;
基于所确定的属性,确定更新后所得到的新数据集中的新增核心对象,对所述新增核心对象的簇标签进行更新,以及,对所述新增核心对象的邻居对象的簇标签进行更新;
基于所确定的k核心半径,对所述新数据集中的簇进行聚类处理,所述聚类处理包括合并和/或分裂。
3.根据权利要求2所述的聚类方法,其特征在于,所述确定所述目标对象的属性,包括:
响应于确定所述原样本集中不存在位于所述目标对象的Ε邻域中的对象,确定所述目标对象为边缘对象,所述目标对象的E邻域为与所述目标对象的距离小于或等于E的对象的集合,所述E为正数;或者,
响应于确定所述原样本中位于所述目标对象的E邻域中的对象的数量大于或等于预设的最小邻接个数,确定所述目标对象为核心对象,以及,确定所述目标对象的k核心半径。
4.根据权利要求2所述的聚类方法,其特征在于,所述更新所述目标对象的邻居对象的k核心半径,包括:
更新所述目标对象的邻居对象中的核心对象的k核心半径。
5.根据权利要求2所述的聚类方法,其特征在于,所述对所述新增核心对象的簇标签进行更新,以及,对所述新增核心对象的邻居对象的簇标签进行更新,包括:
响应于确定所述新增核心对象的邻居对象中不存在其他核心对象,执行如下步骤:
将所述新增核心对象与所述新增核心对象的邻居对象归入新的簇;
将所述新的簇中的对象的簇标签设定为所述新增核心对象的标识。
6.根据权利要求2所述的聚类方法,其特征在于,所述对所述新增核心对象的簇标签进行更新,以及,对所述新增核心对象的邻居对象的簇标签进行更新,包括:
响应于确定所述新增核心对象的邻居对象中存在其他核心对象,且所述新数据集中不存在与所述新增核心对象密度直达的核心对象,执行如下步骤:
将所述新增核心对象与所述新增核心对象的邻居对象归入新的簇;
将所述新的簇中的对象的簇标签设定为所述新增核心对象的标识;
其中,当两个核心对象满足预设条件时,确定所述两个核心对象密度直达,所述预设条件为:所述两个核心对象的距离小于所述两个核心对象的k核心半径。
7.根据权利要求2所述的聚类方法,其特征在于,所述对所述新增核心对象的簇标签进行更新,以及,对所述新增核心对象的邻居对象的簇标签进行更新,包括:
响应于确定所述新增核心对象的邻居对象中存在其他核心对象,且所述新数据集中仅存在一个与所述新增核心对象密度直达的目标核心对象,执行如下步骤:
将所述新增核心对象和所述新增核心对象的邻居对象归入所述目标核心对象的簇;
将所述新增核心对象和所述新增核心对象的邻居对象的簇标签设定为所述目标核心对象的簇的簇标签。
8.根据权利要求2所述的聚类方法,其特征在于,所述对所述新增核心对象的簇标签进行更新,以及,对所述新增核心对象的邻居对象的簇标签进行更新,包括:
响应于确定所述新增核心对象的邻居对象中存在其他核心对象,且所述新数据集存在至少两个与所述新增核心对象密度直达的目标核心对象,执行如下步骤:
确定所述目标核心对象的簇标签的众数;
从所述众数对应的目标核心对象中,选取距离最近的目标核心对象;
将所述新增核心对象和所述新增核心对象的邻居对象并入所选取的目标核心对象的簇;
将所述新增核心对象和所述新增核心对象的邻居对象的簇标签设定为所选取的目标核心对象的簇的簇标签。
9.根据权利要求2所述的聚类方法,其特征在于,所述对所述新数据集中的簇进行聚类处理,包括:
遍历新增核心对象,响应于确定产生新的密度直达关系,将所述密度直达关系所涉及的两个核心对象、所述两个核心对象中的各核心对象的密度直达核心对象、所述两个核心对象中的各核心对象的边缘对象合并为同一个簇;
遍历新增核心对象,响应于确定在所述新增核心对象的邻居对象中,存在由密度直达关系变为密度不直达关系的两个核心对象,将所述变为密度不直达关系的两个核心对象所在的簇进行分裂。
10.根据权利要求1所述的聚类方法,其特征在于,所述基于对所述原数据集的更新类型,对更新后所得到的新数据集进行增量聚类,包括:
响应于确定对所述原数据集的更新类型为删除对象,将删除的对象作为目标对象,执行如下步骤:
删除所述目标对象的邻居对象与所述目标对象的邻居关系;
对于所述目标对象的邻居对象中的核心对象,响应于确定所述核心对象的E邻域内的对象数量少于预设的最小邻接个数,将所述核心对象更新为边缘对象,并将所述核心对象加入待删除核心对象集合;
对于所述待删除核心对象集合中的待删除核心对象,响应于确定在删除所述待删除核心对象后,所述待删除核心对象的邻居对象中存在由密度直达关系变为密度不直达关系的两个邻居对象,将所述两个邻居对象所在的簇进行分裂。
11.一种增量聚类装置,其特征在于,所述装置包括:
第一聚类单元,被配置成利用具有噪声的基于密度的聚类算法DBSCAN对原数据集进行聚类,确定所述原数据集中的簇;
第二聚类单元,被配置成响应于检测到所述原数据集的更新,基于对所述原数据集的更新类型,对更新后所得到的新数据集进行增量聚类,以对所述原数据集中的簇进行更新,其中,所述更新类型包括增加对象和删除对象。
12.根据权利要求11所述的聚类装置,其特征在于,所述第二聚类单元,包括:
增加样本聚类模块,被配置成响应于确定对所述原数据集的更新类型为增加对象,将增加的对象作为目标对象,执行如下步骤:
确定所述目标对象的属性,所述属性分为边缘对象和核心对象;
更新所述目标对象的邻居对象的属性和k核心半径,所述k核心半径为与距离第k近的对象的距离,所述k为正整数;
基于所确定的属性,确定更新后所得到的新数据集中的新增核心对象,对所述新增核心对象的簇标签进行更新,以及,对所述新增核心对象的邻居对象的簇标签进行更新;
基于所确定的k核心半径,对所述新数据集中的簇进行聚类处理,所述聚类处理包括合并和/或分裂。
13.根据权利要求12所述的聚类装置,其特征在于,所述增加样本聚类模块,进一步被配置成:
响应于确定所述原样本集中不存在位于所述目标对象的Ε邻域中的对象,确定所述目标对象为边缘对象,所述目标对象的E邻域为与所述目标对象的距离小于或等于E的对象的集合,所述E为正数;或者,
响应于确定所述原样本中位于所述目标对象的E邻域中的对象的数量大于或等于预设的最小邻接个数,确定所述目标对象为核心对象,以及,确定所述目标对象的k核心半径。
14.根据权利要求12所述的聚类装置,其特征在于,所述增加样本聚类模块,进一步被配置成:
更新所述目标对象的邻居对象中的核心对象的k核心半径。。
15.根据权利要求12所述的聚类装置,其特征在于,所述增加样本聚类模块,进一步被配置成:
响应于确定所述新增核心对象的邻居对象中不存在其他核心对象,执行如下步骤:
将所述新增核心对象与所述新增核心对象的邻居对象归入新的簇;
将所述新的簇中的对象的簇标签设定为所述新增核心对象的标识。
16.根据权利要求12所述的聚类装置,其特征在于,所述增加样本聚类模块,进一步被配置成:
响应于确定所述新增核心对象的邻居对象中存在其他核心对象,且所述新数据集中不存在与所述新增核心对象密度直达的核心对象,执行如下步骤:
将所述新增核心对象与所述新增核心对象的邻居对象归入新的簇;
将所述新的簇中的对象的簇标签设定为所述新增核心对象的标识;
其中,当两个核心对象满足预设条件时,确定所述两个核心对象密度直达,所述预设条件为:所述两个核心对象的距离小于所述两个核心对象的k核心半径。
17.根据权利要求12所述的聚类装置,其特征在于,所述增加样本聚类模块,进一步被配置成:
响应于确定所述新增核心对象的邻居对象中存在其他核心对象,且所述新数据集中仅存在一个与所述新增核心对象密度直达的目标核心对象,执行如下步骤:
将所述新增核心对象和所述新增核心对象的邻居对象归入所述目标核心对象的簇;
将所述新增核心对象和所述新增核心对象的邻居对象的簇标签设定为所述目标核心对象的簇的簇标签。
18.根据权利要求12所述的聚类装置,其特征在于,所述增加样本聚类模块,进一步被配置成:
响应于确定所述新增核心对象的邻居对象中存在其他核心对象,且所述新数据集存在至少两个与所述新增核心对象密度直达的目标核心对象,执行如下步骤:
确定所述目标核心对象的簇标签的众数;
从所述众数对应的目标核心对象中,选取距离最近的目标核心对象;
将所述新增核心对象和所述新增核心对象的邻居对象并入所选取的目标核心对象的簇;
将所述新增核心对象和所述新增核心对象的邻居对象的簇标签设定为所选取的目标核心对象的簇的簇标签。
19.根据权利要求12所述的聚类装置,其特征在于,所述增加样本聚类模块,进一步被配置成:
遍历新增核心对象,响应于确定产生新的密度直达关系,将所述密度直达关系所涉及的两个核心对象、所述两个核心对象中的各核心对象的密度直达核心对象、所述两个核心对象中的各核心对象的边缘对象合并为同一个簇;
遍历新增核心对象,响应于确定在所述新增核心对象的邻居对象中,存在由密度直达关系变为密度不直达关系的两个核心对象,将所述变为密度不直达关系的两个核心对象所在的簇进行分裂。
20.根据权利要求11所述的聚类装置,其特征在于,所述第二聚类单元,包括:
删除样本聚类模块,被配置成响应于确定对所述原数据集的更新类型为删除对象,将删除的对象作为目标对象,执行如下步骤:
删除所述目标对象的邻居对象与所述目标对象的邻居关系;
对于所述目标对象的邻居对象中的核心对象,响应于确定所述核心对象的E邻域内的对象数量少于预设的最小邻接个数,将所述核心对象更新为边缘对象,并将所述核心对象加入待删除核心对象集合;
对于所述待删除核心对象集合中的待删除核心对象,响应于确定在删除所述待删除核心对象后,所述待删除核心对象的邻居对象中存在由密度直达关系变为密度不直达关系的两个邻居对象,将所述两个邻居对象所在的簇进行分裂。
21.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-10中任一所述的方法。
22.一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-10中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910074952.0A CN109886311B (zh) | 2019-01-25 | 2019-01-25 | 增量聚类方法、装置、电子设备和计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910074952.0A CN109886311B (zh) | 2019-01-25 | 2019-01-25 | 增量聚类方法、装置、电子设备和计算机可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109886311A true CN109886311A (zh) | 2019-06-14 |
CN109886311B CN109886311B (zh) | 2021-08-20 |
Family
ID=66926930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910074952.0A Active CN109886311B (zh) | 2019-01-25 | 2019-01-25 | 增量聚类方法、装置、电子设备和计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109886311B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112257801A (zh) * | 2020-10-30 | 2021-01-22 | 浙江商汤科技开发有限公司 | 图像的增量聚类方法、装置、电子设备及存储介质 |
CN112749748A (zh) * | 2021-01-14 | 2021-05-04 | 上海云从汇临人工智能科技有限公司 | 基于归约的数据增量聚类方法、系统、介质及装置 |
WO2022052372A1 (zh) * | 2020-09-14 | 2022-03-17 | 深圳市商汤科技有限公司 | 目标数据更新方法、装置、设备、存储介质及程序产品 |
CN115987619A (zh) * | 2022-12-21 | 2023-04-18 | 中国电子科技集团公司第三十研究所 | 网络流量异常检测方法、装置、设备及介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105426878A (zh) * | 2015-12-22 | 2016-03-23 | 小米科技有限责任公司 | 人脸聚类方法及装置 |
-
2019
- 2019-01-25 CN CN201910074952.0A patent/CN109886311B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105426878A (zh) * | 2015-12-22 | 2016-03-23 | 小米科技有限责任公司 | 人脸聚类方法及装置 |
Non-Patent Citations (3)
Title |
---|
MARTIN ESTER ET AL.: "Incremental Clustering for Mining in a Data Warehousing Environment", 《PROCEEDINGS OF THE 24TH VLDB CONFERENCE》 * |
周菊香等: "基于密度的自适应搜索增量聚类法", 《数据库技术》 * |
陈峰: "基于聚类的增量数据挖掘研究", 《中国优秀硕士学位论文全文数据库 经济与管理科学辑》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022052372A1 (zh) * | 2020-09-14 | 2022-03-17 | 深圳市商汤科技有限公司 | 目标数据更新方法、装置、设备、存储介质及程序产品 |
CN112257801A (zh) * | 2020-10-30 | 2021-01-22 | 浙江商汤科技开发有限公司 | 图像的增量聚类方法、装置、电子设备及存储介质 |
CN112257801B (zh) * | 2020-10-30 | 2022-04-29 | 浙江商汤科技开发有限公司 | 图像的增量聚类方法、装置、电子设备及存储介质 |
CN112749748A (zh) * | 2021-01-14 | 2021-05-04 | 上海云从汇临人工智能科技有限公司 | 基于归约的数据增量聚类方法、系统、介质及装置 |
CN112749748B (zh) * | 2021-01-14 | 2023-11-07 | 上海云从汇临人工智能科技有限公司 | 基于归约的数据增量聚类方法、系统、介质及装置 |
CN115987619A (zh) * | 2022-12-21 | 2023-04-18 | 中国电子科技集团公司第三十研究所 | 网络流量异常检测方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109886311B (zh) | 2021-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109886311B (zh) | 增量聚类方法、装置、电子设备和计算机可读介质 | |
US20190279088A1 (en) | Training method, apparatus, chip, and system for neural network model | |
Basar et al. | Unsupervised color image segmentation: A case of RGB histogram based K-means clustering initialization | |
CN108229419B (zh) | 用于聚类图像的方法和装置 | |
TW201931169A (zh) | 樣本集的處理方法及裝置、樣本的查詢方法及裝置 | |
CN111985601A (zh) | 用于增量学习的数据识别方法 | |
CN113469186B (zh) | 一种基于少量点标注的跨域迁移图像分割方法 | |
CN113947693A (zh) | 获取目标对象识别模型的方法、装置及电子设备 | |
CN109299263A (zh) | 文本分类方法、电子设备及计算机程序产品 | |
CN114492601A (zh) | 资源分类模型的训练方法、装置、电子设备及存储介质 | |
CN114548192A (zh) | 样本数据处理方法、装置、电子设备及介质 | |
CN113554307A (zh) | 一种基于rfm模型的用户分组方法、装置及可读介质 | |
CN115861255A (zh) | 用于图像处理的模型训练方法、装置、设备、介质及产品 | |
CN112115996A (zh) | 图像数据的处理方法、装置、设备及存储介质 | |
CN108615006A (zh) | 用于输出信息的方法和装置 | |
CN114117141A (zh) | 一种自适应密度聚类方法、存储介质及系统 | |
CN116109907B (zh) | 目标检测方法、装置、电子设备及存储介质 | |
CN112148865B (zh) | 信息推送方法和装置 | |
KR20190105147A (ko) | 반딧불 알고리즘을 이용한 데이터 클러스터링 방법 및 시스템 | |
CN112131199A (zh) | 一种日志处理方法、装置、设备及介质 | |
JP2023152270A (ja) | 人工知能によるデータラベリング方法、装置、電子デバイス、記憶媒体、及びプログラム | |
CN113239687B (zh) | 一种数据处理方法和装置 | |
Tang et al. | Mining statistically significant patterns with high utility | |
CN112632981A (zh) | 一种新词发现方法和装置 | |
CN115223113B (zh) | 训练样本集清洗方法、装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |