写这个算是记录一下吧,把解决的思路和常用套路总结一下,特别适合刚入门的拿来练手,因为数据有很明显的规律且分布极其不平衡。同时也方便小伙伴们参加下一届,也祝小伙伴能取得更好的成绩。
比赛的地址是:全国高校大数据应用创新大赛,有三个比赛 ,分别是技能赛,创意赛和企业命题赛。我参加的是技能赛一个多分类,企业命题赛是一个nlp也是分类。具体的可以到上方地址查看。我强烈建议在有机器的情况下参加企业命题赛,或者两个都参加(我当时以为只能参加一个)。
技能赛初赛是提供6000条数据作为训练数据,然后进行10分类。数据集描述如下图::
评分标准是:准确率,时间复杂度(决赛和初赛并没有感觉有评比这个)。
初赛数据集:初赛数据集 密码:
决赛数据集:决赛数据集 密码:varf
刚开始我们直接把字符串转换成整型,然后放入xgboost种进行训练,效果不是很好,提交后的准确率大约为80%左右。试了5层的神经网络,加了dropout,然后就是随机的运气好了就99%+,运气不好了就93%+。
当然上面只是拿来玩玩,最主要的还是做特征工程,特征工程做好了,一个决策树就可以了。
我们队特征工程是做了四个(就是慢慢试,有可能你想的特征和别的特征组合起来准确率就下降了)。思考的方式有很多,对于这个数据集来说,分布是极其不均匀的(千万不要第一步就造数据)。想特征的方法有很多,比如本数据集,可以想花色的大小,种类,牌面的大小,牌面的种类以及是否是顺子,三个一样的花色或牌面会怎么样,四个呢,五个呢?都要几个几个合伙一起试,把不好的剔除掉。最后我们队采用的是面值的种类、重复面值的最大次数、花色的种类、是否是连续面值 。如果在加入可能会影响前面四个种类,导致准确率下降。比如原始数据是C,8,H,J,D,2,C,6,C,10,0,处理之后是2,6,8,10,11,0,2,3,3,3,0,1,5,3,0。然后放入已经调好参的xgboost,准确率就是100%了。难度不大,适合刚入门的小伙伴拿来练手。
决赛和这个差不多,只不过手写了一个id3,在数据预处理用了GUP加速。从数据处理到预测也就十几秒,时间复杂度也不高。
给下一届参加的一些建议吧。对于初赛来说,使用神经网络的普遍比用其他模型的成绩要高,并没有感觉到有考虑时间复杂度。决赛也是,答辩的时候有人用了几个模型融合最后答辩成绩还很好。总之就是能用名字听起来高大上的,就用。至少在答辩的ppt上说出来。
最后附上我在前段时间的笔记,当作参考吧。
第一次写博客,可能排版不好(后续会慢慢改),很多想表达的没表达出来。挺适合新手学习的。好了各位小伙伴们加油吧,有需要的可以一起讨论。