“第一届腾讯高校算法大赛”初赛失败总结

xiaoxiao2021-02-28  46

经过一个月的无用功,竟然都没有走进复赛,失望的心情难以平复。在知道这个消息的时候立即写一篇失败总结,让自己获取一些经验。这篇总结我将按照《精进》这本书里面提到的几个方面进行总结:信息,预期,结果,进度,工具,情绪,阻碍,优势,缺憾,意义。

赛题

腾讯社交广告高校算法大赛是面向高校大学生的算法大赛,作为腾讯核心的广告业务单元,腾讯社交广告通过对海量社交数据进行深入分析,构建多样广告场景,与8亿用户连接对话。在大数据、机器学习领域的持续创新投入,驱动社交广告生态发展。本次大赛旨在开放腾讯在社交和数字广告领域的真实数据,面向高校学生征集最智慧的算法解决方案。 网址:http://algo.tpai.qq.com/

信息

在研究生期间我特别关注大数据类的比赛,不过之前的几次由于在实习或者其他的事情,都是浅尝辄止。每一次只是提取了部分的特征,套一个模型,结果不算好也不算太坏。这次我在学校,经常晚上都用来写代码,还吸取了之前的教训,不是单打独斗了,拉上两个小伙伴一起搞定这个事情。在他们的陪伴下,我终于完整的走完了整个初赛。 在这次的比赛里面,我经常在关注比赛的群消息,里面经常有人讨论赛题中的小的trick,重要特征之类的,还有官方微信平台上的分享。后面在遇到bottleneck,我常常翻阅群消息,确实得到了几个很好的idea。还是可能遗漏了一些重要的信息,还要kaggle的开源的代码值得我去研究。这次比赛中,我研究了两份代码,也是主要看特征和模型,这是一个特别重要的点,他山之玉可以攻石。我还是没有很详细的研究这些代码,只是粗略的阅读了源代码,并没有考虑这个特征跟这个比赛有没有什么关系。但是也不能完全依赖这些open的code,毕竟不同的赛题有不同的问题。这里面我缺少与其他队伍以及自己队友的的充分交流。这一点未来需要谨记。

预期

在参加这个比赛之前,预期的是每天晚上9点之后开始打比赛,结果最少也要挤进复赛。形成这样的预期是由于我实习的经历以及我参加过几次类似的比赛。造成预期与事实之间的偏差应该有多方面的原因:

我的预期有点阻碍了事情的进展,在第一天的时候,只利用了基本的特征表,我们取得了第七名的好成绩。但是随后的30天中一直在往下掉,只有少数的几次提升了。在我的整个预期中,觉得按照这样,肯定能够进入决赛。所以一开始我并不是很急。而在后期的时候,成绩一直提不高,我就有点急躁了,没有静下心来好好想这个问题。其实在整个比赛的过程中,我都是由于现实的因素没有好好的静下来思考过这个问题,就一股脑的堆特征。

结果

我在6月7号下午还在写代码,完全忘记了那天是初赛截止日期。还以为是10好,所以还有很多工作没有来的及做,只提交了一个半成品,结果当然不好啦。

进度

前期太慢,后期太急躁。没有一个严格的进度规划!!!!

工具

这里我使用了xgboost, scikit-leartn, pandas, numpy, jupyter(这要感谢队友童大神,谢谢完成了一台服务器的所有环境配置,没有硬件基础,根本没办法提取那么多特征,虽然并没有什么卵用)。

情绪

在做这件事的过程中,我的情绪状态是有问题的,要不特别懈怠,要不特别紧张。在这过程中,我并没有有意识的调整自己的情绪。这里需要改进,找一个安静的环境,仔细的分析这个题目。

阻碍

这个比赛过程中的阻碍是有的,就是现实中太多的干扰的事情了。现实中的事情更重要,没有合理的安排好自己的时间。恩,没有合理的安排好自己的时间,是我遇到的最大的阻碍。以后谨记,合理的安排好自己的时间。每天都要列一个TodoList,这将有利于自己安排好自己的时间,能够有条不紊的安排自己的时间。说道这,我在大学期间,有一个很好的方法,就是每天在早起刷牙的时候,想好一天要干什么事情。讲每个小时需要干的事情都想一遍。并不需要专门拿笔记下来,坚持就是胜利!!!!!!严格安装时间计划表来执行!!!!!!!!!!!!,这是我送给我接下来一段时间的话。

优势

这个比赛中,我的优势应该在于我很早就接触大数据,数据挖掘了,做过几次比赛。没有充分的利用队友的力量,open的资源。主要的收获,理清楚了一条应该怎么打比赛的思路流程,以及怎么找特征和意识到数据预处理的重要性。在这过程中,通过看open的code,接触到了更多很优秀的解决方案,自己的python代码水平提高了,对问题的理解加深了。自己还要很多需要向其他人学习的,交流,阅读open code等等,仔细研究模型,有条理,这些都是我欠缺的。

缺憾

在这期间,我的遗憾是没有进入决赛;在自己没有准备好的情况下已经结束了;整个代码有点乱;没有谋而后动;等等在这次比赛中,我暴露如下一些不足。 第一,从题目的角度,我并没有完全的理解这个问题。只是把这个单纯的当做了一个分类问题来做,但是实际上数据挖掘是跟具体的问题有这息息相关的联系的。在做挖掘的时候,一定要把这个问题理解透,并且将自己代入到这个题目中,想象一下,如果我是用户,有哪些因素影响了我自己是否下载,这个将有助于找到强相关的特征。 虽然我们在比赛的一开始的时候做过思维导图,但是那个是一个大致的方向。 第二,没有好好的观察数据。在数据中找到一些userID, createID, positionID等将这些数据可视化,或者print出来,好好仔细的观察这些数据,将有利于自己理解这批数据,并且能够找到这些数据的问题,比如重复的用户,只点不下载的用户,误点了的用户等等。也可以将一些分布打印出来,观察是不是有强相关行。 第三,并不是越多特征越好。另外两个队友对数据挖掘并不是很熟悉,所以几乎都是我在做特征提取,经常我提取了一堆特征。但是这些特征并没有效果,有的还会有反作用。一次性都扔到模型中,其实我在认为的引入噪声。我觉得我应该在观察数据,并且在代入的时候确实相关的情况下再引入这个特征。或者一条一条的特征引入,并观察结果以及使用excel记录。有的特征单运行都话费了十几个小时,所有有针对性的找特征真的特别重要。在整个比赛中我找了有300多种特征,将这些特征全部用来训练,很快的就产生了过拟合!!! 第四,没有做好去噪和预处理的工作。这批数据里面肯定有很多异常数据,我并没将这些数据去除,就直接扔到模型,当然不会得到好的结果啦。 第五,对模型的理解还是有一点欠缺。在xgboost模型调参的时候这一点影响了我的工作。 第六,线下训练集和测试集的划分。一开始的时候,线下训练集和测试集的划分没有做好,耽误了整个线下找特征的工作。

意义

让我清醒的认识到了,自己要学的还要很多!!!!!!!

转载请注明原文地址: https://www.6miu.com/read-46395.html

最新回复(0)