时隔一个月再去回顾这个比赛,其实更多的是一种反思与过程的分享吧。来自南昌航空大学材料学院的一名大三本科生,参加这个比赛纯粹是因为喜欢,或者说,是抱着一种不怕死不怕被虐不怕丢脸的心态来玩的,所以比赛的过程没有什么指导性的,更多的仅仅是一种分享,或者是一种对后来者的提醒吧,因为这次比赛真的犯了很多致命的错误。
从3月17日开始正式参赛,那时候仅仅是很简单的想学点东西,顺便检验一下自己的能力。在笔记本上写道“对于这个比赛,放松对待即可,团队名JustDoIt就是这个意思。可以拿大奖固然好,但更重要的是真正实力的提高。在Season1这个阶段的目标是冲劲Top500”。毕竟知道这样的比赛会云集很多高手,而自己的能力也一般,也就没有特别在意成绩了。
后来,我就根据自己对数据的理解开始构思一些模型,而且还构思了好几个模型,算法、程序什么的都弄出来了,那时候觉得,应该会不错吧。但等我真的把阿里巴巴官方提供的数据拿出来一看,蒙了,我发现我的模型就没办法去应用这些数据,因为偏差实在太大了。因为没有好好理解数据就开始构思模型,我浪费了6天的时间。
3月23日的时候,利用看到的数据进行二次建模。但这次的模型还是参杂了一些不必要的内容,例如什么心理分析的。但总算开了个好头,提交了预测数据,也收获了第一个排名2756。这次提交的准确率还凑合,5.88%,但召回率真的太惨不忍睹了,仅有0.03%,完全就崩溃了。但既然有个方向,努力改进就是了。说句题外话,由于对Matlab的不熟悉,坑爹的只能是手动筛选数据,纯粹是凭借自己的直觉去筛选,觉得这个数据有可能就选出来,然后非常幸运的可以在2点之前把数据弄出来提交了。说幸运是因为,一方面可以赶在测评之前提交数据,另一个也是因为数据筛选完以后电脑就没电了。
4月6日重新考虑问题,对的,这中间因为各种原因把比赛搁置了很久。对问题进行重新分析和理解,对评价指标也重新理解了一遍,发现有一个指标是理解错的,那就是召回率的含义,之前还以为这个和准确率是差不多的,但实际上是不同的,确实,自己的理解能力还是有问题的。理解完以后,重新构建模型,而且用Excel对数据进行预处理(就是排序、改时间格式),然后用C++编程进行数据的计算、筛选,终于等到了第一批真正意思上的预测数据三千多个,准确率降低到3.52%,但召回率提高到了3.69%,排名也进到2082了,觉得这样的改进还是有价值的,所以就继续下去了。
其实我并没有应用什么LR模型,因为我也不懂,仅仅是觉得这里面会存在一个购买周期,所以我就根据购买时间、预测购买时间、理论购买数和实际购买数做了一个比例模型,奇丑无比的一个模型,然后弄了一个乱七八糟的预测公式(根据各种购买行为转化为实际购买的可能性来设置比例系数,然后线性加权求和),终于有了第一个所谓的模型。
后来,对预测的范围进行修改,因为每个人的购买数都是在一定的正常范围的,都不会太多,所以这个预测区间应该是一个相对小的两端闭区间,所以修改了一下筛选过滤规则,准确率和召回率都提高了很多,那时候觉得,再继续修改预测区间,成绩很快就可以上去了。但事实不是这样的,因为我的模型其实理论基础不怎么的,所以这些预测的购买数真的没有多大的依据,单纯凭借这样的方法来做筛选效果不会好到哪去,后来的预测结果也证明了这点,成绩并没有太大的改动。
4月19日做了最后一次提交,成绩也一般,不过,总算坚持到了最后,我觉得这就够了。
回顾比赛,确实学到了很多,也更加了解到自己的不足。知道自己的不足其实比知道自己的长处会更重要吧。下面就总结一下自己在比赛中犯的不该犯的错误。
没有查阅相关的论文资料就去构思模型,这样得出来的模型肯定是不如现有模型,因为现有模型都是经过检验的,而且都是由行业专家来构建的,科学性和准确性等肯定是有保证的。
没有了解清楚数据、指标就去构思模型。我觉得这个错误是最大的错误,就相对于连对手的能力都没有预估清楚就跑去跟人决斗,死了也正常。所以,在以后考虑问题的时候,先把问题现有的资料给弄清楚再去动手解决问题,这样会更有把握。
推导公式的时候没有给出严谨的定义,导致了在推导公式的时候自己也混乱了,不得不重新来一遍。作为一个理工科学生,严谨的定义应该是最基本的能力,犯这样的错误实在是不应该。
这次的比赛也就到此为止了,但对算法的追求不会就这样结束。这个比赛仅仅是让我更加清楚自己现在的情况,例如能力、例如不足,为的是以后能有更好的发展。比赛的过程远比结果重要,因为结果就那么一瞬间的事情。看到论坛里有很多大神发帖,其中有一篇是《如果你一直没有进步,你为什么不回头想想为什么》,确实,回头想想才可以知道自己存在什么不足。感谢这次比赛,让我真的学到了很多,特别是一个人去面对问题的时候应该怎么去分析、怎么去解决。
最后,记录一下成绩,虽然巨弱无比,但最起码也是努力了一个多月的成果啊。准确率4.03%,召回率5.36%,得分4.60%,当天排名1691。
-------------------------
-------------------------
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。