记广东公共交通大数据竞赛—— 公交线路客流预测

——最终准确率 76.99% 
——排名 83/2734 
——代码: https://github.com/francis7999/gd_line_pop_predict

最后的成绩有欣慰也有不足,第一次参赛的我本该满足于前5%的排名,但想到参赛期间有一大半的天数都为其他的事情焦头烂额,没有做任何改进,总是不由感慨本可以取得更好的成绩。

力学出身的我,此前从未想到研究生会去做语音识别方向。 
人生是多么不可思议,我的本科专业和研究生方向找不出一丝一毫联系。前途茫茫,而我披星戴月,风雨兼程。 
要做语音识别,必然深钻机器学习,而我浅薄的学习之下也只掌握了一些皮毛,但学到了理论,那就要熟练运用,脱离实际的理论无异于空中楼阁。 
于是参加了阿里的广东公共交通大数据竞赛——公交线路客流预测。作为机器学习与数据挖掘领域的新手,第一次参加大数据竞赛,我抱着学习的想法,目的就是运用一些学到的机器学习知识解决一点实际问题,顺便巩固基础。

工具:Python 2.7 + scikit-learn

步骤: 
1. 数据预处理。统计了训练集中每天每个时段的客流量,排除了一些客流过少,显然统计错误的样本。处理了天气数据,把(时段、天气、最低温、最高温、风力)作为特征,客流量作为预测变量。 
2. 上模型。根据两条线路、工作日和节假日,分别建立四个模型。在分别用了线性回归、SVR、决策树等等模型之后,发现只有决策树靠谱一点。在浏览往年大神博客时,发现大神们常用GBDT和RF,遂用之。 
3. 改进(基本上一直处在这一步)。 
(1)在做10-cv时发现决策树会过拟合训练集,在测试集上性能不好,所以限制了决策树叶子节点最少样本数从而强制取平均,得到更好的平均性能。 
(2)初步比较时发现GBDT比RF性能好一点,耗时也少一些,所以之后一直在针对GBDT做优化,改参数。 
(3)GBDT存在过拟合问题,解决方法如下:降低learning rate,限制叶子节点最少样本数 
(4)总之到最后一直在调决策树和GBDT的参数,调到快要吐……以后吐啊吐啊的应该就习惯了 
(5)国庆节和最后需要预测的元旦三天假期模式差别很大,所以把国庆七天从训练集中剔除,果然得到改进 
(6)到最后调参数带来的改进已经不明显时,我尝试着把1.1-1.3每天每个时段的预测值减20之后交上去,居然得到了0.5%的改进……

总结:

  1. 数据预处理方法太过于粗糙,以后需要好好学习这一块的知识
  2. 继续认真研究机器学习,下次做类似比赛时争取用DL

最后,力学四年在我生命留下的烙印深沉刻骨,永远不会退去。

http://blog.csdn.net/fyjthcy/article/details/50129939

http://blog.csdn.net/u014135091/article/details/53396336


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值