一种基于参考点的快速精确近邻分类算法.pdf

上传人:小** 文档编号:6022359 上传时间:2019-04-03 格式:PDF 页数:7 大小:471.91KB
返回 下载 相关 举报
摘要
申请专利号:

CN201611173890.1

申请日:

2016.12.16

公开号:

CN106778869A

公开日:

2017.05.31

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06K 9/62申请日:20161216|||公开

IPC分类号:

G06K9/62

主分类号:

G06K9/62

申请人:

重庆邮电大学

发明人:

夏书银

地址:

400065 重庆市南岸区黄桷垭崇文路2号

优先权:

专利代理机构:

北京同恒源知识产权代理有限公司 11275

代理人:

廖曦

PDF下载: PDF下载
内容摘要

本发明涉及一种基于参考点的快速精确近邻分类算法,属于计算机技术领域。该算法用参考点的距离来替代样本点之间的距离的进行直接计算,找到了比最近邻样本更加适合分类的样本点,以提高算法的分类精度。本RPkN算法通过选择参考点和子序列长度来选择用于分类的近邻样本,而现有的k近邻算法总是查找最近邻样本来用于分类。RPkN通过计算样本点的RPF值避免了样本间距离的直接计算,将算法的时间复杂度降低到了(O(nlogn)),这种时间复杂度的降低不依赖任何维度的树结构,所以相比现有的精确的依赖树索引的k最近邻分类算法,其能够更好的适应高维数据集。

权利要求书

1.一种基于参考点的快速精确近邻分类算法,其特征在于:该算法用参考点的距离来
替代样本点之间的距离的进行直接计算,找到了比最近邻样本更加适合分类的样本点,以
提高算法的分类精度,算法给定数据集D∈Rd,k是近邻算法中要搜索的近邻数,A是D中的一
个样本点,ε为关系近邻搜索算法时间复杂度的常量;表示候选参考点设置为单位向量及其
反向量,定义变量ExistingNeighbors=NULL,j=1,具体步骤包括:
1)设置子序列的长度为2j*k*ε,并选择第i个候选参考点为当前的参考点;
2)计算所有样本点的参考点因子值,即RPF值,并对所有样本点按照其RPF值进行排序
并生成一个有序序列;
3)在由ExistingNeighbors和以A为中心且长度为2j*k*ε的子序列构成的集合中,找到
与到A最近的k的样本点;
4)计算所有样本点的近邻样本及整个数据集的分类精度;
5)i=i+1,将第i个候选参考点设置为下一个参考点;并计算加入新参考点后的分类精
度;
6)如果所有候选参考点被加入且精度增加,用所有样本的k近邻样本替代
ExistingNeighbors,转向步骤7);如果还有候选参考点未被加入且精度增加,用所有样本
的k近邻样本替代ExistingNeighbors,转向步骤5);
7)如果子序列长度增加后算法的分类精度降低,算法终止;否则,转向步骤8);
8)通过j=j+1将子序列的长度增加1并转向步骤1)。
2.如权利要求1所述的一种基于参考点的近邻搜索算法,其特征在于:所述ε的设置方
法为:ε作为常量,本算法的时间复杂度为O(dn)~O(dnlog2n),ε值越大,算法步骤3)中的子
序列将会包含越多的样本点;如果ε很小,算法中参数j的迭代次数将会增加;但是如果ε很
大,将可能会增加算法的时间复杂度;因此,ε应该在保证算法的时间复杂度控制在O
(nlogn)的情况下设置得越大越好;
在本算法中,ε被设置为关于n的对数函数logmn时,算法中子序列的长度为2*n*k*logmn

所以ε被设置为logmn时,本算法的时间复杂度和快速排序是相同的,即为nlog2n,为了
将ε设置的尽量大,m取值为2。

说明书

一种基于参考点的快速精确近邻分类算法

技术领域

本发明属于计算机技术领域,涉及一种基于参考点的快速精确近邻分类算法。

背景技术

k近邻分类算法(k Nearest Neighbors’Algorithm,kNN)是机器学习领域最为经
典和常用的分类算法之一。当前,该算法已经广泛应用于特征选择,模式识别,聚类,噪音检
测分类等诸多领域。最基本的全搜索k近邻算法(Full Searching algorithm,FSA)算法是
通过计算待分类点到各已知类别点的欧式距离以确定k个最近邻点,因此其时间复杂度较
高(O(n2)),算法效率很低。另外,现有的k近邻算法在不平衡数据集中的分类精度无法保
证。现有的改进的近邻算法主要在于提高k近邻算法的效率,这些算法大体可以分为两类:
第一类,创建搜索树以降低时间复杂度。比如,Kim和Park使用有序分拆方法来创建一个多
分支搜索树以提高搜索效率;Wang和Gan将投射聚类和主轴搜索树算法相结合以减少运算
时间。Chen等使用赢家更新搜索方法和下界树来改善算法效率。以上改进算法的不足之处
在于,随着数据维数增加,其时间复杂度急剧变坏,且失去稳定性,所以算法的时间复杂度
在(O(nlogn)~O(n2))。第二类,近似k最近邻算法。该类算法通过搜索近似的k最近邻样本
代替精确的最近邻样本,来避免所有样本之间距离的直接计算,以提高搜索效率。譬如,Ra
和Kim通过计算待分类点到各已知类别点的平均值的差异来除去不可能数据点;Lai使用三
角不等式和投影值以降低计算复杂度;Xia在研究数据维度对最近邻搜索算法影响后提出
了LDMDBA算法;还有一些算法通过聚类来提高算法效率。这些算法虽然在效率上得到了提
升,但是都在不同程度上牺牲了算法的精度,要低于精确最近邻算法(即FSA或是其他基于
树索引结构的算法)。总结来说,两类算法无法在保证算法精度的情况下,将算法在包括高
维数据集上的各种数据上的时间复杂度降低到O(nlogn)。另外,这些改进算法都无法解决k
近邻算法在不平衡数据集上精度下降的问题。

发明内容

有鉴于此,本发明的目的在于提供一种新的分类算法,即一种基于参考点的快速
精确近邻分类算法(RPkN)。该近邻搜索算法与现有k近邻算法不同的是,其不再搜索最近邻
样本用来分类,而是对分类问题更有效的样本。该特性使RPkN能突破现有的最近邻分类算
法在处理不平衡数据低精度的局限性,使得RPkN具有更好的分类预测精度。另外,相比现有
基于树的精确最近邻算法,RPkN算法不依赖任何树索引结构,所以能够更高效地处理高维
数据,该算法的时间复杂度在任何数据集中可以保证在O(nlogn)。另外,RPkN仍然保留了现
有最近邻查询算法的优势:在线、多分类、不依赖训练等。

为达到上述目的,本发明提供如下技术方案:

一种基于参考点的快速精确近邻分类算法,该算法用参考点的距离来替代样本点
之间的距离的进行直接计算,找到了比最近邻样本更加适合分类的样本点,以提高算法的
分类精度,算法给定数据集D∈Rd,k是近邻算法中要搜索的近邻数,A是D中的一个样本点,ε
为关系近邻搜索算法时间复杂度的常量;表示候选参考点设置为单位向量及其反向量,定
义变量ExistingNeighbors=NULL,j=1,具体步骤包括:

1)设置子序列的长度为2j*k*ε,并选择第i个候选参考点为当前的参考点;

2)计算所有样本点的参考点因子值,即RPF值,并对所有样本点按照其RPF值进行
排序并生成一个有序序列;

3)在由ExistingNeighbors和以A为中心且长度为2j*k*ε的子序列构成的集合中,
找到与到A最近的k的样本点;

4)计算所有样本点的近邻样本及整个数据集的分类精度;

5)i=i+1,将第i个候选参考点设置为下一个参考点;并计算加入新参考点后的分
类精度;

6)如果所有候选参考点被加入且精度增加,用所有样本的k近邻样本替代
ExistingNeighbors,转向步骤7);如果还有候选参考点未被加入且精度增加,用所有样本
的k近邻样本替代ExistingNeighbors,转向步骤5);

7)如果子序列长度增加后算法的分类精度降低,算法终止;否则,转向步骤8);

8)通过j=j+1将子序列的长度增加1并转向步骤1)。

进一步的,所述ε的设置方法为:ε作为常量,本算法的时间复杂度为O(dn)~O
(dnlog2n),ε值越大,算法步骤3)中的子序列将会包含越多的样本点;如果ε很小,算法中参
数j的迭代次数将会增加;但是如果ε很大,将可能会增加算法的时间复杂度;因此,ε应该在
保证算法的时间复杂度控制在O(nlogn)的情况下设置得越大越好;

在本算法中,ε被设置为关于n的对数函数logmn时,算法中子序列的长度为2*n*k*
logmn


所以ε被设置为logmn时,本算法的时间复杂度和快速排序是相同的,即为nlog2n,
为了将ε设置的尽量大,m取值为2。

本发明的有益效果在于:本发明基于参考点的近邻分类算法—RPkN构思合理,本
RPkN算法通过选择参考点和子序列长度来选择用于分类的近邻样本,而现有的k近邻算法
总是查找最近邻样本来用于分类。与现有的k近邻算法相比,由于RPkN能够更好地考虑到数
据的整体分布特征,所以RPkN能够更好地解决不平衡数据集分类的问题,获得比其他k近邻
算法更好的精度。另外,RPkN通过计算样本点的RPF值避免了样本间距离的直接计算,将算
法的时间复杂度降低到了(O(nlogn)),这种时间复杂度的降低不依赖任何维度的树结构,
所以相比现有的精确的依赖树索引的k最近邻分类算法,其能够更好的适应高维数据集。在
公开数据集和人工数据集上的分类结果中,其精度提升的效果非常显著,在部分数据集上
的算法精度提高了9%。另外,算法的效率也明显好于FSA,在高维数据上的算法效率也好于
基于树结构的算法。

具体实施方式

下面将结合图表,对本发明的优选实施例进行详细的描述。

一种基于参考点的快速精确近邻分类算法,该算法用参考点的距离来替代样本点
之间的距离的进行直接计算,找到了比最近邻样本更加适合分类的样本点,以提高算法的
分类精度,算法给定数据集D∈Rd,k是近邻算法中要搜索的近邻数,A是D中的一个样本点,ε
为关系近邻搜索算法时间复杂度的常量;表示候选参考点设置为单位向量及其反向量,定
义变量ExistingNeighbors=NULL,j=1,具体步骤包括:

1)设置子序列的长度为2j*k*ε,并选择第i个候选参考点为当前的参考点;

2)计算所有样本点的参考点因子值,即RPF值,并对所有样本点按照其RPF值进行
排序并生成一个有序序列;

3)在由ExistingNeighbors和以A为中心且长度为2j*k*ε的子序列构成的集合中,
找到与到A最近的k的样本点;

4)计算所有样本点的近邻样本及整个数据集的分类精度;

5)i=i+1,将第i个候选参考点设置为下一个参考点;并计算加入新参考点后的分
类精度;

6)如果所有候选参考点被加入且精度增加,用所有样本的k近邻样本替代
ExistingNeighbors,转向步骤7);如果还有候选参考点未被加入且精度增加,用所有样本
的k近邻样本替代ExistingNeighbors,转向步骤5);

7)如果子序列长度增加后算法的分类精度降低,算法终止;否则,转向步骤8);

8)通过j=j+1将子序列的长度增加1并转向步骤1)。

进一步的,所述ε的设置方法为:ε作为常量,本算法的时间复杂度为O(dn)~O
(dnlog2n),ε值越大,算法步骤3)中的子序列将会包含越多的样本点;如果ε很小,算法中参
数j的迭代次数将会增加;但是如果ε很大,将可能会增加算法的时间复杂度;因此,ε应该在
保证算法的时间复杂度控制在O(nlogn)的情况下设置得越大越好;

在本算法中,ε被设置为关于n的对数函数logmn时,算法中子序列的长度为2*n*k*
logmn


所以ε被设置为logmn时,本算法的时间复杂度和快速排序是相同的,即为nlog2n,
为了将ε设置的尽量大,m取值为2。

本RPkN算法不同于现有最近邻分类算法之处首先在于本算法步骤的第6个步骤,
只有能够提高分类精度的近邻才会被加入到变量ExistingNeighbors中,才可能成为样本
的最终近邻。现有的最近邻算法只是单纯的查找被查询样本的k个最近邻样本。该特征使得
RPkN算法具有比现有k最近邻算法更好的精度。另外,由于使用参考点距离代替样本间距离
的计算,使得本算法在不需要依赖树索引结构的情况下,将算法的时间复杂度降低到了O
(nlogn)。

下面从算法的有效性和算法的效率两方面进行分析验证。

一、算法的有效性验证

本发明在表1中的十个公开标准数据集上进行有效性验证,将提出的算法在精度
上与精确k近邻算法进行比较。由于没有使用随机算法,所以所有的实验结果都是可以再现
的。仿真实验环境:Intel I5-3470处理器、8GB内存、windows7操作系统、matlab2014。在表1
中的数据集分别是Breast cancer,Diabetes,Fourclass,Svmguide1,Svmguide3and Cod-
RNA。由于在KNN算法中并不需要训练过程,在试验中并没有使用交叉验证。

表1实验数据表



算法精度的比较结果表现在表2至表3中。由于在相对较大的数据集上的运行很耗
费时间,所以将k值从1变化到15时在相对较大数据集上的最好精度和相应的运行时间列在
表4中。各个算法上的最高精度用黑体字表示。由于FSA与其他基于树索引结构的精确近邻
算法具有相同的精度(高于近邻算法),所以FSA被选为RPkN的比较算法。

由于RPkN具有比kNNs在不平衡数据集中更加有效,所以RPkN在大多数数据集中相
比FSA具有更好的精度。在所示的十个数据集中,除了Four-class和Ijcnn1,RPkN的精度都
要好于FSA。在数据集Four-class中,两种算法具有相同的精度。在数据集IJCNN1中,RPkN的
算法精度要略小于FSA,为0.3%。在其他9个数据中,RPkN的平均精度明显要好于FSA。优势
最明显的是在数据集Cod—RNA中,为9.2%,其中RPkN的精度为94.3%,FSA的为85.1%。实
验结果充分说明了本文提出的RPkN算法的有效性。

表2 FSA的算法精度(%)


表3 RPKN的算法精度(%)


表4在大数据集上的执行时间和算法精度



2、算法效率分析

执行时间的对比结果显示在表4到表6中。对于较小的数据集,如表5到6所示,除了
在数据集Four-class上RPkN的时间基本要高于FSA。尤其在高维的小数据集上(如Sonar和
splice),RPkN相比FSA要更耗时间。其原因主要在于RPkN算法中参与运算的参考点数据与
数据的维度是正相关的。高的维度会使得更多的参考点参与运算,并增加运算时间。但是
RPkN算法的时间复杂度只有O(nlogn)。所以,正如表6所示,RPkN的执行时间在相对较大的
数据集上要远小于FSA.实验结果说明了本文提出的RPkN算法的高效性。

表5 FSA的执行时间(MS)


表6 RPKN的执行时间(MS)


最后说明的是,以上优选实施例仅用以说明本发明的技术方案而非限制,尽管通
过上述优选实施例已经对本发明进行了详细的描述,但本领域技术人员应当理解,可以在
形式上和细节上对其作出各种各样的改变,而不偏离本发明权利要求书所限定的范围。

一种基于参考点的快速精确近邻分类算法.pdf_第1页
第1页 / 共7页
一种基于参考点的快速精确近邻分类算法.pdf_第2页
第2页 / 共7页
一种基于参考点的快速精确近邻分类算法.pdf_第3页
第3页 / 共7页
点击查看更多>>
资源描述

《一种基于参考点的快速精确近邻分类算法.pdf》由会员分享,可在线阅读,更多相关《一种基于参考点的快速精确近邻分类算法.pdf(7页珍藏版)》请在专利查询网上搜索。

本发明涉及一种基于参考点的快速精确近邻分类算法,属于计算机技术领域。该算法用参考点的距离来替代样本点之间的距离的进行直接计算,找到了比最近邻样本更加适合分类的样本点,以提高算法的分类精度。本RPkN算法通过选择参考点和子序列长度来选择用于分类的近邻样本,而现有的k近邻算法总是查找最近邻样本来用于分类。RPkN通过计算样本点的RPF值避免了样本间距离的直接计算,将算法的时间复杂度降低到了(O(nlo。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1