2018.3.20号左右,由于研究生的数据挖掘课程的老师要求咱们集体参加一个比赛 ,因此在比赛参与时间、比赛难度和比赛类型的几种条件下,咱们选择了2018平安产险数据建模大赛-驾驶行为预测驾驶风险比赛,这个比赛是由平安保险公司提供数据,借由DataFoundation和CCF联合平台举办的赛事。参加比赛一共两个月,由于是初次参加参赛,加上投入的时间不够,因此结果不是很好。可是此次经验是为了下个学期再参加比赛积累,因此特此总结一个整个比胜过程,检讨一下。html
比赛数据、比胜过程记录、比赛代码都已经上传到github 地址https://github.com/20130353/pingan_competition.git,方便随时回顾。python
比赛最开始的时候,由于时间不够,临时分析了一下数据。可是此次比赛不同的是,有线上和线下数据的区别,咱们只分析了线下数据,彻底没有考虑线上数据。做为数据分析人员,作比赛的时候咱们必需要充分了解数据特性和数据分布,同时须要打比赛的时候要肯定线上和线下数据是否一致。并针对结果进行不一样的处理。固然不少时候线上数据和线下数据分布应该是同样的,由于线下数据是从线上数据中随机抽取的一部分。git
正如第一点所说,咱们只分析了线下数据没有分析线上数据,可是事实上比赛方只是把线下数据做为测试用例,真正的训练数据和预测数据都在线上,因此咱们一开始分析的只是测试用例,这对后面的数据挖掘彻底没有用。github
没有肯定数据的范围和缺失也意味着没有预处理,通过后来的预处理结果和没有预处理的结果对比,发现通过预处理的结果效果提议提高0.01。因此最开始仍是要预处理。segmentfault
小组每一个成员对于丢失数据的处理方式对不同,每一个人有每一个人的道理,可是事实上训练数据达到百万级别,丢失数据和错误数据的比例很小,不一样的预处理方式影响很小,因此没有必要考虑太复杂的预处理方式。同时考虑到此次比赛的平台计算要求,咱们应该选择代价的方式处理数据。因此这个问题告诉咱们,预处理的方式不必定只考虑最后结果,要在软件和硬件两方面的考虑下,选择最合适的方式。工具
由于对python不熟,因此写代码很是慢,即便是有想法可是实现想法可能须要几天甚至是几个星期。学习
由于比赛平台的硬件条件不好,因此对时间和内存要求很大,咱们在优化代码方面耗时很是长,可是事实上是没有必要的,一方面咱们能够直接从网上找最简单的方式优化代码,另外一方方面能够直接问同窗,毕竟咱们是一个班参加比赛,你们遇到的问题差很少,为何不直接请教同窗从而快速解决问题呢?当时我想问同窗时,同组成员以为这是别的同窗的辛苦劳动成果,担忧人家是否会给咱们,担忧不少问题,可是我以为这只是个比赛,同窗直接就是相互学习,没有必要把竞争放到这里来,可是我仍然是在尝试了好久以后才问同窗的,中间耽误了很多时间,因此我应该吸收教训。以求在最短期内解决问题,比赛就是要在最短期内找到最好的结果。测试
原始数据只提供了九个特征,因此咱们得本身创造特征,咱们找了不少资料创造了不少合理的特征,可是结果并很差,因此咱们认为是特征的问题。可是有同窗不断实践证实特征的结果搭配好的模型能够提醒效果。而咱们从头至尾只使用了一种模型,遇到结果很差,咱们就认为是特征很差,否认了这些特征,这样实际上浪费了这些特征的价值,同时也是浪费时间。优化
详细地说就是眼界不够广,不知道不少现成的工具包,只知道sklearn的几个基本工具包,可是sklearn里的模型都是很旧的模型,效果也通常。最近不少的xgboost、lightBGM等模型,就用模型的默认值就能够取得很好的效果。.net
感触很深的是代码写完以后常常是线下测试数据没有问题,可是线上就出错。写代码的时候彻底没有想过线上是否可行,每次等待在线测试几个小时以后出bug了才知道,可是浪费几个小时的时间。这也反映出本身写代码的不严谨性,因此之后要多考虑看看在提交。
在做比赛的过程当中参考了不少有意义的博客,在这里mark一下,为后面做比赛作准备。
博客中重点要看的是:
整套流程博客 https://blog.csdn.net/guoxinian/article/details/73740746
天池比赛经验总结 - http://www.javashuo.com/article/p-yajnrfxm-p.html
由于这两篇博客的都包含整个流程,对刚开始作比赛的同窗来讲,这个具备很大的指导意义。其中天池比赛经验的博客的实战意义更好。
剩下的就是一些常规博客。
在比胜过程,我养成了记录文档的习惯,同时又将文档分红python学习记录文档、比胜过程记录两个文档,我以为这样记录有助于帮助思考和记录过程,有时候由于研究生学业太忙一段时间没有作比赛就会忘记作到哪里了,须要话很长时间来回忆,有文档以后能够直接查文档,并且文档的时候会有源源不断的新想法冒出来,帮助扩展想法。
可是有个问题是,我是将比赛结果记录和想法记录记录写在一块儿的,有时候要看本身的比赛结果就很不方便,因此下次做比赛须要把想法和结果单独分开来写。