435. Indoor Location & Navigation | indoor-location-navigation
感谢主办方举办了这场精彩的比赛,也感谢所有在论坛上分享见解的人!
我很高兴能成为一名 Grand Master(特级大师) :-) 在这场比赛上花费大量时间是值得的!
我尝试了很多很多东西,在这个过程中保留了一些,放弃了另一些,但很难说哪些是好的,哪些是不好的。
首先,我计算了理论路径(路径形状:从一个航路点到下一个航路点的 deltaX/Y):
然后是我的 WIFI 模型:
我主要使用的是最近邻模型。我对训练数据和测试数据都应用了一些过滤器和阈值(大约 20 个超参数)。我利用时间戳和最后见到的时间戳之间的差异为每个 WIFI 源赋予权重。此外,我将每个 WIFI 源的权重作为超参数。这给了我很多超参数。
我注意到,当我调整 WIFI 模型的超参数时,结果可能会发生很大变化。一个模型可能适用于某些路径,而不适用于其他路径。因此,我对每条路径的超参数进行了优化,直到 WIFI 估计的路径与理论路径具有相同的形状。我通过模拟退火算法进行随机优化。这个过程非常耗时……我让它运行了好几个星期!
我还通过在训练数据上计算整个路径并在较短的时间戳处计算 WIFI 信息来增加 WIFI 信息,这给了我其他可以混合的模型,但效果不如在每个航路点定位 WIFI 信息的模型。
然后,我在快速后处理中使用了这些模型以及所有公开笔记本的 WIFI 模型:对于每条路径,我给每个 WIFI 模型分配一个权重,并优化这些权重,以便与理论路径的形状达到最佳拟合。
在这一步结束时,我的分数大约是 4m。
改进理论路径:
我计算了几条改进路径:
最后是我的对齐网格方法:
我使用了自动航路点生成。
对齐网格是通过在每个时间步计算所有训练航路点的概率来获得的。对于时间步 i,我计算从任何训练航路点转换到任何其他训练航路点的概率。这有点类似于马尔可夫过程,这是我在之前的比赛(ion 比赛)中发现的。
该概率是几个概率的乘积:
将时间步 i-1 的所有航路点的概率乘以上述概率矩阵(大小为 n*n,其中 n 是训练航路点的数量),就得到了时间步 i 的新的概率数组。
我向前、向后(给出一个新的起点)、再次向前和再次向后执行此步骤。
我的最终位置是所有航路点的加权平均值(我取最后 2 步的平均值)。
这个最终解决方案被用作下一次迭代的输入,通过将获得的位置反馈给 WIFI 模型。
我还通过假设我的测试数据 XY 预测是准确的,用测试数据补充了训练数据。
这是我第一次单人参加比赛,我想这减少了一部分乐趣……但我需要我的单人金牌,并认为这是合适的时机!