今天给大家分享一篇论文:《基于随机子集抽样的高效室内指纹定位算法》
👤 作者:雷若兰
📚 出处:上海理工大学学报
我们都知道,传统的 KNN / WKNN 算法在室内定位中应用很广,但它们也存在一些典型问题:
-
RSSI 信号容易波动,有时非常不稳定
-
特征维度(信标数量)多,但不是越多越好,反而容易“冗余干扰”
-
少量异常值就可能严重拖垮定位结果
所以,本文提出了一个非常巧妙又高效的改进思路 ——随机子集加权 KNN(RS-WKNN):不再依赖全量特征,而是通过“随机选一部分维度 + 多次预测平均”的方式来提升鲁棒性与定位精度。
RS-WKNN 的核心思想(通俗理解)
你可以把它理解为一个“随机森林版本的 WKNN”:
Step 1️⃣:粗筛参考点
用AP 的 Jaccard 覆盖相似度做一个快速过滤,只保留信号结构差不多的一部分参考点(RP),降低搜索空间。
Step 2️⃣:多次随机维度采样
每次随机选出一部分 RSSI 维度(例如 8 个中的 5 个),执行一次 WKNN 定位。
Step 3️⃣:多轮定位 + 均值融合
重复这个过程 M 次,将这些定位结果取平均,输出最终定位坐标。
这个过程可以有效“过滤异常值”,提升鲁棒性,就像集成学习中的投票机制一样
伪代码如下:
输入:目标指纹;候选RP指纹;
子集随机抽样次数M;候选RP数N
输出:目标估计位置:
1 For j=1:M do
2 随机生成长度为l的AP索引向量
3 根据AP索引向量选取目标的指纹子集
4 for s = 1:N do
5 根据AP索引向量提取候选RP的指纹子集
6 计算 and 的距离
7 end
8 end
9 依据式(11)计算各RP与目标指纹间最终距离
10 依据返回K近邻对应坐标及其权重
11 依据式(12)输出估计目标位置
实验:
实验通过公开数据集来验证本文算法的有 效性,该数据集共采集3层楼的RSS信息,每层 楼布局一致,面积为1425,共部署有32个 AP。数据集包含各楼层不同RP处所测得的 RSS信号及其对应位置信息。其中一楼采集到 397条指纹信息,二楼采集到711条指纹信息,三 楼采集到431条指纹信息。以二楼为例,实验布 局如图3所示,“*”代表参考位置点,“#”代 表从指纹库随机抽取的在线测试点。
实验设置在每层数据库中随机抽取100个 RSS指纹信息作为在线测试数据,其余作为离线指纹信息,后续此实验参数保持不变。实验中, 测试点的定位误差定义为其真实坐标与估计位置坐标之间的欧氏距离,计算所有测试点的平均定 位误差及定位误差的累积分布函数(cumulative distribution function, CDF)作为衡量算法定位性能 的指标。
为验证该文所提随机子集抽样方法的有效性,作者将其与固定子集抽样方法进行对比。在确定 测试点候选RP集后,分别使用本文所提随机子集 抽样与固定子集抽样进行测试点的二次精确定 位。四次实验中,固定子集抽样方法分别选取指 纹库中前15个AP、中间15个AP、后15个 AP以及随机选取15个AP用于所有测试点的二次 精确定位。实验结果如图7所示,由图可知,本 文所提抽样方法相较于固定子集抽样方法表现更 加稳定的定位性能。而在固定子集抽样实验中, 后三次实验相较于第一次定位误差均明显增大, 达到3m以上,可能由于其所抽取的AP子集中包 含异常AP,影响了最终定位性能。但本文所提随 机抽样方法降低了定位中采用异常AP的概率,有 利于定位性能的提高。
从实验结果来看,随机维度抽样策略明显优于固定维度方式。随机抽样能够有效打破维度间的冗余干扰,并提升算法对 RSSI 波动的鲁棒性。其在大多数测试点中定位误差更小、CDF 曲线收敛更快,体现出更强的抗干扰能力。
公开数据集定位误差累积分布函数
为进一步验证本文算法的性能,与已有的 WKNN、WKNN-Kmeans、PCA-KRR方法[20]进行 对比实验,其中WKNN-Kmeans在离线阶段利用 Kmeans算法对指纹聚类,在线阶段通过簇匹配实 现目标粗定位,再在簇内利用WKNN实现定位, 而PCA-KRR方法是对指纹库中数量众多的AP信 号提取主成分,实现数据降维,再利用核岭回归算法建立位置与RSS信号的模型。在本实验中, 已将各对比算法参数调至最优,所得定位误差累积分布函数如图所示。
考虑到本文算法计算复杂度和定位精度的权衡,将其参数设置为:粗定位阶段选取40个候选 RP,抽取10个子集,每个子集包含15个随机抽 取的AP。由图可知,本文算法90%的定位误差小于5 m,WKNN算法和WKNN-Kmeans算法中 70%的定位误差小于5 m,PCA-KRR算法中 60%的定位误差小于5 m。四种方法的平均定位误 差分别为:2.47,4.06,4.20,4.54 m。对比其它 3种算法,本文算法有效降低了平均定位误差,相 比经典WKNN算法, WKNN-Kmeans算法以及 PCA-KRR算法,本文算法的定位精度分别提升 39%,41%,46%。
结论:
针对RSS信号受传播环境突发噪声影响以及AP信号存在异常的实际情况,提出了一种基于随 机子集抽样的高效指纹定位算法。算法在线阶段利用AP覆盖向量完成目标粗定位,可快速将目标 定位到局部区域,然后采用随机子集抽样算法实现目标位置的二次精确估计。本文从不同粗定位 方法、不同的参数选择、AP异常等方面对算法进行了分析,并与其它室内定位算法进行了对比, 实验结果表明,本文所提定位算法在有效降低指纹匹配计算开销的同时保持了良好的定位性能。