一种基于聚类和相似度加权的kNN快速分类方法与流程

文档序号:14120957阅读:549来源:国知局

本发明涉及数据处理技术领域,尤其涉及一种基于聚类和相似度加权的knn快速分类方法。



背景技术:

k最近邻(knn,k-nearestneighbor)分类方法是一种基于实例的学习方法,其基本思想是在训练样本中找到待分类样本的k个最近邻,然后根据这k个最近邻的类别来决定待分类样本的类别。knn方法是一种简单、有效、非参数的分类算法,并在分类问题中得到广泛使用。但knn分类在寻找最近邻样本的过程中,需要逐个计算待分类样本与每个训练样本的距离(或相似度),其时间复杂度与训练样本数量成正比,在大数据样本情况下效率很低;同时,knn分类过程没有考虑待分类样本与不同最近邻样本的距离大小,也忽略了最近邻样本与其他样本间的距离关系,影响了分类准确度。



技术实现要素:

为解决上述技术问题,本发明实施例提供了一种基于聚类和相似度加权的knn快速分类方法,以提高分类速度和分类准确度。

为解决上述技术问题,本发明实施例提供了如下技术方案:

一种基于聚类和相似度加权的knn快速分类方法,所述方法包括:

用聚类的方法分析训练样本,生成识别样本集;

基于所述识别样本集,并基于相似度加权完成待分类样本最近邻分类。

其中,所述用聚类的方法分析训练样本,生成识别样本集,具体包括:

按照一定压缩比计算所得的聚类数,分别对每类训练样本进行聚类分析;将每类训练样本划分成若干个子类,以子类内所有训练样本的质心作为代表该子类的识别样本,并以识别样本与所代表的子类内所有训练样本的距离的算数平均值作为该识别样本的识别半径,并假定识别样本与所代表子类内所有训练样本的距离满足高斯分布,计算得到其分布的期望值和标准差,用识别半径、期望值和标准差表征该识别样本的识别特性,然后把包含且仅包含所有识别样本的集合定义为识别样本集。

其中,所述基于所述识别样本集,并基于相似度加权完成待分类样本最近邻分类,具体包括:

计算待分类样本与所有识别样本的距离,根据距离计算结果从识别样本集中选取待分类样本的k个最近邻识别样本;根据k个最近邻识别样本的识别特性和待分类样本与k个最近邻识别样本的距离,分别计算待分类样本与k个最近邻识别样本的相似度;根据待分类样本与k个最近邻识别样本的相似度及其类别,判定待分类样本归属可能性最大的类别,完成分类。

与现有技术相比,上述技术方案具有以下优点:

本发明实施例所提供方法,通过聚类技术分析训练样本,产生数目较少的识别样本替代训练样本进行分类,大大减少了knn分类时的计算次数,提高了knn分类速度。同时,在分类过程中,根据最近邻识别样本的识别特性和待分类样本与最近邻识别样本的距离,计算待分类样本与最近邻识别样本的相似度,并根据相似度及最近邻识别样本的类别实现分类,使得knn分类方法具有很高的分类准确度。

本发明是一种基于聚类和相似度加权的knn快速分类方法,基于聚类分析训练样本,产生数目较少的识别样本替代原训练样本进行分类,提高了knn分类速度;在分类过程中,综合考虑最近邻识别样本的识别特性和待分类样本与最近邻识别样本的距离差异对分类的影响,提高了分类的准确度。

附图说明

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

图1为本发明实施例所提供的一种基于聚类和相似度加权的knn快速分类方法的流程示意图。

具体实施方式

为了解决背景技术部分所述的技术问题,本发明提供了一种基于聚类和相似度加权的knn快速分类方法,基于聚类分析训练样本,产生数目较少的识别样本替代原训练样本进行分类,提高了knn分类速度;在分类过程中,综合考虑最近邻识别样本的识别特性和待分类样本与最近邻识别样本的距离差异对分类的影响,提高了分类的准确度。

首先,对说明书中出现的符号进行解释,各符号为:x为训练样本集,m为训练样本总个数,c所有类别的集合,μ为压缩比,r为识别样本集,yi为识别样本,ri为yi的识别半径,mui为yi的期望值,sigmai为yi的标准差,ci为yi对应的类别,n为识别样本的总个数,xs为待分类样本,φ为待分类样本xs的k个最近邻识别样本,为第j个最近邻识别样本,为第j个最近邻识别样本的识别半径,为第j个最近邻识别样本对应的期望值,为第j个最近邻识别样本对应的标准差,为第j个最近邻识别样本对应的类别,j为最近邻识别样本的序号,为待分类样本与近邻识别样本的相似度,为分类样本xs与近邻识别样本的距离,cs为待分类样本xs的类别。

下面具体介绍本发明提供的一种基于聚类和相似度加权的knn快速分类方法。

图1是本发明实施例提供的一种基于聚类和相似度加权的knn快速分类方法对应的流程示意图,所述方法包括:

用聚类的方法分析训练样本,生成识别样本集;

然后基于所述识别样本集,并基于相似度加权完成待分类样本最近邻分类。

可见,本发明实施例所提供方法,通过聚类技术分析训练样本,产生数目较少的识别样本替代训练样本进行分类,大大减少了knn分类时的计算次数,提高了knn分类速度。同时,在分类过程中,根据最近邻识别样本的识别特性和待分类样本与最近邻识别样本的距离,计算待分类样本与最近邻识别样本的相似度,并根据相似度及最近邻识别样本的类别实现分类,使得knn分类方法具有很高的分类准确度。

其中,所述用聚类的方法分析训练样本,生成识别样本集,具体包括:

按照一定压缩比计算所得的聚类数,分别对每类训练样本进行聚类分析,将每类训练样本划分成若干个子类(子簇),以子类内所有训练样本的质心(训练样本值的算数平均值)作为代表该子类的识别样本,并以识别样本与所代表的子类内所有训练样本的距离的算数平均值作为该识别样本的识别半径,并假定识别样本与所代表子类内所有训练样本的距离满足高斯分布,计算得到其分布的期望值和标准差,用识别半径、期望值和标准差表征该识别样本的识别特性。然后把包含且仅包含所有识别样本的集合定义为识别样本集。

可见,本发明实施例所提供方法,通过聚类技术分析训练样本,产生数目较少的识别样本替代训练样本进行分类,大大减少了knn分类时的计算次数,提高了knn分类速度。

其中,所述基于所述识别样本集,并基于相似度加权完成待分类样本最近邻分类,具体包括:

计算待分类样本与所有识别样本的距离,根据距离计算结果从识别样本集中选取待分类样本的k个最近邻识别样本;然后根据k个最近邻识别样本的识别特性和待分类样本与k个最近邻识别样本的距离,分别计算待分类样本与k个最近邻识别样本的相似度;最后,根据待分类样本与k个最近邻识别样本的相似度及其类别,判定待分类样本归属可能性最大的类别,完成分类。

可见,本发明实施例所提供方法,在分类过程中,综合考虑最近邻识别样本的识别特性和待分类样本与最近邻识别样本的距离差异对分类的影响,提高了分类的准确度。即,根据最近邻识别样本的识别特性和待分类样本与最近邻识别样本的距离,计算待分类样本与最近邻识别样本的相似度,并根据相似度及最近邻识别样本的类别实现分类,使得knn分类方法具有很高的分类准确度。

下面举例介绍基于聚类和相似度加权的knn快速分类方法,具体如下:

步骤1:x={(xi,ci)|i=1,…,m}为训练样本集,每个训练样本xi都是一个p维向量,ci为xi所属的类别,c={cl|l=1,…,t}表示所有类别组成的集合,共有t类,m为训练样本总个数,cl类训练样本个数是ml,l=1,…,t,有

步骤2:根据训练样本特征和分类速度需求,设定各类训练样本压缩比μl,l=1,…,t,其中μl≥1,压缩比定义为训练样本数与聚类数的比值。设定压缩比的3个依据是:1)类内训练样本相似度越高、冗余样本越多则压缩比设置越高。2)训练样本数越大则压缩比设置越高。3)分类速度要求越快则压缩比设置越高。一般情况下压缩比取值范围μl∈[10,50],各类训练样本压缩比取值保持一致。

步骤3:根据各类压缩比计算各类训练样本的聚类数,cl类训练样本聚类数是nl,l=1,…,t,其计算方法是:

其中,ml,l=1,…,t为cl类训练样本个数,[·]是取整运算。

步骤4:聚类分析cl类训练样本,聚类算法可选择如层次聚类、dbscan、k-means聚类算法,将cl类训练样本聚类划分成nl个子类(子簇),以子类内所有训练样本的质心(训练样本值的算术平均值)作为代表该子类的识别样本yi,识别样本的类别为所代表子类内训练样本的类别ci,并以识别样本与所代表的子类内所有训练样本的距离的算术平均值作为该识别样本的识别半径ri,将识别样本与所代表的子类内所有训练样本之间的距离值经高斯分布拟合,计算其期望值mui和标准差sigmai。

其中,所述识别半径的计算方法是:

其中,yi为第i个识别样本,ri为第i个识别样本yi的识别半径,xij为第i个识别样本yi所代表的子类内第j个训练样本,k为识别样本yi所代表的子类内训练样本的总个数。

特殊情况下,若识别样本所代表的子类内仅有一个训练样本,则识别样本即为该训练样本,其识别半径取值为该识别样本与其最邻近训练样本的距离的一半。

步骤5:重复执行步骤4,直到完成所有类别训练样本的聚类分析。收集所有识别样本生成识别样本集,记为r={(yi,ri,mui,sigmai,ci)|i=1,…,n},其中n为所有识别样本的个数,每个识别样本yi都是一个p维向量,ri为yi的识别半径,mui为yi对应的期望值,sigmai为yi对应的标准差,ci为yi对应的类别,c={cl|l=1,…,t}表示所有类别组成的集合,共t类。

步骤6:计算选定最近邻识别样本。输入待分类样本xs,计算xs与识别样本集中每个识别样本yi(i=1,…,n)的距离(如欧氏距离或马氏距离),记为然后求取值,并对其升序排序,依次选取出前k个计算结果,将其对应的识别样本作为最近邻识别样本,并记为其中j表示最近邻识别样本的序号,为第j个最近邻识别样本,的识别半径,对应的期望值,对应的标准差,对应的类别。

步骤7:判定待分类样本的类别。

如果满足则将所有满足此条件的最近邻识别样本记为则根据式(1)判定待分类样本xs的类别cs,完成分类。

其中,如果α=β那么δ(α,β)=1,否则δ(α,β)=0

否则计算待分类样本xs与最近邻识别样本的相似度其计算公式为:

根据式(3)判定待分类样本xs的类别cs:

其中,如果α=β那么δ(α,β)=1,否则δ(α,β)=0。

可见,本发明实施例所提供方法,通过聚类技术分析训练样本,产生数目较少的识别样本替代训练样本进行分类,大大减少了knn分类时的计算次数,提高了knn分类速度。同时,在分类过程中,根据最近邻识别样本的识别特性和待分类样本与最近邻识别样本的距离,计算待分类样本与最近邻识别样本的相似度,并根据相似度及最近邻识别样本的类别实现分类,使得knn分类方法具有很高的分类准确度。

本说明书中各个部分采用递进的方式描述,每个部分重点说明的都是与其他部分的不同之处,各个部分之间相同相似部分互相参见即可。

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

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