我正在尝试使用蓝牙加密狗实现室内位置跟踪系统。这个想法是带着安卓设备四处走动,并根据房间周围的蓝牙适配器的信号强度计算你在房间中的位置。为了做到这一点,我决定使用机器学习将 RSSI 尽可能地近似为距离,例如米。我大学的一位讲师告诉我,LibSVM 是我正在寻找的东西,所以我一直在阅读。我查看了本教程,似乎无法理解训练系统所需的数据。我将拥有的数据是:
- 保存在数据库中的每个加密狗的位置(以及 MAC 地址),x 和 y 坐标
- 离我的 Android 设备最近的加密狗的接收信号强度指示器 (RSSI)
- mac 地址将用于查询数据库中的某些加密狗
我知道数据必须是 SVM 格式,但我有点不确定它在输入数据和输出数据方面应该是什么。下面的示例取自我提到的教程,表明男人是一个阶级,女人是一个阶级。那么在我的情况下,我只有一个类“加密狗”吗?并且所有值加密狗都应该反映我存储在数据库中的值吗?
男声:低身材:大收入:好
女声:高身材:微薄收入:车费
- 将特征值转换为其数值表示。假设最好的薪水是 5,最差的薪水是 1(或没有薪水 = 0),与其他枚举变量相同。
- 我们有两个班,男人和女人。将类转换为数值:man = 1,woman = -1
- 以 libsvm 数据格式保存:
[class/target] 1:[firstFeatureValue] 2:[secondFeatureValue] etc. 例如:一个薪水高、声音低、身材矮小的女性会被编码为:-1 1:5 2:1.5 3:1.8
通常 SVM 的输入文件格式为
[标签] [索引1]:[值1] [索引2]:[值2] ... [标签] [索引1]:[值1] [索引2]:[值2] ...
有人可以给我一个我应该瞄准的例子吗?
这对我来说都是全新的,所以任何有助于我前进的有用提示或技巧都会很棒。提前致谢