CN104391879B - 层次聚类的方法及装置 - Google Patents
层次聚类的方法及装置 Download PDFInfo
- Publication number
- CN104391879B CN104391879B CN201410602569.5A CN201410602569A CN104391879B CN 104391879 B CN104391879 B CN 104391879B CN 201410602569 A CN201410602569 A CN 201410602569A CN 104391879 B CN104391879 B CN 104391879B
- Authority
- CN
- China
- Prior art keywords
- data object
- cluster
- class
- distance
- data
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/231—Hierarchical techniques, i.e. dividing or merging pattern sets so as to obtain a dendrogram
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Image Analysis (AREA)
Abstract
本公开是关于一种层次聚类的方法及装置,属于数据挖掘领域。方法包括:获取待聚类的数据对象集合,该数据对象集合包括多个类,每个类对应于至少一个数据对象;对第一类所对应的数据对象进行聚类,得到聚类结果,该第一类所对应的数据对象个数超过第一预设阈值,该聚类结果包括多个簇,每个簇包括至少一个数据对象;根据聚类结果,对第一类所对应的数据对象进行筛选,得到第一类的代表数据对象;基于第一类的代表数据对象以及第二类所对应的数据对象,计算类间距离;基于类间距离,对数据对象集合进行层次聚类。本公开通过将第一类所对应的数据对象进行聚类,减少了计算量,节省了计算时间和资源,并且使得聚类结果更可靠,有利于后续的数据分析。
Description
技术领域
本公开涉及数据挖掘领域,特别涉及一种层次聚类的方法及装置。
背景技术
在数据挖掘领域中,通常需要对大量的数据进行分析,以获取有价值的分析结果。聚类算法是数据挖掘领域中用于分析数据的一种重要算法,该算法用于将由多个数据组成的集合按照数据的不同类别进行分类,其目的是尽可能地将相似度较大的数据聚合成一类,以方便后续的数据分析。其中,层次聚类是较常用的一种聚类算法。
相关技术在实现层次聚类的方法时,是通过计算两个类之间的距离,即类间距离,从而将类间距离小于一定值的两个类合并为一个新类。由于每个类可能包含不止一个数据对象,因此,在计算类间距离时,需将一个类中的所有数据对象与另一个类的所有数据对象进行两两计算,对所有的计算结果进行统计,得到平均值或最小值,将其作为类间距离,从而根据类间距离实现后续的聚类。
在实现本公开的过程中,发明人发现相关技术至少存在以下问题:
相关技术中,通过计算类间距离实现层次聚类时,其计算量过大,当类中包含的数据对象很多时,将会耗费过多的时间和资源,并且,由于每个类中可能包含不属于该类的数据对象,即噪声,使用该数据对象进行类间距离的计算并形成新类之后,可能会引入更多的噪声,导致聚类结果较差,不利于后续的数据分析。
发明内容
为克服相关技术中存在的问题,本公开提供一种层次聚类的方法及装置。
根据本公开实施例的第一方面,提供一种层次聚类的方法,包括:
获取待聚类的数据对象集合,所述数据对象集合包括多个类,每个类对应于至少一个数据对象;
对第一类所对应的数据对象进行聚类,得到聚类结果,所述第一类所对应的数据对象个数超过第一预设阈值,所述聚类结果包括多个簇,每个簇包括至少一个数据对象;
根据聚类结果,对所述第一类所对应的数据对象进行筛选,得到所述第一类的代表数据对象;
基于所述第一类的代表数据对象以及第二类所对应的数据对象,计算类间距离;
基于所述类间距离,对所述数据对象集合进行层次聚类。
结合第一方面,在第一方面的第一种可能的实现方式中,根据聚类结果,对所述第一类所对应的数据对象进行筛选,得到所述第一类的代表数据对象包括:
根据所述多个簇所包括的数据对象,在每个簇中,将与所述簇的中心点距离最近的数据对象作为所述簇的代表数据对象;
将所述多个簇的代表数据对象作为所述第一类的代表数据对象。
结合第一方面,在第一方面的第二种可能的实现方式中,基于所述第一类的代表数据对象以及第二类所对应的数据对象,计算类间距离包括:
根据所述第一类中簇所包含数据对象的个数,获取所述第一类的代表数据对象的权重;
基于所述第一类的代表数据对象、所述第一类的代表数据对象的权重以及第二类所对应的数据对象,计算类间距离。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,基于所述第一类的代表数据对象、所述第一类的代表数据对象的权重以及第二类所对应的数据对象,计算类间距离包括:
对于第一代表数据对象和第二代表数据对象,计算数据对象之间的第一距离,根据第一代表数据对象的权重和第二代表数据对象的权重,对所述第一距离进行加权处理,得到第一代表数据对象和第二代表数据对象之间的加权距离;或,
对于第一代表数据对象和所述第二类中的第三数据对象,计算数据对象之间的第二距离,根据第一代表数据对象的权重,对所述第二距离进行加权处理,得到第一代表数据对象和所述第三数据对象之间的加权距离。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,基于所述类间距离,对所述数据对象集合进行层次聚类包括:
基于所述类间距离,对所述数据对象集合中的多个类进行合并;
基于合并后的类,继续执行对第一类的聚类和筛选,直到基于聚类和筛选的结果所计算得到的类间距离大于第二预设阈值,输出层次聚类结果。
根据本公开实施例的第二方面,提供一种层次聚类的装置,包括:
获取模块,用于获取待聚类的数据对象集合,所述数据对象集合包括多个类,每个类对应于至少一个数据对象;
第一聚类模块,用于对第一类所对应的数据对象进行聚类,得到聚类结果,所述第一类所对应的数据对象个数超过第一预设阈值,所述聚类结果包括多个簇,每个簇包括至少一个数据对象;
筛选模块,用于根据聚类结果,对所述第一类所对应的数据对象进行筛选,得到所述第一类的代表数据对象;
计算模块,用于基于所述第一类的代表数据对象以及第二类所对应的数据对象,计算类间距离;
第二聚类模块,用于基于所述类间距离,对所述数据对象集合进行层次聚类。
结合第一方面,在第一方面的第一种可能的实现方式中,所述筛选模块,用于根据所述多个簇所包括的数据对象,在每个簇中,将与所述簇的中心点距离最近的数据对象作为所述簇的代表数据对象;将所述多个簇的代表数据对象作为所述第一类的代表数据对象。
结合第一方面,在第一方面的第二种可能的实现方式中,所述计算模块,用于根据所述第一类中簇所包含数据对象的个数,获取所述第一类的代表数据对象的权重;基于所述第一类的代表数据对象、所述第一类的代表数据对象的权重以及第二类所对应的数据对象,计算类间距离。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述计算模块,用于对于第一代表数据对象和第二代表数据对象,计算数据对象之间的第一距离,根据第一代表数据对象的权重和第二代表数据对象的权重,对所述第一距离进行加权处理,得到第一代表数据对象和第二代表数据对象之间的加权距离;或,用于对于第一代表数据对象和所述第二类中的第三数据对象,计算数据对象之间的第二距离,根据第一代表数据对象的权重,对所述第二距离进行加权处理,得到第一代表数据对象和所述第三数据对象之间的加权距离。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述第二聚类模块,用于基于所述类间距离,对所述数据对象集合中的多个类进行合并;基于合并后的类,继续执行对第一类的聚类和筛选,直到基于聚类和筛选的结果所计算得到的类间距离大于第二预设阈值,输出层次聚类结果。
根据本公开实施例的第三方面,提供一种层次聚类的装置,包括:
处理器;
用于存储处理器可执行的指令;
其中,所述处理器被配置为:
获取待聚类的数据对象集合,所述数据对象集合包括多个类,每个类对应于至少一个数据对象;
对第一类所对应的数据对象进行聚类,得到聚类结果,所述第一类所对应的数据对象个数超过第一预设阈值,所述聚类结果包括多个簇,每个簇包括至少一个数据对象;
根据聚类结果,对所述第一类所对应的数据对象进行筛选,得到所述第一类的代表数据对象;
基于所述第一类的代表数据对象以及第二类所对应的数据对象,计算类间距离;
基于所述类间距离,对所述数据对象集合进行层次聚类。
本公开实施例提供的技术方案可以包括以下有益效果:
本公开通过在待聚类数据对象集合中,将第一类所对应的数据对象进行聚类,并根据聚类结果从筛选出第一类的代表数据对象,从而在利用数据对象进行类间距离计算时,减少了计算量,节省了计算时间和资源,而由于第一类所对应的数据对象经过筛选后,可能将原来不属于该类的数据对象筛除,即去除了该类的噪声,使得聚类结果更可靠,有利于后续的数据分析。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种层次聚类的方法流程图。
图2是根据一示例性实施例示出的一种层次聚类的方法流程图。
图3是根据一示例性实施例示出的一种层次聚类的装置框图。
图4是根据一示例性实施例示出的一种用于层次聚类的装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
层次聚类的方法可以应用在多种场景中,如,在市场分析场景中用于对不同购买能力的客户群进行聚类,在生物学中用于对不同种群的生物进行聚类等,特别地,本公开实施例是以人脸识别场景为例,对本公开实施例提供的层次聚类的方法进行说明的。
图1是根据一示例性实施例示出的一种层次聚类的方法流程图,如图1所示,层次聚类的方法用于服务器中,包括以下步骤。
在步骤S101中,获取待聚类的数据对象集合,该数据对象集合包括多个类,每个类对应于至少一个数据对象。
具体地,在不同的应用场景中,该数据对象集合所包括的数据对象类型不同,相应地,该数据对象集合所包括类的类型也不同。例如,在人脸识别场景中,该数据对象集合包含的数据对象类型可以为人脸数据;相应地,该数据对象集合包括的每个类可以代表一个用户,每个类所对应的数据对象即为该类代表的用户所对应的人脸数据对象;具体地,每个人脸数据对象可以为一个多维向量,本公开实施例对此不作具体限定。
在步骤S102中,对第一类所对应的数据对象进行聚类,得到聚类结果,该第一类所对应的数据对象个数超过第一预设阈值,该聚类结果包括多个簇,每个簇包括至少一个数据对象。
在本公开实施例中,对于包括多个类的数据对象集合,由于有的类所对应的数据对象个数较多,可能导致在利用类所对应的数据对象进行聚类时,计算量过多,因此,需要减少上述类所对应的数据对象个数。具体地,可以对第一类所对应的数据对象进行聚类,从而使第一类所对应的数据对象个数不超过第一预设阈值。具体实施时,可以采用聚类算法,将第一类所对应的数据对象按照数据对象的相似度,即按照数据对象之间的距离进行聚类,得到包括多个簇的聚类结果;其中,每个簇代表了聚类之后的一个类,每个簇包括至少一个数据对象,每个簇中数据对象之间的距离小于一定阈值,该阈值可以由技术开发人员进行事先设定,本公开实施例对此不作具体限定。
在步骤S103中,根据聚类结果,对第一类所对应的数据对象进行筛选,得到第一类的代表数据对象。
在对第一类所对应的数据对象进行聚类,得到包括多个簇的聚类结果后,还应对每个簇中的数据对象进行筛选,从每个簇中筛选出一个数据对象,作为第一类的代表数据对象,从而减少了第一类中后续用于计算类间距离的数据对象个数,并且由于每个簇代表了聚类之后的一个类,从而可以利用筛选出的代表数据对象进行后续聚类过程的计算。
在步骤S104中,基于第一类的代表数据对象以及第二类所对应的数据对象,计算类间距离。
在本公开实施例中,第二类为待聚类的数据对象集合中除了第一类以外的所有类,由于第一类所对应的数据对象个数超过第一预设阈值,因此,第二类所对应的数据对象个数不超过第一预设阈值。
在待聚类的数据对象集合中,从第一类所对应的数据对象中筛选出代表数据对象后,可基于第一类的代表数据对象以及第二类所对应的数据对象,对于待聚类数据集合中的类,两两计算类间距离。具体地,计算两个类之间的类间距离,即将其中一个类所对应的数据对象与另一个类所对应的所有数据对象一一进行距离计算,得到多个距离计算结果;对多个距离计算结果求平均值,得到平均距离,或对多个距离计算结果进行筛选,从中得到最小距离;将得到的平均距离或最小距离作为两个类之间的类间距离。
在步骤S105中,基于类间距离,对数据对象集合进行层次聚类。
在本公开实施例中,聚类的结果是使相似度较高的数据对象聚集到一个类中,因此,可以在对数据对象集合包括的所有类进行两两计算得到所有类间距离后,基于类间距离的大小,得到新的聚类结果。
需要说明的是,在得到新的聚类结果之后,还需重新从步骤S102开始,循环执行层次聚类的过程,尽可能将数据对象集合中相似度较大的数据对象聚为一类,得到尽可能准确的层次聚类结果,从而可以根据该层次聚类结果进行数据分析。
可选地,根据聚类结果,对第一类所对应的数据对象进行筛选,得到第一类的代表数据对象包括:
根据多个簇所包括的数据对象,在每个簇中,将与簇的中心点距离最近的数据对象作为簇的代表数据对象;
将多个簇的代表数据对象作为第一类的代表数据对象。
可选地,基于第一类的代表数据对象以及第二类所对应的数据对象,计算类间距离包括:
根据第一类中簇所包含数据对象的个数,获取第一类的代表数据对象的权重;
基于第一类的代表数据对象、第一类的代表数据对象的权重以及第二类所对应的数据对象,计算类间距离。
可选地,基于第一类的代表数据对象、第一类的代表数据对象的权重以及第二类所对应的数据对象,计算类间距离包括:
对于第一代表数据对象和第二代表数据对象,计算数据对象之间的第一距离,根据第一代表数据对象的权重和第二代表数据对象的权重,对第一距离进行加权处理,得到第一代表数据对象和第二代表数据对象之间的加权距离;或,
对于第一代表数据对象和第二类中的第三数据对象,计算数据对象之间的第二距离,根据第一代表数据对象的权重,对第二距离进行加权处理,得到第一代表数据对象和第三数据对象之间的加权距离。
可选地,基于类间距离,对数据对象集合进行层次聚类包括:
基于类间距离,对数据对象集合中的多个类进行合并;
基于合并后的类,继续执行对第一类的聚类和筛选,直到基于聚类和筛选的结果所计算得到的类间距离大于第二预设阈值,输出层次聚类结果。
本公开实施例提供的方法,通过在待聚类数据对象集合中,将第一类所对应的数据对象进行聚类,并根据聚类结果从筛选出第一类的代表数据对象,从而在利用数据对象进行类间距离计算时,减少了计算量,节省了计算时间和资源,而由于第一类所对应的数据对象经过筛选后,可能将原来不属于该类的数据对象筛除,即去除了该类的噪声,使得聚类结果更可靠,有利于后续的数据分析。
图2是根据一示例性实施例示出的一种层次聚类的方法流程图,如图2所示,层次聚类的方法用于服务器中,包括以下步骤:
在步骤S201中,获取待聚类的数据对象集合,该数据对象集合包括多个类,每个类对应于至少一个数据对象。
在本公开实施例中,待聚类的数据对象集合可以是事先进行采集并存储于服务器中的,本公开实施例对此不作具体限定。在人脸识别场景中,待聚类的数据对象集合中包括多个人脸数据对象,该多个人脸数据对象可以是由技术人员利用智能采集设备对多个不同用户的脸部信息进行采集,得到对应于不同表情的多个人脸数据对象,并存储于服务器中。
需要说明的是,在聚类开始之前,待聚类的数据对象集合中包括多个独立的数据对象,此时,需将每个独立的数据对象分别视作一个类,从而进行后续的层次聚类。
在步骤S202中,对第一类所对应的数据对象进行聚类,得到聚类结果,该第一类所对应的数据对象个数超过第一预设阈值,该聚类结果包括多个簇,每个簇包括至少一个数据对象。
在本公开实施例中,仅以采用kmeans算法对第一类所对应的数据对象进行聚类为例进行说明。具体地,服务器在执行kmeans算法之前,还需获取第一预设阈值;根据各个类所对应的数据对象个数,判断待聚类的数据对象集合中是否包括第一类,从而对第一类所对应的数据对象进行聚类。其中,第一预设阈值可以由技术开发人员进行事先设定,在算法的执行过程中由服务器自动获取;或在算法的执行过程中,根据用户或技术人员的输入来确定,本公开实施例对此不作具体限定。
假设第一预设阈值为k,则第一类所对应的数据对象个数超过k个,相应地,该采用kmeans算法对第一类所对应的数据对象进行聚类的过程,包括:从第一类的所有数据对象中,任选k个数据对象;将第一类中剩余的每个数据对象分别与k个数据对象进行一一比较,计算每个数据对象分别与k个数据对象之间的距离;对于第一类中剩余的每个数据对象,基于其与k个数据对象之间的距离,将其与k个数据对象中距离最小的一个归入一个簇中,从而将第一类所对应的数据对象分成k个簇;对于每个簇,对簇中包括的所有数据对象进行平均值计算,将得到的计算结果作为每个簇的中心值;将k个簇对应的中心值作为新的比较对象,计算第一类所对应的所有数据对象与k个中心值的距离,循环执行在第一类中分出k个簇,并计算簇的中心值的步骤,直到循环次数大于预设的循环次数位置,此时得到的k个簇即为对第一类所对应的数据对象进行聚类后,得到的聚类结果。
在步骤S203中,根据多个簇所包括的数据对象,在每个簇中,将与簇的中心点距离最近的数据对象作为簇的代表数据对象,并将多个簇的代表数据对象作为第一类的代表数据对象。
根据步骤S202在第一类中得到k个簇后,还需根据多个簇所包括的数据对象,在每个簇中,将与簇的中心点距离最近的数据对象作为簇的代表数据对象,并将多个簇的代表数据对象作为第一类的代表数据对象,从而减少了第一类中后续用于计算类间距离的数据对象个数,减少了后续利用数据对象进行计算的计算量,并且,从簇中选出的代表数据对象具有较好的代表性,能够代表第一类所对应的所有数据对象,还剔除了与簇的中心点距离较远的数据对象,即剔除了可能不属于该第一类的数据对象,降低了噪声。
例如,在人脸识别场景中,每个类对应的数据对象为对应于某个用户所有不同表情的脸部信息,而用户每个表情会对应多个脸部信息,如微笑时对应多个脸部信息,严肃时对应多个脸部信息;对第一类所对应的数据对象进行聚类和筛选后,得到的代表数据对象,即为对应于该用户每个表情的具有代表性的脸部信息,该脸部信息即可代表用户微笑时的所有脸部信息。
在步骤S204中,基于第一类的代表数据对象以及第二类所对应的数据对象,计算类间距离。
可选地,基于第一类的代表数据对象以及第二类所对应的数据对象,计算类间距离包括:根据第一类中簇所包含数据对象的个数,获取第一类的代表数据对象的权重;基于第一类的代表数据对象、第一类的代表数据对象的权重以及第二类所对应的数据对象,计算类间距离。具体地,该根据第一类中簇所包含数据对象的个数,获取第一类的代表数据对象的权重的过程,可以是根据待聚类的数据对象集合中数据对象的总个数,计算每个簇所包含的数据对象个数占总个数的比例,将该比例作为该簇的代表数据对象的权重。
此外,可选地,基于第一类的代表数据对象、第一类的代表数据对象的权重以及第二类所对应的数据对象,计算类间距离,根据计算过程中所涉及的数据对象所对应类的不同,包括下述情况(1)~(2):
(1)对于第一代表数据对象和第二代表数据对象,计算数据对象之间的第一距离,根据第一代表数据对象的权重和第二代表数据对象的权重,对第一距离进行加权处理,得到第一代表数据对象和第二代表数据对象之间的加权距离。
其中,第(1)中情况为参与计算的两个类均为第一类时的情况,第一代表数据对象和第二代表数据对象均为第一类的代表数据对象。
具体地,计算数据对象之间的第一距离,即对于两个第一类,计算其中一个第一类的所有数据对象与另一个第一类的所有数据对象之间的第一距离,在人脸识别的场景中,由于人脸数据对象可以是一个多维的向量,因此,计算人脸数据对象之间的距离,可以是计算人脸数据对象之间的余弦相似度,从而将该余弦相似度作为计算得到的第一距离。
在得到第一距离后,还可对第一距离进行加权处理,如将第一距离与第一代表数据对象的权重相乘,再与第二代表数据对象的权重相乘,得到第一代表数据对象和第二代表数据对象之间的加权距离。
(2)对于第一代表数据对象和第二类中的第三数据对象,计算数据对象之间的第二距离,根据第一代表数据对象的权重,对第二距离进行加权处理,得到第一代表数据对象和第三数据对象之间的加权距离。
其中,第(2)中情况为参与计算的两个类为一个第一类和一个第二类的情况,第一代表数据对象为第一类的代表数据对象,第三数据对象为第二类所对应的数据对象。
具体地,该计算数据对象之间的第一距离的过程,与第(1)中情况同理,此处不再赘述。在得到第一距离后,还可对第一距离进行加权处理,由于此时第三数据对象为独立的数据,不具有权重,因此,可将第一距离与第一代表数据对象的权重相乘,得到第一代表数据对象和第三数据对象之间的加权距离。
当然,在实际应用中,也可以只计算类与类之间的第一距离,而不考虑权重,将第一距离作为类间距离。需要说明的是,上述对于代表数据对象权重的计算方法和基于该权重计算类间距离的方法仅为举例说明,在实际应用中,也可以采用其他计算方法进行计算,本公开实施例对此不作具体限定。
在步骤S205中,基于类间距离,对数据对象集合中的多个类进行合并。
进一步地,该基于类间距离,对数据对象集合中的多个类进行合并的过程包括:基于类间距离的大小,对类间距离小于或等于第二预设阈值的类进行合并。
需要说明的是,合并后的类将包括被合并的类所对应的所有数据对象。在人脸识别场景中,进行类合并,即将数据对象集合中属于同一用户的类进行合并,合并后的类中包括的数据对象均为该用户的人脸数据对象,直到同一用户的所有人脸数据对象都分在一个类中。当然,在实际应用中,也可以是按照人脸数据对象是否属于同一表情进行聚类,相应地,在进行类合并时,将数据对象集合中属于同一表情的类进行合并,合并后的类包括的数据对象为同一表情所对应的人脸数据对象,本公开实施例该聚类算法的具体应用场景不作具体限定。
在步骤S206中,基于合并后的类,继续执行对第一类的聚类和筛选,直到基于聚类和筛选的结果所计算得到的类间距离大于第二预设阈值,输出层次聚类结果。
在本公开实施例中,进行类合并后,由于合并后得到的多个类可能还有相似度较高的,例如,在人脸识别场景中,进行类合并后,得到的多个类中可能还有属于同一用户而未进行合并的类,因此,还需对类合并后得到的数据对象集合,继续执行对第一类的聚类和筛选,即循环执行步骤S202~步骤S205的过程,直到基于聚类和筛选的结果所计算得到的类间距离大于第二预设阈值,即完成了层次聚类,从而可以输出层次聚类结果。
本公开实施例提供的方法,通过在待聚类数据对象集合中,将第一类所对应的数据对象进行聚类,并根据聚类结果从筛选出第一类的代表数据对象,从而在利用数据对象进行类间距离计算时,减少了计算量,节省了计算时间和资源;进一步地,在根据聚类结果从筛选出第一类的代表数据对象的过程中,通过计算簇的中心点,从每个簇中获取离中心点最近的代表数据对象,从而在将第一类所对应的数据对象经过筛选后,将原来不属于该类的数据对象筛除,即去除了该类的噪声,使得聚类结果更可靠,有利于后续的数据分析。
图3是根据一示例性实施例示出的一种层次聚类的装置框图。参照图3,该装置包括获取模块301,第一聚类模块302,筛选模块303,计算模块304,第二聚类模块305。
该获取模块301被配置为获取待聚类的数据对象集合,所述数据对象集合包括多个类,每个类对应于至少一个数据对象;
该第一聚类模块302被配置为对第一类所对应的数据对象进行聚类,得到聚类结果,所述第一类所对应的数据对象个数超过第一预设阈值,所述聚类结果包括多个簇,每个簇包括至少一个数据对象;
该筛选模块303被配置为根据聚类结果,对所述第一类所对应的数据对象进行筛选,得到所述第一类的代表数据对象;
该计算模块304被配置为基于所述第一类的代表数据对象以及第二类所对应的数据对象,计算类间距离;
该第二聚类模块305被配置为基于所述类间距离,对所述数据对象集合进行层次聚类。
具体地,该筛选模块303,被配置为根据所述多个簇所包括的数据对象,在每个簇中,将与所述簇的中心点距离最近的数据对象作为所述簇的代表数据对象;将所述多个簇的代表数据对象作为所述第一类的代表数据对象。
具体地,该计算模块304,被配置为根据所述第一类中簇所包含数据对象的个数,获取所述第一类的代表数据对象的权重;基于所述第一类的代表数据对象、所述第一类的代表数据对象的权重以及第二类所对应的数据对象,计算类间距离。
具体地,该计算模块304,被配置为对于第一代表数据对象和第二代表数据对象,计算数据对象之间的第一距离,根据第一代表数据对象的权重和第二代表数据对象的权重,对所述第一距离进行加权处理,得到第一代表数据对象和第二代表数据对象之间的加权距离;或,用于对于第一代表数据对象和所述第二类中的第三数据对象,计算数据对象之间的第二距离,根据第一代表数据对象的权重,对所述第二距离进行加权处理,得到第一代表数据对象和所述第三数据对象之间的加权距离。
具体地,该第二聚类模块305,被配置为基于所述类间距离,对所述数据对象集合中的多个类进行合并;基于合并后的类,继续执行对第一类的聚类和筛选,直到基于聚类和筛选的结果所计算得到的类间距离大于第二预设阈值,输出层次聚类结果。
本公开实施例提供的装置,通过在待聚类数据对象集合中,将第一类所对应的数据对象进行聚类,并根据聚类结果从筛选出第一类的代表数据对象,从而在利用数据对象进行类间距离计算时,减少了计算量,节省了计算时间和资源,而由于第一类所对应的数据对象经过筛选后,可能将原来不属于该类的数据对象筛除,即去除了该类的噪声,使得聚类结果更可靠,有利于后续的数据分析。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图4是根据一示例性实施例示出的一种用于层次聚类的装置400的框图。例如,装置400可以被提供为一服务器。参照图4,装置400包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法:
获取待聚类的数据对象集合,所述数据对象集合包括多个类,每个类对应于至少一个数据对象;
对第一类所对应的数据对象进行聚类,得到聚类结果,所述第一类所对应的数据对象个数超过第一预设阈值,所述聚类结果包括多个簇,每个簇包括至少一个数据对象;
根据聚类结果,对所述第一类所对应的数据对象进行筛选,得到所述第一类的代表数据对象;
基于所述第一类的代表数据对象以及第二类所对应的数据对象,计算类间距离;
基于所述类间距离,对所述数据对象集合进行层次聚类。
假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,装置的存储器中,还包含用于执行以下操作的指令:
根据所述多个簇所包括的数据对象,在每个簇中,将与所述簇的中心点距离最近的数据对象作为所述簇的代表数据对象;
将所述多个簇的代表数据对象作为所述第一类的代表数据对象。
在第一种可能的实施方式作为基础而提供的第三种可能的实施方式中,终端的存储器中,还包含用于执行以下操作的指令:
根据所述第一类中簇所包含数据对象的个数,获取所述第一类的代表数据对象的权重;
基于所述第一类的代表数据对象、所述第一类的代表数据对象的权重以及第二类所对应的数据对象,计算类间距离。
在第三种可能的实施方式作为基础而提供的第四种可能的实施方式中,终端的存储器中,还包含用于执行以下操作的指令:
对于第一代表数据对象和第二代表数据对象,计算数据对象之间的第一距离,根据第一代表数据对象的权重和第二代表数据对象的权重,对所述第一距离进行加权处理,得到第一代表数据对象和第二代表数据对象之间的加权距离;或,
对于第一代表数据对象和所述第二类中的第三数据对象,计算数据对象之间的第二距离,根据第一代表数据对象的权重,对所述第二距离进行加权处理,得到第一代表数据对象和所述第三数据对象之间的加权距离。
在第一种可能的实施方式作为基础而提供的第五种可能的实施方式中,终端的存储器中,还包含用于执行以下操作的指令:
基于所述类间距离,对所述数据对象集合中的多个类进行合并;
基于合并后的类,继续执行对第一类的聚类和筛选,直到基于聚类和筛选的结果所计算得到的类间距离大于第二预设阈值,输出层次聚类结果。
装置400还可以包括一个电源组件1926被配置为执行装置400的电源管理,一个有线或无线网络接口1950被配置为将装置400连接到网络,和一个输入输出(I/O)接口1958。装置400可以操作基于存储在存储器1932的操作***,例如Windows ServerTM,Mac OSXTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本公开实施例提供的装置,通过在待聚类数据对象集合中,将第一类所对应的数据对象进行聚类,并根据聚类结果从筛选出第一类的代表数据对象,从而在利用数据对象进行类间距离计算时,减少了计算量,节省了计算时间和资源,而由于第一类所对应的数据对象经过筛选后,可能将原来不属于该类的数据对象筛除,即去除了该类的噪声,使得聚类结果更可靠,有利于后续的数据分析。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (11)
1.一种层次聚类的方法,其特征在于,所述方法包括:
获取待聚类的数据对象集合,所述数据对象集合包括多个类,每个类对应于至少一个数据对象;
对第一类所对应的数据对象进行聚类,得到聚类结果,所述第一类所对应的数据对象个数超过第一预设阈值,所述聚类结果包括多个簇,每个簇包括至少一个数据对象;
根据聚类结果,对所述第一类所对应的数据对象进行筛选,得到所述第一类的代表数据对象;
基于所述第一类的代表数据对象以及第二类所对应的数据对象,计算类间距离;
基于所述类间距离,对所述数据对象集合进行层次聚类。
2.根据权利要求1所述的方法,其特征在于,根据聚类结果,对所述第一类所对应的数据对象进行筛选,得到所述第一类的代表数据对象包括:
根据所述多个簇所包括的数据对象,在每个簇中,将与所述簇的中心点距离最近的数据对象作为所述簇的代表数据对象;
将所述多个簇的代表数据对象作为所述第一类的代表数据对象。
3.根据权利要求1所述的方法,其特征在于,基于所述第一类的代表数据对象以及第二类所对应的数据对象,计算类间距离包括:
根据所述第一类中簇所包含数据对象的个数,获取所述第一类的代表数据对象的权重;
基于所述第一类的代表数据对象、所述第一类的代表数据对象的权重以及第二类所对应的数据对象,计算类间距离。
4.根据权利要求3所述的方法,其特征在于,基于所述第一类的代表数据对象、所述第一类的代表数据对象的权重以及第二类所对应的数据对象,计算类间距离包括:
对于第一代表数据对象和第二代表数据对象,计算数据对象之间的第一距离,根据第一代表数据对象的权重和第二代表数据对象的权重,对所述第一距离进行加权处理,得到第一代表数据对象和第二代表数据对象之间的加权距离;或,
对于第一代表数据对象和所述第二类中的第三数据对象,计算数据对象之间的第二距离,根据第一代表数据对象的权重,对所述第二距离进行加权处理,得到第一代表数据对象和所述第三数据对象之间的加权距离。
5.根据权利要求1所述的方法,其特征在于,基于所述类间距离,对所述数据对象集合进行层次聚类包括:
基于所述类间距离,对所述数据对象集合中的多个类进行合并;
基于合并后的类,继续执行对第一类的聚类和筛选,直到基于聚类和筛选的结果所计算得到的类间距离大于第二预设阈值,输出层次聚类结果。
6.一种层次聚类的装置,其特征在于,所述装置包括:
获取模块,用于获取待聚类的数据对象集合,所述数据对象集合包括多个类,每个类对应于至少一个数据对象;
第一聚类模块,用于对第一类所对应的数据对象进行聚类,得到聚类结果,所述第一类所对应的数据对象个数超过第一预设阈值,所述聚类结果包括多个簇,每个簇包括至少一个数据对象;
筛选模块,用于根据聚类结果,对所述第一类所对应的数据对象进行筛选,得到所述第一类的代表数据对象;
计算模块,用于基于所述第一类的代表数据对象以及第二类所对应的数据对象,计算类间距离;
第二聚类模块,用于基于所述类间距离,对所述数据对象集合进行层次聚类。
7.根据权利要求6所述的装置,其特征在于,所述筛选模块,用于根据所述多个簇所包括的数据对象,在每个簇中,将与所述簇的中心点距离最近的数据对象作为所述簇的代表数据对象;将所述多个簇的代表数据对象作为所述第一类的代表数据对象。
8.根据权利要求6所述的装置,其特征在于,所述计算模块,用于根据所述第一类中簇所包含数据对象的个数,获取所述第一类的代表数据对象的权重;基于所述第一类的代表数据对象、所述第一类的代表数据对象的权重以及第二类所对应的数据对象,计算类间距离。
9.根据权利要求8所述的装置,其特征在于,所述计算模块,用于对于第一代表数据对象和第二代表数据对象,计算数据对象之间的第一距离,根据第一代表数据对象的权重和第二代表数据对象的权重,对所述第一距离进行加权处理,得到第一代表数据对象和第二代表数据对象之间的加权距离;或,用于对于第一代表数据对象和所述第二类中的第三数据对象,计算数据对象之间的第二距离,根据第一代表数据对象的权重,对所述第二距离进行加权处理,得到第一代表数据对象和所述第三数据对象之间的加权距离。
10.根据权利要求6所述的装置,其特征在于,所述第二聚类模块,用于基于所述类间距离,对所述数据对象集合中的多个类进行合并;基于合并后的类,继续执行对第一类的聚类和筛选,直到基于聚类和筛选的结果所计算得到的类间距离大于第二预设阈值,输出层次聚类结果。
11.一种层次聚类的装置,其特征在于,包括:
处理器;
用于存储处理器可执行的指令;
其中,所述处理器被配置为:
获取待聚类的数据对象集合,所述数据对象集合包括多个类,每个类对应于至少一个数据对象;
对第一类所对应的数据对象进行聚类,得到聚类结果,所述第一类所对应的数据对象个数超过第一预设阈值,所述聚类结果包括多个簇,每个簇包括至少一个数据对象;
根据聚类结果,对所述第一类所对应的数据对象进行筛选,得到所述第一类的代表数据对象;
基于所述第一类的代表数据对象以及第二类所对应的数据对象,计算类间距离;
基于所述类间距离,对所述数据对象集合进行层次聚类。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410602569.5A CN104391879B (zh) | 2014-10-31 | 2014-10-31 | 层次聚类的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410602569.5A CN104391879B (zh) | 2014-10-31 | 2014-10-31 | 层次聚类的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104391879A CN104391879A (zh) | 2015-03-04 |
CN104391879B true CN104391879B (zh) | 2017-10-10 |
Family
ID=52609783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410602569.5A Active CN104391879B (zh) | 2014-10-31 | 2014-10-31 | 层次聚类的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104391879B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776600A (zh) * | 2015-11-19 | 2017-05-31 | 北京国双科技有限公司 | 文本聚类的方法及装置 |
CN105654039B (zh) * | 2015-12-24 | 2019-09-17 | 小米科技有限责任公司 | 图像处理的方法和装置 |
CN108205590B (zh) * | 2017-12-29 | 2022-01-28 | 北京奇元科技有限公司 | 一种建立兴趣点网络层级拓扑图的方法及装置 |
CN108062576B (zh) * | 2018-01-05 | 2019-05-03 | 百度在线网络技术(北京)有限公司 | 用于输出数据的方法和装置 |
CN109086697A (zh) * | 2018-07-20 | 2018-12-25 | 腾讯科技(深圳)有限公司 | 一种人脸数据处理方法、装置及存储介质 |
CN109145844A (zh) * | 2018-08-29 | 2019-01-04 | 北京旷视科技有限公司 | 用于城市安防监控的档案管理方法、装置以及电子设备 |
CN110046586A (zh) * | 2019-04-19 | 2019-07-23 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、设备及存储介质 |
CN112287244A (zh) * | 2020-10-29 | 2021-01-29 | 平安科技(深圳)有限公司 | 基于联邦学习的产品推荐方法、装置、计算机设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101079072A (zh) * | 2007-06-22 | 2007-11-28 | 中国科学院研究生院 | 一种文本聚类元学习方法及装置 |
US8019711B1 (en) * | 2003-11-10 | 2011-09-13 | James Ralph Heidenreich | System and method to provide a customized problem solving environment for the development of user thinking about an arbitrary problem |
CN102360377A (zh) * | 2011-10-12 | 2012-02-22 | 中国测绘科学研究院 | 一种空间聚类挖掘pse***及其构建方法 |
CN103473255A (zh) * | 2013-06-06 | 2013-12-25 | 中国科学院深圳先进技术研究院 | 一种数据聚类方法、***及数据处理设备 |
-
2014
- 2014-10-31 CN CN201410602569.5A patent/CN104391879B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8019711B1 (en) * | 2003-11-10 | 2011-09-13 | James Ralph Heidenreich | System and method to provide a customized problem solving environment for the development of user thinking about an arbitrary problem |
CN101079072A (zh) * | 2007-06-22 | 2007-11-28 | 中国科学院研究生院 | 一种文本聚类元学习方法及装置 |
CN102360377A (zh) * | 2011-10-12 | 2012-02-22 | 中国测绘科学研究院 | 一种空间聚类挖掘pse***及其构建方法 |
CN103473255A (zh) * | 2013-06-06 | 2013-12-25 | 中国科学院深圳先进技术研究院 | 一种数据聚类方法、***及数据处理设备 |
Also Published As
Publication number | Publication date |
---|---|
CN104391879A (zh) | 2015-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104391879B (zh) | 层次聚类的方法及装置 | |
WO2016127883A1 (zh) | 一种图像区域检测方法及装置 | |
WO2019080908A1 (zh) | 实现图像识别的图像处理方法及装置、电子设备 | |
CN109784474A (zh) | 一种深度学习模型压缩方法、装置、存储介质及终端设备 | |
CN110689136B (zh) | 一种深度学习模型获得方法、装置、设备及存储介质 | |
CN104679818A (zh) | 一种视频关键帧提取方法及*** | |
CN109685092B (zh) | 基于大数据的聚类方法、设备、存储介质及装置 | |
CN111260220B (zh) | 群控设备识别方法、装置、电子设备和存储介质 | |
CN108206813B (zh) | 基于k均值聚类算法的安全审计方法、装置及服务器 | |
CN110648289A (zh) | 图像的加噪处理方法及装置 | |
CN112132279A (zh) | 卷积神经网络模型压缩方法、装置、设备及存储介质 | |
US7991617B2 (en) | Optimum design management apparatus from response surface calculation and method thereof | |
CN111091106A (zh) | 图像聚类方法及装置、存储介质、电子装置 | |
CN111008631A (zh) | 图像的关联方法及装置、存储介质和电子装置 | |
CN105491370B (zh) | 基于图的协同低高级特征的视频显著性检测方法 | |
CN114297041A (zh) | 网络异构计算平台测试方法、装置和计算机设备 | |
CN117193992B (zh) | 模型训练方法、任务调度方法、装置以及计算机存储介质 | |
CN114492742A (zh) | 神经网络结构搜索、模型发布方法、电子设备和存储介质 | |
CN112508135B (zh) | 模型训练方法、行人属性预测方法、装置及设备 | |
CN111476886B (zh) | 智慧建筑楼宇三维模型渲染方法及楼宇云服务器 | |
CN114880363A (zh) | 一种数据中心流量预测***及训练方法、预测方法 | |
CN111382628B (zh) | 同行判定方法及装置 | |
CN116155835B (zh) | 一种基于排队论的云资源服务质量评估方法及*** | |
CN113537281B (zh) | 一种对多个高维数据进行可视化比较的降维方法 | |
CN114419738B (zh) | 一种姿态检测方法、装置、电子设备以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |