实验背景
Wi-Fi 网络和设备的广泛分布和智能移动终端的广泛使用,基于 Wi-Fi 的内部定位技术成为研究热点。GPS 很难解决一些室内定位问题。目前,Wi-Fi 接入点(AP)分布在公共场所,例如大型商业建筑,医院和地铁站等,并且使用Wi-Fi 技术定位以提高定位精度并节省部署定位设备的成本。
本次实验通过已知数据对模型进行训练后来进行室内定位的测试,以通过手机软件接收到的AP 信号的强度值作为信号指纹特征。
1 实验原理——KNN算法
knn 是机器学习领域非常基础的一种算法,可解决分类或者回归问题,如果是刚开始入门学习机器学习,knn是一个非常好的入门选择,它有着便于理解,实现简单的特点,那么下面就开始介绍其算法的原理。
首先,knn算法的基本法则是:相同类别的样本之间在特征空间中应当聚集在一起。
如下图所示,假设我们现在红、绿、蓝三种颜色的点,分布在二维空间中,这就对应了分类任务中的训练样点包含了三个类别,且特征数量为2。如果现在我们希望推测图中空心圆的那个点是属于那个类别,那么knn算法将会计算该待推测点与所有训练样点之间的距离,并且挑选出距离最小的k个样点(此处设定k=4),则图中与连接的4个点将被视为推测空心点(待推测点)类别的参考依据。显然,由于这4个点均为红色类别,则该待推测点即被推测为红色类别。
knn图解1
再看另一种情况,如果待推测点在中间的某个位置(如下图所示),则同样也计算出与其最邻近的4个样本点,而此时这4个样本点包含了3个类别(1红、1蓝、2绿),针对这样的情况,knn算法通常采用投票法来进行类别推测,即找出k个样本点中类别出现次数最多的那个类别,因此该待推测点的类型值即被推测为绿色类别。
knn图解2
2 实验数据采集方法
上图是我们测试数据的区域划分。本次测试数据的采集地点在北京工商大学文科实验中心教学楼的2楼机房,主要区域是机房的左半边区域。由于电脑之间有档板,比较好划分区域,因此我们以每两排电脑为一个区域单位,但因电脑排列组数有限,我们仅以图示划分为六个区域,以此来记录数据。
3 实验数据采集结果
上述数据中a、b、c、d、e、f、g、h代表8个不同的AP名称,共960条数据。
4 实验验证结果
我们根据最初的想法,将各个AP用KNN的算法进行测试。首先选取其中4个AP进行计算,并继续添加AP个数,计算AP5、AP6、AP7、AP8的错误率情况如下:
表1:初步实验结果
由于我们在选取AP时没有考虑我们选取AP的随机性,老师对此方案提出建议,如果选取AP都为4个,但是为不同AP的组合,错误率的变化情况是不是会很显著。
针对选取7个AP的情况,经过KNN计算,结果如下:通过对我们收集到的数据进行不同的组合,其结果不同,其中选取AP7的情况8的错误率最低,仅为0.25,其正确率甚至高于选取8个AP的情况。
表2:改进后实验结果
为进一步了解不同数据组合出现的结果,我们针对AP4、AP5、AP6也进行了部分不同组合的计算,(由于数据组合数量过多,我们适当了选取部分组合进行计算)计算结果如上表所示。
通过对上述各种数据组合的情况分析,我们可以看到在大体趋势下是选取数据点越多精确度越高,其可以参照最低正确率。但是随着AP数量的增加,在AP为7个时,精确度最高,正确率达到75%,其正确率超过AP为8的情况。
5 实验代码截图
6 实验过程中遇到的问题
最初设定的试验方案是使用两个手机热点加校园网的两个AP进行测量。但由于手机信号不稳定、不能长时间处于工作的状态等问题,无法控制其变量,导致测量出的数据并不准确,从而我们改进了此方案,选用了校园网的4个AP进行测量。在经过组间交流讨论后,我们发现4个AP作为描述每个区域的特征还是不够充分,从而我们的实验方案增加到了8个AP,分析在不同AP数量下错误率的变化情况。
组员:顾子跃 魏凯迪 王一帆 马昂 喻鑫浩