一种针对K-NN算法临近点查找的优化方法及装置制造方法及图纸

技术编号:27601643 阅读:17 留言:0更新日期:2021-03-10 10:24
本发明专利技术提供一种针对K

【技术实现步骤摘要】
一种针对K-NN算法临近点查找的优化方法及装置


[0001]本专利技术属于数据分类统计处理
,具体涉及一种针对K-NN算法临近点查找的优化方法及装置。

技术介绍

[0002]随着大数据的广泛应用以及机器学习技术的迅速发展,对数据的分类统计处理效率要求也越来越高,在此背景下,K-NN归类算法因其精度高、对异常值不敏感、无数据输入假定等优点被各个领域广泛应用。应用K-NN算法的主要目的是对一个基准值进行归类预测,例如,目前共有n个数据分为Ⅰ,Ⅱ两类,要对基准值A进行归类,此时便可应用该算法对数据进行处理。具体归类思想如下:找出K(K<<n)个与基准值A临近的点(以下简称临近点),在这K个值中,Ⅰ,Ⅱ哪类数据占比较大,即将A归为哪类。相当于一个通过周围大多数的数值特性来预测某个基准值特性的算法。但该算法在实现时具有一定缺陷。目前这一过程的实现需要计算出当前所有点与基准值A的距离并存储在一个数组D[]n
内,通过排序的方式选举出K个最小值确定为临近点,再通过比较临近点中属于哪一类的数据多来推断出A值的属性,这就相当于需要对所有计算出的距离进行存储以及排序,当数据量稍大时,会占用大量内存和时间去进行数据存储及排序,这也是该算法计算复杂度高、空间复杂度高的显著缺点。
[0003]例如需要对基准值A进行分类,数据中除A外还有n个值,需要首先确定K(K<<n)值,之后创建长度为n的数组distance[]n
,分别计算当前除了需要判断的基准值A外其余n个点到A点的距离(dis1-disn)并插入数组,之后对distance[dis1,dis2,

,dis
n
]数组进行排序,选出K个最小值,最后对K个最小值进行分析,K个临近值中占多数的类型即判断为A的类型。
[0004]现有方法的缺陷是需要将n个值与A的距离都存在数组中再进行比较并排序,首先,对长度为n的数组进行排序时,平均时间复杂度达到O(nlog2n),需要处理排序的数据较多。另一方面,在数据量稍大时,会占用较大的内存来存储数组,空间复杂度较高。在现如今大数据蓬勃发展的趋势下,该算法在分类稍大规模的数据时,对空间和时间都会存在大量的浪费。
[0005]此为现有技术的不足,因此,针对现有技术中的上述缺陷,提供一种针对K-NN算法临近点查找的优化方法及装置,是非常有必要的。

技术实现思路

[0006]针对现有技术的上述现有K-NN算法在分类稍大规模的数据时,对空间和时间都会存在大量的浪费的缺陷,本专利技术提供一种针对K-NN算法临近点查找的优化方法及装置,以解决上述技术问题。
[0007]第一方面,本专利技术提供一种针对K-NN算法临近点查找的优化方法,包括如下步骤:
[0008]S1.获取已有数据集合中确定元素数量N及待分类元素,所述确定元素数量N为已
有数据集合中元素总数量减去待分类元素的数量;
[0009]S2.根据已有数据集合中确定元素数量N及应用需求定义临近数量K,并创建一个长度为临近数量K的数组;
[0010]S3.计算已有数据集合中K个确定元素与待分类元素的距离,并将K个距离值依次存储到创建的数组中;
[0011]S4.获取已有数据集合中N-K个剩余确定元素,计算N-K个剩余确定元素与待分类元素的距离,将N-K个距离值依次与数组中最大距离值进行比较,并在剩余确定元素与待分类元素距离大于数组中最大距离值时,进行数值替换;
[0012]S5.统计数组中距离值对应确定元素所属类别及各类别对应确定元素数量,并设定确定元素数量最大的类别为待分类元素的类别。
[0013]进一步地,步骤S1具体步骤如下:
[0014]S11.定义已有数据集合C中确定元素数量N;
[0015]S12.获取已有数据集合C中待分类元素A;
[0016]S13.设定确定元素数量N为已有数据集合C元素总数量减去一个待分类元素的数量。
[0017]进一步地,步骤S2具体步骤如下:
[0018]S21.获取已有数据集合C中确定元素数量N;
[0019]S22.根据应用需求定义临近数量K,其中K<N,且K与N的差值大于设定阈值;
[0020]S23.以临近数量K为长度创建数组d[]K

[0021]进一步地,步骤S3具体步骤如下:
[0022]S31.获取已有数据集合C中任意K个确定元素;
[0023]S32.根据距离公式分别计算K个确定元素与待分类元素A的距离,得到K个距离值;
[0024]S33.将K个距离值依次存储到长度为K的数组d[]K
,生成d[d1,d2,

,d
k
]。
[0025]进一步地,步骤S32中,采用欧拉距离计算公式或者曼哈顿距离计算公式d12=∑k=1n|x1k-x2k|或者马氏距离计算公式d=((x
→-y

)

C-1(x
→-y

))计算K个确定元素与待分类元素A的距离。
[0026]进一步地,步骤S4具体步骤如下:
[0027]S41.获取已有数据集合C中N-K个剩余确定元素;
[0028]S42.将数组d[d1,d2,

,d
k
]中K个距离值依次排序,选出最大距离值d
max

[0029]S43.定位一个剩余确定元素,根据距离公式计算剩余确定元素与待分类元素A的距离,记为d
s

[0030]S44.判断是否d
s
小于d
max

[0031]若是,令d
s
替换d
max
在数组d[]K
中位置,进入步骤S45;
[0032]若否,舍去d
s
,进入步骤S45;
[0033]S45.判断N-K个剩余确定元素与待分类元素A距离是否计算完毕;
[0034]若是,进入步骤S5;
[0035]若否,返回步骤S43。
[0036]进一步地,步骤S43中,采用欧拉距离计算公式或者曼哈顿距离计算公式d12=∑k=1n|x1k-x2k|或者马氏距离计算公式d=((x
→-y

)

C-1(x
→-y

))计算剩余确定元素与待
分类元素A的距离。
[0037]进一步地,步骤S5具体步骤如下:
[0038]S51.获取数组d[]K
中K个距离值对应的确定元素,定义为临近子集;
[0039]S52.统计出临近子集中确定元素所属的类别,及各类别对应确定元素的数量;
[0040]S53.比较临近子集中各类别对应确定元素的数量,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种针对K-NN算法临近点查找的优化方法,其特征在于,包括如下步骤:S1.获取已有数据集合中确定元素数量N及待分类元素,所述确定元素数量N为已有数据集合中元素总数量减去待分类元素的数量;S2.根据已有数据集合中确定元素数量N及应用需求定义临近数量K,并创建一个长度为临近数量K的数组;S3.计算已有数据集合中K个确定元素与待分类元素的距离,并将K个距离值依次存储到创建的数组中;S4.获取已有数据集合中N-K个剩余确定元素,计算N-K个剩余确定元素与待分类元素的距离,将N-K个距离值依次与数组中最大距离值进行比较,并在剩余确定元素与待分类元素距离大于数组中最大距离值时,进行数值替换;S5.统计数组中距离值对应确定元素所属类别及各类别对应确定元素数量,并设定确定元素数量最大的类别为待分类元素的类别。2.如权利要求1所述的针对K-NN算法临近点查找的优化方法,其特征在于,步骤S1具体步骤如下:S11.定义已有数据集合C中确定元素数量N;S12.获取已有数据集合C中待分类元素A;S13.设定确定元素数量N为已有数据集合C元素总数量减去一个待分类元素的数量。3.如权利要求2所述的针对K-NN算法临近点查找的优化方法,其特征在于,步骤S2具体步骤如下:S21.获取已有数据集合C中确定元素数量N;S22.根据应用需求定义临近数量K,其中K<N,且K与N的差值大于设定阈值;S23.以临近数量K为长度创建数组d[]
K
。4.如权利要求3所述的针对K-NN算法临近点查找的优化方法,其特征在于,步骤S3具体步骤如下:S31.获取已有数据集合C中任意K个确定元素;S32.根据距离公式分别计算K个确定元素与待分类元素A的距离,得到K个距离值;S33.将K个距离值依次存储到长度为K的数组d[]
K
,生成d[d1,d2,

,d
k
]。5.如权利要求4所述的针对K-NN算法临近点查找的优化方法,其特征在于,步骤S4具体步骤如下:S41.获取已有数据集合C中N-K个剩余确定元素;S42.将数组d[d1,d2,

,d
k
]中K个距离值依次排序,选出最大距离值d
max
;S43.定位一个剩余确定元素,根据距离公式计算剩余确定元素与待分类元素A的距离,记为d
s
;S44.判断是否d
s
小于d
max
;若是,令d
s
替换d
max
在数组d[]
K
中位置,进入步骤S45;若否,舍去d
s
,进入步骤S45;S45.判断N-K个剩余确定元素与待分类元素A距离是否计算完毕;若是,进入步骤S5;若否,返回步骤S43。
6.如权利要求5所述的针对K-NN算法临近点查找的优化方法,其特征在于,步骤S5具体步骤如下:S51.获取数组d[]
K
中K个距离值对应的确定元素,定义为临近子集;S52.统计出临近子集中确定元素所属的类别,及各类别对应确定元素的数量;S53.比较临近子集中各类别对应确定元素的数量,选出确定元素数量最大的类别,定义为G;S54.设定待分类元素A的类别为G。7.一种针对K-NN算法临近点查找的优化装置,其特征在于,包括:确定元素即待分类元素获取模块(1),用于获取已有数据集合中确定元素数量N及待分类元素,所述确定元素数量N为已有数据集合中元素总数量减去待分类元素的数量;临近数量确定及数组创建模块(2),用于根据已有数据集合中确定元素数量N及应用需求定义临...

【专利技术属性】
技术研发人员:周培烁
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1