CN113869380B - 基于Kmeans聚类的数据分类方法、装置及电子设备 - Google Patents
基于Kmeans聚类的数据分类方法、装置及电子设备 Download PDFInfo
- Publication number
- CN113869380B CN113869380B CN202111080779.9A CN202111080779A CN113869380B CN 113869380 B CN113869380 B CN 113869380B CN 202111080779 A CN202111080779 A CN 202111080779A CN 113869380 B CN113869380 B CN 113869380B
- Authority
- CN
- China
- Prior art keywords
- chromosome
- cluster
- clusters
- data
- population
- 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
- 238000000034 method Methods 0.000 title claims abstract description 62
- 210000000349 chromosome Anatomy 0.000 claims abstract description 283
- 230000002068 genetic effect Effects 0.000 claims abstract description 46
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 35
- 108090000623 proteins and genes Proteins 0.000 claims description 86
- 239000006185 dispersion Substances 0.000 claims description 42
- 238000004220 aggregation Methods 0.000 claims description 29
- 230000002776 aggregation Effects 0.000 claims description 29
- 230000007614 genetic variation Effects 0.000 claims description 16
- 238000003860 storage Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 8
- 230000002759 chromosomal effect Effects 0.000 claims description 6
- 230000002829 reductive effect Effects 0.000 abstract description 8
- 230000000875 corresponding effect Effects 0.000 description 46
- 230000035772 mutation Effects 0.000 description 34
- 230000006870 function Effects 0.000 description 13
- 230000000694 effects Effects 0.000 description 6
- 238000011156 evaluation Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000002596 correlated effect Effects 0.000 description 3
- 238000012804 iterative process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 238000007621 cluster analysis Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 108700026220 vif Genes Proteins 0.000 description 1
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/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及数据分类技术领域,公开了一种基于Kmeans聚类的数据分类方法、装置及电子设备,该方法包括:基于待分类数据获得初始化的种群;对种群进行遗传进化以获得下一代种群;基于下一代种群进行聚类操作,并基于聚类结果确定每个染色体对应的适应度,进而选出精英染色体;判断是否满足遗传算法终止条件,若是,则基于选出的精英染色体获得待分类数据的分类结果,否则继续对种群进行遗传进化。在遗传进化过程中增加了染色体长度变异,只需要随机选定初始的K值和质心,便能在遗传进化迭代过程中自动学习到最优的K值和K个质心,降低了初始值选择对聚类结果的影响,提高数据分类的准确性。
Description
技术领域
本申请涉及数据分类技术领域,尤其涉及一种基于Kmeans聚类的数据分类方法、装置及电子设备。
背景技术
大数据时代的数据膨胀正在改变着社会的各个领域,包括公共政策、科学发现、业务策略,甚至我们的个人生活。面对大规模的数据,如何从中高效、准确地提取出有价值的信息变得更加困难,也更加有意义。聚类作为数据挖掘的重要工具,能够根据数据本身的特征和规律对数据进行分类和整理,无需事先标记数据,也无需事先制定规则,在数据治理、多文档分类等领域都有着广泛的应用。
在数据分类中常用的聚类算法Kmeans是一种基于欧氏距离的朴素的聚类方法,简单快速,在获知K值和初始质心的情况下往往是行之有效的,执行效率比起其他聚类算法要高,因此常常用于数据量比较大的场合。然而,一般情况下,K值和初始质心对于非业务专家来说往往是较难选取的,且K值和初始质心的选择对聚类结果的影响很大,很大程度上影响了数据分类的准确度以及Kmeans算法在数据分类中的应用。
发明内容
本申请实施例提供一种基于Kmeans聚类的数据分类方法、装置、电子设备及存储介质,在遗传进化过程中增加了染色体长度变异,只需要随机选定初始的K值和质心,便能在遗传进化迭代过程中自动学习到最优的K值和K个质心,杜绝了初始值选择对聚类结果的影响,提高数据分类的准确性。
一方面,本申请一实施例提供了一种基于Kmeans聚类的数据分类方法,包括:
步骤一、基于待分类数据获得初始化的种群S0,所述种群S0包括预设数量个染色体,每个染色体中的K个基因为从所述待分类数据中随机选取的K个数据,每个染色体对应的K等于为每个染色体随机确定的聚类数目;
步骤二、对种群Sn进行遗传变异操作和选择操作,以获得下一代种群Sn+1,其中,n的初始值为0,所述遗传变异操作包括交叉变异、普通变异和染色体长度变异中的至少一种;
步骤三、针对所述种群Sn+1中的每个染色体,以染色体中的K个基因为质心进行聚类操作以获得多个簇,基于每个簇的质心更新染色体中对应的基因,并基于所述多个簇确定染色体对应的适应度;
步骤四、根据所述种群Sn+1中每个染色体对应的适应度,从所述种群Sn+1中选出精英染色体;
步骤五、判断是否满足遗传算法终止条件,若是,则基于从所述种群Sn+1中选出的精英染色体对所述待分类数据进行聚类操作,以获得所述待分类数据的分类结果,否则n的值增加1并返回步骤二。
可选地,所述染色体长度变异包括:
根据所述种群Sn的规模和染色体长度变异率,确定需要进行染色体长度变异的目标数量,其中,染色体长度等于染色体包含的基因数量;
根据所述种群Sn中的精英染色体对应的染色体长度,确定经过染色体长度变异后的目标长度;
从所述待分类数据中,重新获得所述目标数量个染色体,其中,重新获得的染色体的长度等于所述目标长度。
可选地,所述染色体长度变异率与遗传进化的世代数负相关。
可选地,所述普通变异包括:
针对染色体中每个基因对应的簇,根据簇内平均距离和簇内样本数,确定染色体中每个基因的基因质量;
对于染色体中基因质量小于质量阈值的任一基因,从所述任一基因对应的簇中选择一个新的数据,用所述新的数据替换染色体中的所述任一基因。
可选地,所述基于所述多个簇确定染色体对应的适应度,包括:
基于染色体对应的多个簇,确定染色体对应的簇平均离散度、簇的个数和无效聚集数,其中,所述无效聚集数是指与最近邻簇之间的离散度小于预设阈值的簇的数量;
根据染色体对应的簇平均离散度、簇的个数和无效聚集数,确定染色体对应的适应度。
可选地,所述根据染色体对应的簇平均离散度、簇的个数和无效聚集数,确定染色体对应的适应度,包括:
通过如下公式确定染色体对应的适应度f:
其中,DistBtnClusters表示平均簇间距离,DistInClusters表示平均簇内距离,表示簇平均离散度,I2表示簇的个数,I4表示无效聚集数。
可选地,通过如下方式获得所述无效聚集数:
针对通过聚类获得的任一簇,找出与所述任一簇距离最近的最近邻簇,确定所述任一簇的平均半径和所述最近邻簇的平均半径的半径之和,确定所述任一簇和所述最近邻簇的质心距离,根据所述质心距离和所述半径之和的比值确定所述任一簇和所述最近邻簇的离散度,若所述离散度小于预设阈值,则所述无效聚集数的数值增加1。
一方面,本申请一实施例提供了一种基于Kmeans聚类的数据分类装置,包括:
初始化模块,用于基于待分类数据获得初始化的种群S0,所述种群S0包括预设数量个染色体,每个染色体中的K个基因为从所述待分类数据中随机选取的K个数据,每个染色体对应的K等于为每个染色体随机确定的聚类数目;
遗传模块,用于对种群Sn进行遗传变异操作和选择操作,以获得下一代种群Sn+1,其中,n的初始值为0,所述遗传变异操作包括交叉变异、普通变异和染色体长度变异中的至少一种;
聚类模块,用于针对所述种群Sn+1中的每个染色体,以染色体中的K个基因为质心进行聚类操作以获得多个簇,基于每个簇的质心更新染色体中对应的基因,并基于所述多个簇确定染色体对应的适应度;
精英确定模块,用于根据所述种群Sn+1中每个染色体对应的适应度,从所述种群Sn+1中选出精英染色体;
判断模块,用于判断是否满足遗传算法终止条件,若是,则执行分类模块,否则n的值增加1并返回执行遗传模块;
分类模块,用于基于从所述种群Sn+1中选出的精英染色体对所述待分类数据进行聚类操作,以获得所述待分类数据的分类结果。
一方面,本申请一实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行计算机程序时实现上述任一种方法的步骤。
一方面,本申请一实施例提供了一种计算机可读存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时实现上述任一种方法的步骤。
一方面,本申请一实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任一种TCP传输性能的控制的各种可选实现方式中提供的方法。
本申请实施例提供的基于Kmeans聚类的数据分类方法、装置、电子设备及存储介质,在对包含K个质心的染色体进行遗传进化的过程中增加了染色体长度变异,只需要随机选定初始的K值和质心,便能在遗传进化迭代过程中自动学习到最优的K值和K个质心,无需依赖专家经验就能进行聚类分析,杜绝了初始值选择对聚类结果的影响,提高数据分类的准确性。此外,可以精英染色体的K值为榜样进行染色体长度变异,并且控制染色体长度变异率随着遗传世代数的增加而下降,在保持优良染色体基因的同时,快速定位到合适的K值,加速了算法的收敛过程。将经过KMeans算法收敛后的质心作为染色体的基因,同时计算通过Kmeans算法形成的各个簇的“质量”,将其作为染色体基因优劣的标准,指导染色体交叉和变异的过程。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请一实施例提供的基于Kmeans聚类的数据分类方法的流程示意图;
图2为本申请一实施例提供的进行染色体长度变异的流程示意图;
图3为本申请一实施例提供的进行普通变异的流程示意图;
图4为本申请一实施例提供的基于Kmeans聚类的数据分类装置的结构示意图;
图5为本申请一实施例提供的电子设备的结构示意图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合;并且,基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本申请,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
为了方便理解,下面对本申请实施例中涉及的名词进行解释:
KMeans(K均值)聚类:一种聚类分析算法,属于无监督学习领域。
GA(Genetic Algorithm,遗传算法):计算数学中用于解决最佳化的搜索算法,是进化算法的一种。
适应度函数(Fitness Function):遗传算法的评估函数,用于对种群进行优胜劣汰。适应度函数值越高,则越容易生存,否则越容易被淘汰。
簇(Cluster):一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。
离群点(Outlier):被划分在簇内,但是属于该簇的可能性很小的数据样本。
附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
在具体实践过程中,Kmeans算法存在一些缺点:(1)需要指定K值(即聚类数目),且K值的选择对聚类的结果影响很大;(2)算法对初始值的选择非常敏感,不同的初始值可能会导致不同的结果;(3)算法无法排除噪声(即离群点)的影响。
为此,本申请提供了一种基于Kmeans聚类的数据分类方法,在对包含K个质心的染色体进行遗传进化的过程中增加了染色体长度变异,只需要随机选定初始的K值和质心,便能在遗传进化迭代过程中自动学习到最优的K值和K个质心,无需依赖专家经验就能进行聚类分析,降低了初始值选择对聚类结果的影响,提高数据分类的准确性。
此外,可以精英染色体的K值为榜样进行染色体长度变异,并且控制染色体长度变异率随着遗传世代数的增加而下降,在保持优良染色体基因的同时,快速定位到合适的K值,加速了算法的收敛过程。将经过KMeans算法收敛后的质心作为染色体的基因,同时计算通过Kmeans算法形成的各个簇的“质量”,将其作为染色体基因优劣的标准,指导染色体交叉和变异的过程。
进一步地,在遗传进化过程中通过构建的不同于简单Kmeans算法的评价函数(在遗传算法中称为适应度函数),该评价函数综合了通过Kmeans算法获得的簇的簇平均离散度、簇的个数和无效聚集数,是面向全局最优的一个评价函数,提高了对聚类结果的评价准确度,进而可以选择出更优质的精英染色体指导后续的遗传变异,有助于提高数据分类的准确性。
为进一步说明本申请实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本申请实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本申请实施例提供的执行顺序。
参考图1,本申请实施例提供一种基于Kmeans聚类的数据分类方法,包括以下步骤:
S101、基于待分类数据获得初始化的种群S0,种群S0包括预设数量个染色体,每个染色体中的K个基因为从待分类数据中随机选取的K个数据,每个染色体对应的K等于为每个染色体随机确定的聚类数目。
具体实施时,可根据待分类数据的数据量、实际应用需求等,预先设定遗传种群的规模,种群的规模即种群包含的染色体数量。一般在遗传过程中会保持每个世代的种群规模不变。在一个可能的实施方式中,种群的规模为20,即每个世代有20个染色体参与遗传进化过程。
种群S0为遗传算法中的初代种群。具体地,针对种群S0中的每个待生成的染色体,可随机选择一个数值作为该染色体对应的K值,并从待分类数据中随机选取K个数据作为染色体的K个基因。上述K值既代表了染色体包含的基因数量,也是进行聚类操作时的聚类数目,为避免K值过大,可限定K值的选取范围,如1到100。
具体实施时,可先对统计待分类数据的数量,通过相关降维方法选取有效的特征属性,并统计特征属性的数量。如果待分类数据的数量为N,其特征属性的数量为M,那么建议N的数量级保持在十万之内,M的数量保持在十个以内,这样可以降低数据分类方法的运行时间。如果N过大,可以采取划分空间再并行计算的方式进行分类处理。另外,如果M值过大,则选取前十个最为重要的特征属性进行度量。此外,还可以对待分类数据做一些列的预处理,如填补缺失值、数据归一化等,以保证聚类分析结果的质量。
本申请实施例中的待分类数据可以是任何一种形式的数据,如文本数据、图像、音频等。为此,本申请实施例的基于Kmeans聚类的数据分类方法可应用于各类数据的分类。
S102、对种群Sn进行遗传变异操作和选择操作,以获得下一代种群Sn+1,其中,n的初始值为0,遗传变异操作包括交叉变异、普通变异和染色体长度变异中的至少一种。
其中,种群Sn代表遗传过程中的第n个世代,每个世代的种群都是在上一个世代的种群的基础上变异而来的。种群Sn可以称为种群Sn+1的父代,相应地,种群Sn+1可以称为种群Sn的子代。
其中,遗传变异操作是在种群Sn的基础上对染色体进行遗传变异,以获得新的染色体。
其中,交叉变异是指将两个染色体按照某种方式相互交换部分基因,形成两个新的染色体的过程。例如,父代染色体为X和Y,X的染色体长度小于等于Y,对Y进行重排序,找出对应X中每个最近邻基因(即使得两个簇的质心距离最近的那个基因),而后进行随机选点,做单点交叉。
其中,普通变异是指替换掉染色体中质量较低的基因的过程。例如,染色体中某个基因的质量小于质量阈值,则可以重新选择一个新的数据,用新的数据替换染色体的该基因。这样可以在遗传过程中保留质量较高的基因。
其中,染色体长度变异是根据预设方式生成不同染色体长度的新染色体的过程。这样,无需指定初始K值,便能在遗传进化迭代过程中自动学习到最优的K值,降低了初始值选择对聚类结果的影响,提高数据分类的准确性。
选择操作是指从遗传进化获得的新的染色体中选择出质量较高的染色体,加入到下一代种群Sn+1中,从而逐步优化种群中的染色体质量。一般可通过适应度函数来确定染色体选择遗传到下一代的概率,即可将适应度较高的染色体加入到下一代种群Sn+1中,淘汰掉适应度较低的染色体。或者,可采用轮盘赌的方式随机选择加入到下一代种群Sn+1中的染色体,每个染色体在轮盘中的占比可根据染色体的适应度确定,染色体的适应度越高,在轮盘中的占比越高,即被选中的概率越高。
S103、针对种群Sn+1中的每个染色体,以染色体中的K个基因为质心进行聚类操作以获得多个簇,基于每个簇的质心更新染色体中对应的基因,并基于多个簇确定染色体对应的适应度。
具体实施时,可采用常见的Kmeans算法进行聚类操作,直至收敛并获得K个簇,并基于每个簇中的数据计算每个簇的质心,用每个簇的质心替换染色体中对应的基因。
具体实施时,可采用现有的任意一种适应度函数计算染色体对应的适应度。
S104、根据种群Sn+1中每个染色体对应的适应度,从种群Sn+1中选出精英染色体。
其中,适应度越高表示染色体的变异发生概率越低,即在变异过程中表现得越稳定;适应度越低表示染色体的变异发生概率越高,即在变异过程中越容易发生变异。选取的精英应当是较为稳定的染色体,具体可选择适应度最高的染色体作为该世代的精英染色体。
S105、判断是否满足遗传算法终止条件,若是,则执行步骤S106,否则n的值增加1并返回步骤S102。
具体实施时,遗传算法终止条件可以是:指定数量个世代的精英的适应度保持不变,具体地,当下一代精英的适应度与上一代精英的适应度差值小于误差阈值时,可认为这两代精英的适应度保持不变。其中,指定数量可根据经验设定,例如可以是10。
具体实施时,遗传算法终止条件也可以是:遗传的世代数达到世代数上限。
S106、基于从种群Sn+1中选出的精英染色体对待分类数据进行聚类操作,以获得待分类数据的分类结果。
具体地,以精英染色体中的多个基因为质心进行聚类操作以获得多个簇,这多个簇即为待分类数据的分类结果。
进一步地,可基于步骤S106获得的分类结果,为每个数据打上簇的分类标签,同时使用3σ法标记出每个簇中的离群点。
本申请实施例提供的基于Kmeans聚类的数据分类方法,在对包含K个质心的染色体进行遗传进化的过程中增加了染色体长度变异,只需要随机选定初始的K值和质心,便能在遗传进化迭代过程中自动学习到最优的K值和K个质心,无需依赖专家经验就能进行聚类分析,降低了初始值选择对聚类结果的影响,提高数据分类的准确性。
在一种可能的实施方式中,可通过如下方式确定染色体对应的适应度:基于染色体对应的多个簇,确定染色体对应的簇平均离散度、簇的个数和无效聚集数;根据染色体对应的簇平均离散度、簇的个数和无效聚集数,确定染色体对应的适应度。
其中,簇平均离散度是描述一个簇内的数据的离散程度的物理量。一般来说,簇平均离散度越大,聚类效果越好。
其中,无效聚集数是指与最近邻簇之间的离散度小于预设阈值的簇的数量。将距离某个簇最近的一个簇,称为该簇的最近邻簇。两个簇之间的离散度是描述簇之间的距离远近以及是否有交集的物理量。簇之间没有交集且距离较远,则表明聚类效果越好。
根据奥卡姆剃刀原理,评价效果相差不大的模型时,以简单的模型为准,这里的表现是当簇平均离散度相差无几时,簇的个数越少,聚类效果越好。
为此,适应度与簇平均离散度正相关,适应度与簇的个数负相关,适应度与无效聚集数负相关。
具体地,可通过如下公式确定染色体对应的适应度f:
其中,DistBtnClusters表示平均簇间距离,DistInClusters表示平均簇内距离,表示簇平均离散度,I2表示簇的个数,I4表示无效聚集数。
其中,计算平均簇间距离的公式为:
计算平均簇内距离的公式为:
其中,K表示簇的数量,表示第j个簇的第i个数据,mj表示第j个簇的质心,nj表示第j个簇的簇内样本数。
具体实施时,可通过如下方式获得无效聚集数:针对通过聚类获得的任一簇,找出与任一簇距离最近的最近邻簇,确定任一簇的平均半径和最近邻簇的平均半径的半径之和,确定任一簇和最近邻簇的质心距离,根据质心距离和半径之和的比值确定任一簇和最近邻簇的离散度,若离散度小于预设阈值,则无效聚集数的数值增加1。
一般来说,如果两个簇之间的离散度大于1,则可以判定两簇是分离的,如果两个簇之间的离散度小于1则可以判定两簇存在相交部分,很可能属于同一个簇,因此预设阈值的取值可以是1,当然预设阈值也可以选择大于1的值。
本申请实施例提供了一个面向全局最优的适应度函数,该适应度函数融合了簇平均离散度、簇的个数和无效聚集数,提高了对聚类结果的评价准确度,进而可以选择出更优质的精英染色体指导后续的遗传变异,有助于提高数据分类的准确性。
在一种可能的实施方式中,可设置染色体长度变异率,进而可以控制每个世代需要进行染色体长度变异的染色体数目,并且以上一个世代的精英染色体的染色体长度为榜样,进行染色体长度变异,保证优秀染色体的基因能够得到遗传。参考图2,针对种群Sn的染色体长度变异具体的包括如下步骤:
S201、根据种群Sn的规模和染色体长度变异率,确定需要进行染色体长度变异的目标数量。
其中,染色体长度等于染色体包含的基因数量。具体地,目标数量可以等于种群规模和染色体长度变异率的乘积,例如,种群Sn的规模为20,染色体长度变异率为0.2,则需要进行染色体长度变异的目标数量为4。
进一步地,染色体长度变异率与遗传进化的世代数负相关,即控制染色体长度变异率随着遗传世代数的增加而下降,这样在保持优良染色体基因的同时,可逐步减少进行染色体长度变异的染色体数量,可快速定位到合适的K值,加速了算法的收敛过程。
具体地,染色体长度变异率随着遗传世代数的增加呈指数式下降,染色体长度变异率的初始值可以设置为R0,设第n代的染色体长度变异率为Rn,则第n+1代的染色体长度变异率为Rn+1=α·Rn,其中α的取值大于0且小于1,具体取值可根据经验设定,本申请不作限定。
S202、根据种群Sn中的精英染色体对应的染色体长度,确定经过染色体长度变异后的目标长度。
当目标数量为1时,目标长度为唯一的数据。当目标数量大于1时,可根据种群Sn中的精英染色体的染色体长度,确定出多个目标长度的取值,目标长度的数量不超过目标数量。
具体实施时,可依据正态分布的法则,在种群Sn中的精英染色体的染色体长度的基础上进行适当增减,以获得一个或多个目标长度。例如,精英染色体的染色体长度为5,目标数量为2,则经过染色体长度变异后的目标长度的取值可能是3和4,也可能是4和6等数值。
S203、从待分类数据中,重新获得目标数量个染色体,其中,重新获得的染色体的长度等于目标长度。
具体地,将目标长度作为染色体的K值,从待分类数据中随机选取K个数据作为染色体的K个基因,这样即获得一个新的染色体。
当目标长度包含多个取值时,例如目标数量为2,目标长度为3和4,则从待分类数据中随机选取3个数据生成一个新的染色体,从待分类数据中随机选取4个数据生成另一个新的染色体。
在一种可能的实施方式中,将经过Kmeans算法收敛后的质心作为染色体的基因,同时计算通过Kmeans算法形成的各个簇的“质量”,将其作为染色体基因优劣的标准,更好地指导后续染色体交叉和变异的过程。参考图3,针对种群Sn的普通变异的具体步骤包括:
S301、针对染色体中每个基因对应的簇,根据簇内平均距离和簇内样本数,确定染色体中每个基因的基因质量。
其中,簇内样本数就是一个簇包含的数据的数量。计算一个簇的簇内平均距离的公式为:
其中,表示第j个簇内的第i个数据,mj表示第j个簇的质心,nj表示第j个簇的簇内样本数。
计算染色体中第j个基因的基因质量的公式为:
S302、对于染色体中基因质量小于质量阈值的任一基因,从任一基因对应的簇中选择一个新的数据,用新的数据替换染色体中的任一基因。
其中,质量阈值可根据经验设定,不作限定。基因质量越高,在变异过程中表现得越稳定,否则越容易进行变异,因此可删除染色体中质量低的基因,保留质量高的基因,对于删除的低质量的基因,可从这个簇中重新随机选择某个数据作为这个簇的质心,即替代染色体中被删除的基因。这样就可以在遗传过程中保留质量较高的基因,可启发式自动学习以获得最优的质心,避免初始质心的选择影响最终聚类效果。
进一步地,还可以设置交叉率(crossRate),以控制每次参与交叉变异的染色体数量。同样可配置变异率(mutateRate),以控制每次参与普通变异的染色体数量。
具体实施时,在对同一世代的染色体进行变异时,可选择交叉变异、普通变异和染色体长度变异中的一种或多种变异方式,对染色体进行变异。本申请对交叉变异、普通变异和染色体长度变异的执行顺序不作限定,可以同步执行多种变异方式,也可以顺序执行多中变异方式。
进一步地,在前几个世代中,可以先不进行普通变异,即仅进行交叉变异和染色体长度变异。当染色体长度(即K值)趋于稳定后,再增加普通变异。
如图4所示,基于与上述基于Kmeans聚类的数据分类方法相同的发明构思,本申请实施例还提供了一种基于Kmeans聚类的数据分类装置40,包括
初始化模块401,用于基于待分类数据获得初始化的种群S0,所述种群S0包括预设数量个染色体,每个染色体中的K个基因为从所述待分类数据中随机选取的K个数据,每个染色体对应的K等于为每个染色体随机确定的聚类数目;
遗传模块402,用于对种群Sn进行遗传变异操作和选择操作,以获得下一代种群Sn+1,其中,n的初始值为0,所述遗传变异操作包括交叉变异、普通变异和染色体长度变异中的至少一种;
聚类模块403,用于针对所述种群Sn+1中的每个染色体,以染色体中的K个基因为质心进行聚类操作以获得多个簇,基于每个簇的质心更新染色体中对应的基因,并基于所述多个簇确定染色体对应的适应度;
精英确定模块404,用于根据所述种群Sn+1中每个染色体对应的适应度,从所述种群Sn+1中选出精英染色体;
判断模块405,用于判断是否满足遗传算法终止条件,若是,则执行分类模块,否则n的值增加1并返回执行遗传模块;
分类模块406,用于基于从所述种群Sn+1中选出的精英染色体对所述待分类数据进行聚类操作,以获得所述待分类数据的分类结果。
可选地,所述染色体长度变异包括:
根据所述种群Sn的规模和染色体长度变异率,确定需要进行染色体长度变异的目标数量,其中,染色体长度等于染色体包含的基因数量;
根据所述种群Sn中的精英染色体对应的染色体长度,确定经过染色体长度变异后的目标长度;
从所述待分类数据中,重新获得所述目标数量个染色体,其中,重新获得的染色体的长度等于所述目标长度。
可选地,所述染色体长度变异率与遗传进化的世代数负相关。
可选地,所述普通变异包括:
针对染色体中每个基因对应的簇,根据簇内平均距离和簇内样本数,确定染色体中每个基因的基因质量;
对于染色体中基因质量小于质量阈值的任一基因,从所述任一基因对应的簇中选择一个新的数据,用所述新的数据替换染色体中的所述任一基因。
可选地,所述聚类模块403,具体用于:
基于染色体对应的多个簇,确定染色体对应的簇平均离散度、簇的个数和无效聚集数,其中,所述无效聚集数是指与最近邻簇之间的离散度小于预设阈值的簇的数量;
根据染色体对应的簇平均离散度、簇的个数和无效聚集数,确定染色体对应的适应度。
可选地,通过如下公式确定染色体对应的适应度f:
其中,DistBtnClusters表示平均簇间距离,DistInClusters表示平均簇内距离,表示簇平均离散度,I2表示簇的个数,I4表示无效聚集数。
可选地,通过如下方式获得所述无效聚集数:
针对通过聚类获得的任一簇,找出与所述任一簇距离最近的最近邻簇,确定所述任一簇的平均半径和所述最近邻簇的平均半径的半径之和,确定所述任一簇和所述最近邻簇的质心距离,根据所述质心距离和所述半径之和的比值确定所述任一簇和所述最近邻簇的离散度,若所述离散度小于预设阈值,则所述无效聚集数的数值增加1。
本申请实施例提的基于Kmeans聚类的数据分类装置与上述基于Kmeans聚类的数据分类方法采用了相同的发明构思,能够取得相同的有益效果,在此不再赘述。
基于与上述基于Kmeans聚类的数据分类方法相同的发明构思,本申请实施例还提供了一种电子设备,该电子设备具体(可以为智能设备内部的控制设备或控制系统,也可以是与智能设备通信的外部设备,如)可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、服务器等。如图5所示,该电子设备50可以包括处理器501和存储器502。
处理器501可以是通用处理器,例如中央处理器(CPU)、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器502作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random Access Memory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器502还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;上述计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于:移动存储设备、随机存取存储器(RAM,Random Access Memory)、磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NAND FLASH)、固态硬盘(SSD))等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、随机存取存储器(RAM,Random Access Memory)、磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NAND FLASH)、固态硬盘(SSD))等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (4)
1.一种基于Kmeans聚类的数据分类方法,其特征在于,包括:
步骤一、基于待分类数据获得初始化的种群S0,所述种群S0包括预设数量个染色体,每个染色体中的K个基因为从所述待分类数据中随机选取的K个数据,每个染色体对应的K等于为每个染色体随机确定的聚类数目;其中,所述待分类数据为文本数据、图像数据和音频数据中的任意一种数据;
步骤二、对种群Sn进行遗传变异操作和选择操作,以获得下一代种群Sn+1,其中,n的初始值为0,所述遗传变异操作包括交叉变异、普通变异和染色体长度变异中的至少一种;
步骤三、针对所述种群Sn+1中的每个染色体,以染色体中的K个基因为质心进行聚类操作以获得多个簇,基于每个簇的质心更新染色体中对应的基因,并基于所述多个簇确定染色体对应的适应度;
步骤四、根据所述种群Sn+1中每个染色体对应的适应度,从所述种群Sn+1中选出精英染色体;
步骤五、判断是否满足遗传算法终止条件,若是,则基于从所述种群Sn+1中选出的精英染色体对所述待分类数据进行聚类操作,以获得所述待分类数据的分类结果,否则n的值增加1并返回步骤二;
所述染色体长度变异包括:根据所述种群Sn的规模和染色体长度变异率,确定需要进行染色体长度变异的目标数量,其中,染色体长度等于染色体包含的基因数量;根据所述种群Sn中的精英染色体对应的染色体长度,确定经过染色体长度变异后的目标长度;从所述待分类数据中,重新获得所述目标数量个染色体,其中,重新获得的染色体的长度等于所述目标长度;所述染色体长度变异率与遗传进化的世代数负相关;
所述普通变异包括:针对染色体中每个基因对应的簇,根据簇内平均距离和簇内样本数,确定染色体中每个基因的基因质量;对于染色体中基因质量小于质量阈值的任一基因,从所述任一基因对应的簇中选择一个新的数据,用所述新的数据替换染色体中的所述任一基因;
所述基于所述多个簇确定染色体对应的适应度,包括:基于染色体对应的多个簇,确定染色体对应的簇平均离散度、簇的个数和无效聚集数,其中,所述无效聚集数是指与最近邻簇之间的离散度小于预设阈值的簇的数量;根据染色体对应的簇平均离散度、簇的个数和无效聚集数,确定染色体对应的适应度;
所述根据染色体对应的簇平均离散度、簇的个数和无效聚集数,确定染色体对应的适应度,包括:
通过如下公式确定染色体对应的适应度f:
其中,DistBtnClusters表示平均簇间距离,DistInClusters表示平均簇内距离,表示簇平均离散度,I 2表示簇的个数,I 4表示无效聚集数;
通过如下方式获得所述无效聚集数:针对通过聚类获得的任一簇,找出与所述任一簇距离最近的最近邻簇,确定所述任一簇的平均半径和所述最近邻簇的平均半径的半径之和,确定所述任一簇和所述最近邻簇的质心距离,根据所述质心距离和所述半径之和的比值确定所述任一簇和所述最近邻簇的离散度,若所述离散度小于预设阈值,则所述无效聚集数的数值增加1。
2.一种基于Kmeans聚类的数据分类装置,其特征在于,包括:
初始化模块,用于基于待分类数据获得初始化的种群S0,所述种群S0包括预设数量个染色体,每个染色体中的K个基因为从所述待分类数据中随机选取的K个数据,每个染色体对应的K等于为每个染色体随机确定的聚类数目;其中,所述待分类数据为文本数据、图像数据和音频数据中的任意一种数据;
遗传模块,用于对种群Sn进行遗传变异操作和选择操作,以获得下一代种群Sn+1,其中,n的初始值为0,所述遗传变异操作包括交叉变异、普通变异和染色体长度变异中的至少一种;
聚类模块,用于针对所述种群Sn+1中的每个染色体,以染色体中的K个基因为质心进行聚类操作以获得多个簇,基于每个簇的质心更新染色体中对应的基因,并基于所述多个簇确定染色体对应的适应度;
精英确定模块,用于根据所述种群Sn+1中每个染色体对应的适应度,从所述种群Sn+1中选出精英染色体;
判断模块,用于判断是否满足遗传算法终止条件,若是,则执行分类模块,否则n的值增加1并返回执行遗传模块;
分类模块,用于基于从所述种群Sn+1中选出的精英染色体对所述待分类数据进行聚类操作,以获得所述待分类数据的分类结果;
所述染色体长度变异包括:根据所述种群Sn的规模和染色体长度变异率,确定需要进行染色体长度变异的目标数量,其中,染色体长度等于染色体包含的基因数量;根据所述种群Sn中的精英染色体对应的染色体长度,确定经过染色体长度变异后的目标长度;从所述待分类数据中,重新获得所述目标数量个染色体,其中,重新获得的染色体的长度等于所述目标长度;所述染色体长度变异率与遗传进化的世代数负相关;
所述普通变异包括:针对染色体中每个基因对应的簇,根据簇内平均距离和簇内样本数,确定染色体中每个基因的基因质量;对于染色体中基因质量小于质量阈值的任一基因,从所述任一基因对应的簇中选择一个新的数据,用所述新的数据替换染色体中的所述任一基因;
所述聚类模块具体用于:基于染色体对应的多个簇,确定染色体对应的簇平均离散度、簇的个数和无效聚集数,其中,所述无效聚集数是指与最近邻簇之间的离散度小于预设阈值的簇的数量;根据染色体对应的簇平均离散度、簇的个数和无效聚集数,确定染色体对应的适应度;
通过如下公式确定染色体对应的适应度f:
其中,DistBtnClusters表示平均簇间距离,DistInClusters表示平均簇内距离,表示簇平均离散度,I 2表示簇的个数,I 4表示无效聚集数;
通过如下方式获得所述无效聚集数:针对通过聚类获得的任一簇,找出与所述任一簇距离最近的最近邻簇,确定所述任一簇的平均半径和所述最近邻簇的平均半径的半径之和,确定所述任一簇和所述最近邻簇的质心距离,根据所述质心距离和所述半径之和的比值确定所述任一簇和所述最近邻簇的离散度,若所述离散度小于预设阈值,则所述无效聚集数的数值增加1。
3.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1所述方法的步骤。
4.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,该计算机程序指令被处理器执行时实现权利要求1所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111080779.9A CN113869380B (zh) | 2021-09-15 | 2021-09-15 | 基于Kmeans聚类的数据分类方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111080779.9A CN113869380B (zh) | 2021-09-15 | 2021-09-15 | 基于Kmeans聚类的数据分类方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113869380A CN113869380A (zh) | 2021-12-31 |
CN113869380B true CN113869380B (zh) | 2024-05-14 |
Family
ID=78996027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111080779.9A Active CN113869380B (zh) | 2021-09-15 | 2021-09-15 | 基于Kmeans聚类的数据分类方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113869380B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101923712A (zh) * | 2010-08-03 | 2010-12-22 | 苏州大学 | 基于粒子群优化的K-means聚类算法的基因芯片图像分割法 |
CN110188785A (zh) * | 2019-03-28 | 2019-08-30 | 山东浪潮云信息技术有限公司 | 一种基于遗传算法的数据聚类分析方法 |
CN111970744A (zh) * | 2020-08-26 | 2020-11-20 | 吉林建筑科技学院 | 一种基于改进ap和遗传算法的能量感知分簇路由协议 |
CN112949859A (zh) * | 2021-04-16 | 2021-06-11 | 辽宁工程技术大学 | 一种改进的遗传聚类算法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11442978B2 (en) * | 2018-03-01 | 2022-09-13 | King Fahd University Of Petroleum And Minerals | Heuristic for the data clustering problem |
-
2021
- 2021-09-15 CN CN202111080779.9A patent/CN113869380B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101923712A (zh) * | 2010-08-03 | 2010-12-22 | 苏州大学 | 基于粒子群优化的K-means聚类算法的基因芯片图像分割法 |
CN110188785A (zh) * | 2019-03-28 | 2019-08-30 | 山东浪潮云信息技术有限公司 | 一种基于遗传算法的数据聚类分析方法 |
CN111970744A (zh) * | 2020-08-26 | 2020-11-20 | 吉林建筑科技学院 | 一种基于改进ap和遗传算法的能量感知分簇路由协议 |
CN112949859A (zh) * | 2021-04-16 | 2021-06-11 | 辽宁工程技术大学 | 一种改进的遗传聚类算法 |
Also Published As
Publication number | Publication date |
---|---|
CN113869380A (zh) | 2021-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8700548B2 (en) | Optimization technique using evolutionary algorithms | |
De Boer et al. | A tutorial on the cross-entropy method | |
Banka et al. | A Hamming distance based binary particle swarm optimization (HDBPSO) algorithm for high dimensional feature selection, classification and validation | |
CN113574325B (zh) | 通过选择控制设置来控制环境的方法和系统 | |
US7756799B2 (en) | Feature selection based on partial ordered set of classifiers | |
CN113282756B (zh) | 一种基于混合聚类的文本聚类智能评估方法 | |
CN112164426A (zh) | 基于TextCNN的药物小分子靶点活性预测方法和装置 | |
CN110991494A (zh) | 一种基于改进的飞蛾优化算法构建预测模型的方法 | |
CN109390032B (zh) | 一种基于进化算法在全基因组关联分析的数据中探索与疾病相关的snp组合的方法 | |
CN114580763A (zh) | 一种基于改进蜻蜓与轻量级梯度提升树模型的电力负荷预测方法 | |
CN110751257A (zh) | 一种基于饥饿游戏搜索算法构建预测模型的方法 | |
CN113869380B (zh) | 基于Kmeans聚类的数据分类方法、装置及电子设备 | |
CN110674860A (zh) | 基于邻域搜索策略的特征选择方法、存储介质和终端 | |
CN104809098A (zh) | 基于期望最大确定统计模型参数的方法和装置 | |
KR102025280B1 (ko) | 다중 레이블 패턴 분류를 위한 특징 선택 방법 및 그 장치 | |
JP6233432B2 (ja) | 混合モデルの選択方法及び装置 | |
CN115292303A (zh) | 数据处理方法及装置 | |
US20220284261A1 (en) | Training-support-based machine learning classification and regression augmentation | |
US20220172105A1 (en) | Efficient and scalable computation of global feature importance explanations | |
CN113128544B (zh) | 训练人工智能模型的方法和装置 | |
CN112784059A (zh) | 知识图谱表示学习方法、装置、电子设备及存储介质 | |
Badr et al. | A Hybrid Metaheuristic Approach for Automatic Clustering of Breast Cancer | |
CN113597305A (zh) | 使用因果模型制造生物药物 | |
CN112559859B (zh) | 资源推荐方法、装置、电子设备及机器可读存储介质 | |
CN111553071B (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 |