使用机器学习进行 WiFi 定位

机器算法验证 机器学习
2022-03-30 23:25:55

我正在尝试根据 WiFi 测量确定一个人在哪个房间。我目前有 3 个房间的 WiFi 测量值。测量包括从每个房间内不同位置收集的 100 次 WiFi 扫描。每次扫描都会显示在房间内某个位置可见的 WiFi AP 数量。在 100 次扫描中的每一次扫描中看到的 AP 数量是可变的。这是一种这样的扫描:

1.SSID: wireless, BSSID: 00:21:6c:63:cc:dd, ss: -54, frequency: 2437 
2.SSID: visitor, BSSID: 00:24:6c:61:aa:bb, ss: -58, frequency: 2462 
3.SSID: visitor, BSSID: 00:24:6e:6d:ab:ab, ss: -60, frequency: 2437

ss:信号强度

这是从为每个房间收集的 100 次扫描中的一次扫描中获取的。

每次扫描就像房间的一个功能集。我需要以某种方式使用这些数据训练我的系统,以便它能够将测试期间进行的扫描(可能有多个 AP)分类到特定的房间。我可以使用什么监督训练算法?我已经尝试过 SVM,但它们不允许可变功能集。

2个回答

您能否简单地将您在任何阅读中看到的所有 AP 创建一个集合AP并为未出现在特定扫描中的 AP 填写 0 强度?所以一个特定的扫描将被记录为Si=s1,s2,s3,,sn其中每个si是力量APi.

那就是如果有n在所有扫描中看到的唯一 AP,每个Si将会n条目(ss)很长。这样,您就没有可变长度的功能。

这是一个朴素贝叶斯解决方案的草图。

  1. 定义Xi作为4-元组(SSIDi,BSSIDi,SSi,FREQi).

  2. 表示房间的指标j经过Rj, 为了j=1,2,3.

  3. 使用样本中的频率来指定P(XiRj)作为次数4-元组Xi在房间里观察到Rj除以总数4- 在房间中观察到的元组Rj.

  4. 给出先验概率P(Rj)=1/3到每个房间。

  5. 给定一个新观察到的4-元组Y, 使用贝叶斯定理计算

    P(RjY)=P(YRj)P(Rj)k=13P(YRk)P(Rk).

  6. 做出决定:分类Y来自具有最高后验概率的房间。

以此为起点并对其进行完善。一个直接的可能性是引入某种平滑:http ://en.wikipedia.org/wiki/Additive_smoothing