来自 WiFi 数据的位置

Posted

技术标签:

【中文标题】来自 WiFi 数据的位置【英文标题】:Location from WiFi Data 【发布时间】:2012-04-10 13:39:03 【问题描述】:

我们正在尝试根据 WiFi 数据确定一个人在哪个房间。以下是我们的数据示例:

1.SSID:无线,BSSID:00:24:6c:61:da:81,能力:[ESS],级别:-54,频率:2437 2.SSID:无线,BSSID:00:24:6c:61:da:c1,能力:[ESS],级别:-57,频率:2462 3.SSID:访客,BSSID:00:24:6c:61:da:c0,能力:[ESS],级别:-58,频率:2462 4.SSID:访客,BSSID:00:24:6c:61:cb:40,能力:[ESS],级别:-59,频率:2437 5.SSID:无线,BSSID:00:24:6c:61:cb:41,能力:[ESS],级别:-59,频率:2437

这是从一个时间点的单次扫描中获取的(我只显示了 5 个,但是有 60 个足够接近的接入点可以在单次扫描中出现)。这是我们的问题:

有 3 个房间,房间 A、房间 B 和房间 C,除了房间 B 位于房间 A 和房间 C 之间之外,它们都彼此相邻。房间 A 和房间之间有几个唯一的 AP C,但房间 B 中没有唯一的 AP。

我们尝试使用多类 SVM,类为 Room A、Room B 和 Room C,数据点为(例如)上面的 1、2、3、4 和 5(所以在上面data 有 5 个数据点,每个数据点都有标签 Room A)。我们在每个房间进行了大约 100 次扫描来训练模型(每次扫描包含大约 50 个数据点)。这导致新测试数据的准确性极低。

是否有其他人成功完成此操作或有任何建议?这就是我们用来实现 SVM 的方法:

http://scikit-learn.org/stable/modules/svm.html

谢谢!

【问题讨论】:

我不完全理解你是怎么做的......我所能想到的就是使用对每个路由器的 ping 并尝试使用一些三角函数来弄清楚这个职位,你是这样做的吗? 您如何避免在范围内有 60 个 个接入点的 WiFi 频谱空间完全过饱和?它们不会相互干扰并导致吞吐量大幅下降吗? 【参考方案1】:

这是一个聪明的想法,但我认为您在此处追求精确度和准确性时可能会遇到一些困难,因为它不仅与接入点的距离有关,而且实际上决定信号强度的因素有很多。例如,与大书架或电视相比,房间中的位置可能会比其他信号更强烈地影响其中一个信号。即使您的身体相对于设备的位置也可能会干扰信号。

我建议尝试一些feature selection techniques 和/或其他一些学习算法,这些算法可以更好地磨练数据中的哪些维度为您提供最一致的信息。例如,简单的统计分析可以告诉您来自给定“位置”的每个信号的信号强度的平均值和标准偏差。然后,您可以比较位置的统计信息,并查看您在不同位置的这些信号中是否存在统计学上显着的差异。您可能需要考虑以下测试:

ANOVA (ANalysis Of VAriance) 可以比较多个位置的平均值 T-test 类似于 ANOVA,但仅用于比较位置对

【讨论】:

【参考方案2】:

我怀疑在特征提取和超参数调整(使用网格搜索)中需要处理很多细节。请编辑您的问题以包含脚本,以帮助您正确获取这些详细信息。

【讨论】:

以上是关于来自 WiFi 数据的位置的主要内容,如果未能解决你的问题,请参考以下文章

iPhone 如何学习新的 WiFi 位置以进行位置估计

获取地理位置源

没有 WiFi 或 GPS 的 iOS 位置?

高德地图为啥定位不到我现在的位置

在我重新激活 WiFi/移动网络之前,服务中的 Android 位置侦听器不起作用

如何查看 WIFI 或 GPS 提供的用户位置