[发明专利]一种改进的室内定位KNN方法有效
申请号: | 201710650426.5 | 申请日: | 2017-08-02 |
公开(公告)号: | CN107389071B | 公开(公告)日: | 2021-03-23 |
发明(设计)人: | 刘强;冯文森;费宣;蒋雪妍 | 申请(专利权)人: | 电子科技大学 |
主分类号: | G01C21/20 | 分类号: | G01C21/20;G01S5/02;H04W64/00 |
代理公司: | 成都虹盛汇泉专利代理有限公司 51268 | 代理人: | 王伟 |
地址: | 611731 四川省成*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 改进 室内 定位 knn 方法 | ||
本发明公开一种改进的室内定位KNN计算方法,应用于室内定位技术领域,本申请根据用户定位中前几个历史点,预判出当前定位点在前几个定位点的附近,在使用KNN算法计算当前点时,根据指纹算法的误差,确定出定位点附近的指纹点;根据确定出的指纹点计算本次定位结果;实现只需计算前几个定位点附近的指纹点,即可得到本次定位结果,从而大幅度减少传统KNN算法的计算复杂度。
技术领域
本发明属于室内定位技术领域,特别涉及一种改进的KNN算法。
背景技术
近十多年中,伴随着我们出行的全球定位系统(GPS)是一直是室外导航定位的黄金标准,然而在室内由于信号的衰减、信号的折射反射等一系列问题,导致GPS在室内定位的应用中存在局限性。近十多年来,随着无线技术的发展,无线技术在室内定位的应用越来越广泛,如WLAN技术、Zigbee、蓝牙等。目前定位算法也有很多种,如基于距离的定位和基于指纹的定位算法,它们的主要研究点在于提高定位精度以及降低算法复杂度上。
kNN邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一。所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。
K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。算法流程如下:
1.准备数据,对数据进行预处理
2.选用合适的数据结构存储训练数据和测试元组
3.设定参数,如k
4.维护一个大小为k的的按距离由大到小的优先级队列,用于存储最近邻训练元组。随机从训练元组中选取k个元组作为初始的最近邻元组,分别计算测试元组到这k个元组的距离,将训练元组标号和距离存入优先级队列
5.遍历训练元组集,计算当前训练元组与测试元组的距离,将所得距离L与优先级队列中的最大距离Lmax
6.进行比较。若L=Lmax,则舍弃该元组,遍历下一个元组。若LLmax,删除优先级队列中最大距离的元组,将当前训练元组存入优先级队列。
7.遍历完毕,计算优先级队列中k个元组的多数类,并将其作为测试元组的类别。
8.测试元组集测试完毕后计算误差率,继续设定不同的k值重新进行训练,最后取误差率最小的k值。
但是目前的KNN定位算法存在计算复杂度高的问题。
发明内容
本发明为解决上述技术问题,提出了一种改进的室内定位KNN计算方法,根据用户定位中前几个历史点,预判出当前定位点在前几个定位点的附近,在使用KNN算法计算当前点时,只需计算前几个定位点附近的指纹点,从而大幅度减少传统KNN算法的计算复杂度。
本发明采用的技术方案是:一种改进的室内定位KNN计算方法,包括:
S1、初始化一个大小为T的定长队列Queue;
S2、根据数据库中的所有指纹点,建立KD树Tkd;
S3、收到用户的定位请求,判断该请求是否为初次定位;若是执行步骤S4;否则执行步骤S5;所述定位请求中包含RSS指纹信息;
S4、遍历数据库中所有指纹点,使用KNN算法计算得到初始定位点,将该初始定位点插入队列Queue中;则该初始定位点即为本次定位的定位结果;
S5、计算队列Queue中点的均值,然后从KD树中取出距均值点距离小于等于H的指纹点;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710650426.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种导航系统及导航方法
- 下一篇:一种小天体表面导航特征区域检测方法