清水湾沙滩青年流浪者是来自香港科技大学的硕士研究生,之前在ACM/ICPC亚洲区预赛,百度之星,Google Code Jam等其他算法类大赛中均取得过不错的成绩。在最后一星期更换数据集后一直稳定在第5名左右,F1分数在6.12左右。
CSDN:请描述你的解题思路、算法亮点以及着重攻坚方向,并具体的谈一下特征抽取、训练模型的建立,以及模型的训练思想。
清水湾沙滩青年流浪者:第一赛季因为数据量小,所以主要依靠少数个特征基础上的人工规则,最终得分7.21,排名第121进入第二赛季。
第二赛季,在模型使用方面,先期主要是攻破线性Logistic Regression(LR)模型,使用大部分参赛队都没有使用的dummy coding的思路处理了所有的特征,包括使用了id类特征以及特征与特征之间的dummy conjunction来拟合非线性。并且对数值类特征采用包含式dummy coding解决了离散化后特征值长尾部分数据稀疏的问题。是所有的Top10队伍中,Logistic Regression单模型分数最高的一支队伍,这与大部分Top10队伍仅仅使用GBRT,Random Forest为主的树模型算法有较大区别。在后期发现,由于LR为代表的线性模型和GBRT为代表的树模型预测结果重合度较低,所以在模型融合阶段,仅仅使用了简单的不同类别模型线性加权和同类别模型多次抽样平均(Bagging)的方法融合了GBRT和LR两个模型就获得了较单LR或单GBRT明显的提升。
在特征抽取方面,以业务理解为主,采取人工端只增不删的原则,对于稍有业务含义的特征均直接加入模型,对于关联性较大的特征之间并不做去重,以保证足够多的信息能被模型使用,加强模型的拟合能力。在机器端使用例如L1正则化的手段来间接将机器自动化特征选择融入模型以降低过拟合的风险。这样既能保证效果又能降低人力成本。除此之外,由于线上和线下的数据的获取时间不同,尽量选取随时间变化较为稳定的特征以保证线上和线下数据分布的一致性,对于确实分布不一致但又比较重要的特征,需要尝试单独进行特殊转换处理。
由于整体算法框架简单,人工trick使用较少,鲁棒性较高,在最后一星期更换数据集后一直稳定在第5名左右,F1分数在6.12左右,是更换数据集之后分数提升最大的队伍之一,而换数据集之前3个月从未进入过前10名。是前10名队伍中唯一的一匹”黑马”。
CSDN:谈谈比赛感想。
清水湾沙滩青年流浪者:在大赛平台方面,在高校进行研究往往使用的是小数据,并且即使有大数据也完全没有并发量达到1000以上的集群让我们来跑大数据。此次比赛最大的特点就是“大数据”+“大平台”。相当于带领我们走进了一个全新的实验环境,拉近了我们与实际工业生产的距离,这对于激发学生的相关领域科研兴趣有促进作用。大赛提供的ODPS平台能满足基本的分布式计算和基本机器学习和数据挖掘算法的需求,但是仍然有一定的功能限制,导致不少选手想要自己开发创新性的算法时遇到一定困难,希望今后平台能够进一步完善能满足各种需求的编程接口。
在能力提升方面,我认为参加此次比赛对解决实际问题能力的提升有很大帮助。在学校做科学研究,往往过分强调创新,以创新为出发点,为了强调工作的创新性,往往忽略了创新的合理性和效果比较的严谨性,在撰写学术文章时,往往也只是说好不说坏,逐渐产生了一种学术bias,文章看多了有时会觉得很糊涂,感觉每篇文章都像是best paper,难以分出高下。而做真实大数据的比赛,不以创新为出发点,而是从实际效果出发,选择最合理的方法,着重考察学生应用所学知识解决问题的能力,在分享交流时,好的方法可以交流,不好的方法走过的坑也可以拿出来分析探讨。希望今后学术界的创新精神和工业界的效果务实精神能有一个有机结合。
大赛建议方面,一是希望大赛平台能更加完善,开放更多接口使大家能更好的实现自己的原创算法。二是希望能更多的介绍赛题的业务背景,激发大家对赛题的兴趣,也是让大家明白自己到底在做什么。