Python 从WiFi数据定位

Python 从WiFi数据定位,python,location,wifi,wireless,svm,Python,Location,Wifi,Wireless,Svm,我们正试图根据WiFi数据确定一个人在哪个房间。以下是我们的数据样本: 1.SSID:wireless,BSSID:00:24:6c:61:da:81,能力:[ESS],级别:-54,频率:2437 2.SSID:wireless,BSSID:00:24:6c:61:da:c1,能力:[ESS],级别:-57,频率:2462 3.SSID:visitor,BSSID:00:24:6c:61:da:c0,能力:[ESS],级别:-58,频率:2462 4.SSID:visitor,BSSID:00

我们正试图根据WiFi数据确定一个人在哪个房间。以下是我们的数据样本:

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

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

有3个房间,房间A、房间B和房间C,它们彼此相邻,但房间B位于房间A和房间C之间。房间A和房间C之间有一对独特的AP,但房间B中没有独特的AP

我们尝试使用多类SVM,类为房间a、房间B和房间C,数据点为(例如)1、2、3、4和5以上(因此在上述数据中有5个数据点,每个数据点都有标签房间a)。我们在每个房间对模型进行大约100次扫描(每次扫描包含大约50个数据点)。这使得新测试数据的精确度极低

是否还有其他人成功地做到了这一点或提出了任何建议?这是我们用来实现SVM的:


谢谢

这是一个聪明的想法,但我认为在这里,你在追求精确性和准确性时可能会遇到一些困难,因为决定信号强度的不仅是与接入点的距离,实际上还有许多因素。例如,与大书架或电视机相比,房间中的位置可能会对其中一个信号产生比其他信号更大的影响。甚至你身体相对于设备的位置也可能会干扰信号

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

  • 可以比较多个位置的平均值
  • 类似于方差分析,但仅用于比较成对的位置

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

我不完全理解您是如何尝试这样做的。。。我所能想到的就是对每个路由器使用ping,并尝试使用一些三角函数来确定位置,这就是你如何做到的吗?如何避免WiFi频谱空间在60个接入点的范围内完全饱和?它们是否都相互干扰并导致吞吐量大幅降低?