如果有人搜索到BP 神经网络 实现 进来的,对不起啦, 这里面没有介绍神经网络以及实现神经网络的代码。只是一些牢骚和想法。
Python 实现 神经网络,用于8位geohash 回归。 效果还行,但就是8位geohash 太小,不能够进行比较。下一步进行7位geohash的回归
BP神经网络就不说了,参考http://blog.csdn.net/sealyao/article/details/6538361
Python 实现也不难。主要是控制步长,要不然收敛太困难。
代码就不写了,也不能写。哈哈
主要是发现这些训练数据太脏,
脏表现在以下几方面:
1、GPS 虚拟的
2、GPS 漂移
3、GPS不刷新
4、WIFI 不同手机 信号强度不同
5、WIFI 只能扫描30个。
6、一个IMEI号竟然爆发性的向上传了N条。 而且信号强度不一样。
现在主要是通过以下手段进行过滤:
过滤移动AP
过滤掉出现次数较少的mac
匹配mac -100
通过IMEI+时间维度进行训练数据的采样。
这样回归效果还行吧。
希望能想出其他方法。
==========================================分割线==============================================================
实现了 BP 前馈神经网络,对7位geohash 进行了回归,得出的结果是75% 左右的 数据落在了50米范围之内。
但是考虑如果对于在geohash 边界的点,很可能因为wifi 的位置训练不准确,没有落入7位geohash里面。
这样就需要求出多个7位geohash中的位置, 聚类 加权求平均了。
其实这样和指纹定位 差不多。 无论是进行匹配或者进行回归 都是一个match的过程。不像概率。
概率模型总是在找到概率最大的位置,概率模型其实有个很大的弊病。在于:
在这个分布中,最大的概率为30% 那么意思就是30% 的机会落在该区域内。
那么对于其他的几个区域的人 感觉就相当差。
还是梯度下降的方法比较合理。
============================================================================
想了想,不对,确定geohash, 应该再加一层,决策树 或者LR分类。 来确定geohash。
可以参考 垃圾邮件分类的想法。 可以试试,如果7位geohash 的准确率在 98% 以上。 那这个加上回归的 75%
效果杠杠的 比百度要好。
现在同事都在忙着修正Badcase 真的实在 不是研发太菜,真的是产品太**, 揪着几个badcase 不放。
比如:
1、周围荒山野岭就一个基站,定位超过了500米,
2、周围很少的wifi 还有一个基站,训练的wifi 位置和基站不一致, 相差很多, 你是相信基站呢 还是相信wifi 呢。 就是个抉择问题,无论你相信哪一个都可能出现Badcase
3、还有就是说人家在海边 给定位在海里了。(这个问题 真是 想骂街了, 产品你懂不懂定位, 懂不懂如何定位, 我定位的时候 还得先确定一下是不是在海里面? 你把海岸线坐标告诉我! 还有江河湖泊! )
多了不说了,说多了生气。或者说真的不是百度太强,真是的队友太SB