阿里大数据之夏—我的坎坷进阶路

阿里大数据之夏—我的坎坷进阶路

         五一节时,经管院的老乡跟我说,阿里有个资金流入流出预测的大赛,要不一起打打。我说我先看看,当天把数据下载下来琢磨了一番。

         当时好像是3万用户的数据,数据量还是不小。有很多字段,用户表中有什么性别啊,城市啊,星座啊啥的,用户行为表中也有10来个字段,申购余额宝是从银行卡里来还是从支付宝来的,赎回是消费还是赎回到银行卡还是赎回到支付宝,这么多用户行为数据,想想还是蛮激动的。这么多数据来预测9月份的每一天申购赎回,应该很easy啊。

         但是有个问题,他这个不是0-1预测,是要预测申购赎回的确定值的,用一个分类算法搞不定问题呀。一时间,想对用户行为数据进行深入分析,用户分分类啊,建模预测预测啥的啊,但感觉有点摸不到头脑,还不知道如何下手。

         开始不断查资料看论文,论文上比较多的是风力发电厂发电量预测啊,人口增长量预测啥的。这些感觉还蛮沾边的。人大经济论坛还有很多金融时序数据分析的帖子,看看也不错,感觉这个是不是也是一个金融时序数据,于是在本地用自己搭建的mapreduce跑了一把,把每天的申购赎回统计了一下,你还别说,还是真有规律的,它基本是按周走的,周末都申购赎回比较少,工作日都比较多,而细分的话周一多,周五少。

         说干就干,开始从0学R,先画个图玩玩,然后学了好久才会建立周期为7的时序数据,眼看5月21的第一个提交日就要来了。一狠心搞了个晚上,终于提交上了数据。第一次啊,还是很激动的,晚上等着结果,0点10分出了结果:110,第10名。心想,这下我没有搞错方向,感觉开始上路了。

         后来也看了不少论坛的帖子,侨乡丽人写的那帖子还是很经典的,但是里面很多想法都比较天马行空,我没怎么采纳。用来开阔思路还不错。他思路还是很活络的。真的

         老实说第一天我就用了一个时间序列分析,什么ets啊,arima啊啥的。想想这样就能搞第10,我还没发功呢,一发力还不打爆全场啊。

         开始不断看论文,有论文说,时序数据预测后,用神经网络来预测残差比较好,想想还是小激动,线下预测了一下,效果一般般,但是,谁说的准了,也许线上就凑巧效果好,提交了下,狗屎一样。当晚都没怎么睡好。尼玛。童话里都是骗人的。论文也是。

         然后琢磨了一个新思路,我用模型融合吧,融合个SVM,再来个神经网络,那不很爽了。开始建模,用往日的数据来预测未来的数据,中间还加了一些日期的特征,再跟之前的数据融合提交,哎,然并卵。

         之前还想着各种算法堆砌来打爆全场的,当时那段时间真的很郁闷。想想都没什么思路了。有一天打了一下午篮球,想想也没啥事,按申购赎回汇总量来看,数据量也不大,而且我只用了14年2月10日后的数据,我把他们按月份和周期建了个表格。の,这9月还有很多特殊日期啊,比如说中秋节,我把这中秋节用以往的假日数据来单独预测,一提交,成绩上涨了8分,哎呀,这不错哦。

         后来又发现了9月28日这个周日调成了上班日。这样又调了一下,成绩又上升了7分。这可老爽了。

         这件事让我总结了一个比较有概括性的结论,各位轻喷:

         数据挖掘拒绝本本主义,教条主义。一切从实际出发,在实践中检验和发展真理。机器学习算法和模型是工具,工具可以延伸想象,但工具永远是人的附庸。

        解说:所有数据挖掘的论文是基于特定数据集出发的,数据集不一样,方法要不一样。可以多看论文开阔思路,仅此而已。而更多的是要贴近业务,理解数据,让数据说话。一切让数据自身说话,而不是妄图通过方法模型炫酷来整合凑巧得到梦幻结果。

        当你对数据有深入认识时,你内心有了一个真实的思路,如果是小数据,你可以用大脑跑出结果,但是数据量大,你需要借助工具,通过建立模型,选择算法,相当于把自身思路写入计算机中,让计算机按自己的思路拟合数据。

         工具没有意识,没有思维,他可以真实的反应数据让数据说话,这是比人朴实的地方,但也正因为这一点,他只是人的附庸,他还做不到人思维的灵泛。

         后来,看了卡本的视频,思路又有了很多灵点,这月初是不一样的啊,9月1号还是星期1呢。我赶紧把1号也预测了下,提交发现成绩不变,这下我就奇怪了,原来我1号的得分是0 啊。想想很不爽,1号你到底是啥,我又花了几天单测这一天,结果成绩都不变,真是见了鬼了。我开始怀疑评分程序有问题,他不计算1号的成绩,但算者大师说,1号数据比较异常,评分程序没有问题。我当时真是怒不可遏。夜归时的信息学部是那么的清冷,从正门进来后大道上黑漆漆的没有一个人。晚风习习,我骑着自行车。

         整了好一阵子,加了些月初月末的特征,在一个周一的凌晨,我第一次得了第2名,耳后我又得过好几次第二名,整个比赛打下来我在前五名的日子大概有10来天吧。就这样结束了第一赛季。

                       

         第一赛季结束的最后一天,突然冒出了好多绿火箭,这绝对是一大批潜伏的作弊小号的带头大哥。想想很不爽,你优化模型你开什么玩笑,你一下提高40分?这也成了这个比赛永远的伤痕。中国人真的是会钻空子,有意思嘛,打赢了比赛学不到东西有毛用。

         第二赛季马上要开赛了,趁这个空档搞了下实验室的项目,还看了不少kaggle上的帖子。尤其是那个walmat的仓储量预测的。虽然跟我们的不太一样,但还是得到了不少启示。

                                                             --------------------------------第二赛季----------------------

         第二赛季就开始了,我先说一下,其实阿里的主办方主办这个比赛是很有意义的,他们自己也很苦恼:这个申购赎回数据,有时候的一个土豪用户,就把你整个模型搅烂了,预测准确谈何容易,各类数据还是蛮多的,但是自己也找不到如何使用,究竟可不可以对用户进行划分,建立用户画像,来分析预测异常点。于是把这个问题抛给了参赛者。

         我始终觉得,第二赛季就只容许100位参赛者好了,参赛者太多了,好多人搞小号。我是从来没搞过的,尤其是有几个队伍是伊朗的,尼玛。用小号不断提交来猜测异常点数据,这搞屁的飞机,排行榜不断刷新,搞的人心惶惶的,优化模型谈何容易,哪搞得过开小号猜数据的,后来群里还有人说他们猜好数据后,让模型去学习出这个猜出的正确数据,以掩人耳目。我去。真没劲。

         这个用户画像,我第一赛季觉得用户比较少,没有去弄,第二赛季我是有认真琢磨的,但是:这个申购赎回预测不像天猫推荐算法,你是淘宝买家,你老在我店里转,八九不离十我就能预测到你是否会买,你的一些行为数据跟你的是否购买是直接相关的,而这个申购赎回的数据,没法完整刻画用户画像,我今天拿奖金了,明天淘宝店主收款了,后来我要付房贷,大后天我去了趟巴黎,这些金融数据背后的原因实在太丰富了,你光从申购赎回这点数据来预测用户行为,真是杯水车薪。如果我知道你的职业,你喜欢听什么歌,你的微薄内容,你老吐槽什么:如明天就要交房贷了。这些信息,然后就是你的过往金融消费习惯,那我不算死你。至少可以算一个用户群体的行为,虽然个体行为有一定的随机性。

         第一赛季我都是一个人打比赛的,当时真的很辛苦,一个人琢磨,形单影只,你的思维就受限。第二赛季拉了2个小伙伴,开赛第一天一起讨论讨论了下,后来也经常聊聊,感觉还蛮爽的。而且我们就一个学校的。

第二赛季在kaggle上看到有人用随机森林和gbdt来预测,队伍的美女也琢磨了随机森林,于是我也开始搭建随机森林模型,开始构建特征工程。找了不少特征,而后在后来的线上测试中不断的发现很多特征是过拟合的。特征就慢慢减少的。有一天,我把时间序列的和这个随机森林的模型融合了一下,第二赛季的一个星期1的凌晨,我的成绩上升了13分,结果还是比第一名少了0.6分。抱憾周星星。整个赛季下来也没能拿到周星星。哎。

这比赛,我跟你讲,他评测程序第二赛季居然改到了凌晨0点25分。这个很可恨的,看完成绩,床上转辗反侧睡不着,明天怎么优化呢,今天的结果到底是为什么的?打到后期我真的是累了。有时候脑子都转不动了。有一天天下暴雨,学校都被淹了,正门那里还有皮划艇,我在寝室睡了一整天,下午5点才起床。爽。

比赛还是结束了,不知道阿里的赛题方是否达到了自己的初衷,阿里的组织者如何来防小号,如何来惩罚作弊的人。都是值得期待的事情。而我,昨天我暴走了一天,徒步穿越了整个湖畔,还有高山,夜晚的时候,我从桥上小跑回来,在桥栏杆上压了会腿,雨后的夏季还是有些清爽,我买了个宁夏石头瓜,这西瓜还是蛮甜的,徒步了至少20公里,跟寝室哥们吃了10多斤的西瓜。睡了一个晚上,清早起来,写下了这篇散文。许多年前,我是多么向往朱自清、沈从文读书的时光,立志做一名文人,漫步边城去赏荷塘月色,然后,阴差阳错,我重新写下了请求和誓言:我是一名极客,我是大数据科学家。

博上文章,均属原创,如需转载,请注明出处
原文地址:https://www.cnblogs.com/whu-zeng/p/4677277.html