435. Indoor Location & Navigation | indoor-location-navigation
大家好,
这个比赛非常棒,感谢十域科技,感谢kaggle主办方,我太爱kaggle了。完成这个比赛我觉得是对我个人的一次非常好的成长,我学到了(复习了)非常多的东西,包括:tensorfloor、pytorch、多线程技巧、代码规范、规范的实验记录、cv的重要性。我没有在算法和特征上有什么突破,唯一有一点我没有看到有人讨论的是我cv的构建方法。后面我将会分享到它。
现在先看一下我这一个月来的主要提升点:
| 主线方案 | Public 成绩 |
|---|---|
| 使用了 lstm public kernel,进行简单调参,使用cost min+snap2grid | 4.72 |
| 模拟test data 的特点构造了一个 fake test | - |
| 对训练集wifi时间戳进行插值,测试集还是路径点的时间戳 | 4.45 |
| 过滤掉间隔大于5秒的wifi log | 4.20 |
| 寻找时间非常接近的点,修复开始结束点 | 4.18 |
| 训练集不变,测试集也是wifi时间戳,再反插值得到路径点 | 4.16 |
| 做wifi时间戳级别的cost min,插值得到wp,snap,修复开始结束点,最后再嵌套一次cost+snap | 4.0x-390 |
| 引入4折 fake test 策略 | 3.82 |
| 更小心的修复开始和结束点 | 3.67 |
| 对wifi时间戳粒度的delta建模提高wifi cost min的结果 | 3.46 |
| 对wp时间戳粒度误差建模提高cost min | 3.36 |
| 做wifi时间戳级别的cost min,插值得到wp,snap,修复开始结束点,嵌套两次cost+snap+fix | 3.23 |
| 做wifi时间戳级别的cost min,插值得到wp,snap,修复开始结束点,嵌套三次cost+snap+fix | 3.19 |
第一次做Nfold的时候没有提升,我意识到训练集和测试集的分布不一致,我进行了一系列的探测,发现测试集有一些特点应该是人为限定的。测试集的txt大小>=2M(linux下看),时间跨度>=60s,路径点个数>=5。在前半个月的时候,这个限制同样抽出了626个路径作为fake test,无论是否进行后处理,我的fake test得分和线上的得分都保持一致。在最后1周我使用4折交叉验证,作为valid的那一份数据我同样做了上述限制,使得我的cv更加一致。后面我检查了private的分数情况,也符合相同的趋势。
我这一个月始终都没有想明白,为什么序列长度为1的lstm模型工作的这么好,mlp为什么无法替代它。。。
如果您对此发表任何看法。我将非常感激。