CN106778869A - 一种基于参考点的快速精确近邻分类算法 - Google Patents
一种基于参考点的快速精确近邻分类算法 Download PDFInfo
- Publication number
- CN106778869A CN106778869A CN201611173890.1A CN201611173890A CN106778869A CN 106778869 A CN106778869 A CN 106778869A CN 201611173890 A CN201611173890 A CN 201611173890A CN 106778869 A CN106778869 A CN 106778869A
- Authority
- CN
- China
- Prior art keywords
- algorithm
- reference point
- sample
- nearest
- point
- 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.)
- Pending
Links
Classifications
-
- 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
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
- G06F18/24133—Distances to prototypes
- G06F18/24143—Distances to neighbourhood prototypes, e.g. restricted Coulomb energy networks [RCEN]
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)
Abstract
本发明涉及一种基于参考点的快速精确近邻分类算法,属于计算机技术领域。该算法用参考点的距离来替代样本点之间的距离的进行直接计算,找到了比最近邻样本更加适合分类的样本点,以提高算法的分类精度。本RPkN算法通过选择参考点和子序列长度来选择用于分类的近邻样本,而现有的k近邻算法总是查找最近邻样本来用于分类。RPkN通过计算样本点的RPF值避免了样本间距离的直接计算,将算法的时间复杂度降低到了(O(nlogn)),这种时间复杂度的降低不依赖任何维度的树结构,所以相比现有的精确的依赖树索引的k最近邻分类算法,其能够更好的适应高维数据集。
Description
技术领域
本发明属于计算机技术领域,涉及一种基于参考点的快速精确近邻分类算法。
背景技术
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)
最后说明的是,以上优选实施例仅用以说明本发明的技术方案而非限制,尽管通过上述优选实施例已经对本发明进行了详细的描述,但本领域技术人员应当理解,可以在形式上和细节上对其作出各种各样的改变,而不偏离本发明权利要求书所限定的范围。
Claims (2)
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。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611173890.1A CN106778869A (zh) | 2016-12-16 | 2016-12-16 | 一种基于参考点的快速精确近邻分类算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611173890.1A CN106778869A (zh) | 2016-12-16 | 2016-12-16 | 一种基于参考点的快速精确近邻分类算法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106778869A true CN106778869A (zh) | 2017-05-31 |
Family
ID=58889764
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611173890.1A Pending CN106778869A (zh) | 2016-12-16 | 2016-12-16 | 一种基于参考点的快速精确近邻分类算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106778869A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108251A (zh) * | 2017-11-30 | 2018-06-01 | 重庆邮电大学 | 一种基于MPI并行化的参考点k近邻分类方法 |
CN110456308A (zh) * | 2019-07-08 | 2019-11-15 | 广西工业职业技术学院 | 一种三维空间定位快速搜索方法 |
CN110796193A (zh) * | 2019-10-29 | 2020-02-14 | 南京宁麒智能计算芯片研究院有限公司 | 一种基于可重构方式的knn算法的硬件实现系统和方法 |
CN113378995A (zh) * | 2021-07-09 | 2021-09-10 | 中山大学 | 基于iDistance算法的不确定数据序列K近邻方法及系统 |
CN117077022A (zh) * | 2023-10-16 | 2023-11-17 | 深圳市捷鑫华科技有限公司 | 3d打印机送丝机构流量监测方法 |
-
2016
- 2016-12-16 CN CN201611173890.1A patent/CN106778869A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108251A (zh) * | 2017-11-30 | 2018-06-01 | 重庆邮电大学 | 一种基于MPI并行化的参考点k近邻分类方法 |
CN108108251B (zh) * | 2017-11-30 | 2021-07-20 | 重庆邮电大学 | 一种基于MPI并行化的参考点k近邻分类方法 |
CN110456308A (zh) * | 2019-07-08 | 2019-11-15 | 广西工业职业技术学院 | 一种三维空间定位快速搜索方法 |
CN110796193A (zh) * | 2019-10-29 | 2020-02-14 | 南京宁麒智能计算芯片研究院有限公司 | 一种基于可重构方式的knn算法的硬件实现系统和方法 |
CN113378995A (zh) * | 2021-07-09 | 2021-09-10 | 中山大学 | 基于iDistance算法的不确定数据序列K近邻方法及系统 |
CN113378995B (zh) * | 2021-07-09 | 2024-03-12 | 中山大学 | 基于iDistance算法的不确定数据序列K近邻方法及系统 |
CN117077022A (zh) * | 2023-10-16 | 2023-11-17 | 深圳市捷鑫华科技有限公司 | 3d打印机送丝机构流量监测方法 |
CN117077022B (zh) * | 2023-10-16 | 2024-01-30 | 深圳市捷鑫华科技有限公司 | 3d打印机送丝机构流量监测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106778869A (zh) | 一种基于参考点的快速精确近邻分类算法 | |
Chen et al. | KNN-BLOCK DBSCAN: Fast clustering for large-scale data | |
CN106557485B (zh) | 一种选取文本分类训练集的方法及装置 | |
CN106570178B (zh) | 一种基于图聚类的高维文本数据特征选择方法 | |
Van Laarhoven et al. | Local network community detection with continuous optimization of conductance and weighted kernel k-means | |
CN107832456B (zh) | 一种基于临界值数据划分的并行knn文本分类方法 | |
CN109409400A (zh) | 基于k近邻和多类合并密度峰值聚类方法、图像分割系统 | |
CN102346829A (zh) | 基于集成分类的病毒检测方法 | |
CN109271427A (zh) | 一种基于近邻密度和流形距离的聚类方法 | |
CN113344019A (zh) | 一种决策值选取初始聚类中心改进的K-means算法 | |
CN109657712A (zh) | 一种基于Spark改进的K-Means算法的电商餐饮数据分析方法 | |
CN103336801A (zh) | 基于多特征lsh索引组合的遥感图像检索方法 | |
CN108280236A (zh) | 一种基于LargeVis的随机森林可视化数据分析方法 | |
CN112800115B (zh) | 数据处理方法及数据处理装置 | |
CN111079788A (zh) | 一种基于密度Canopy的K-means聚类方法 | |
CN107886135A (zh) | 一种处理不平衡大数据的并行随机森林算法 | |
Duan et al. | An improved initialization center k-means clustering algorithm based on distance and density | |
CN115358308A (zh) | 一种大数据实例约简方法、装置、电子设备及存储介质 | |
CN106557780A (zh) | 一种基于位置差异的高精度近邻搜索算法 | |
CN110010204A (zh) | 基于融合网络和多打分策略的预后生物标志物识别方法 | |
Wang et al. | A neighborhood-based three-stage hierarchical clustering algorithm | |
CN105760478A (zh) | 一种基于机器学习的大规模分布式的数据聚类方法 | |
CN116028873A (zh) | 一种基于支持向量机的多类服务器故障预测方法 | |
CN115687352A (zh) | 一种存储的方法及装置 | |
CN108268620A (zh) | 一种基于hadoop数据挖掘的文档分类方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170531 |
|
RJ01 | Rejection of invention patent application after publication |