从0开始如何用一个月杀进机器学习比赛Top25%

比赛介绍

为贯彻习近平主席在十九大报告中关于“推动互联网、大数据、人工智能和实体经济深度融合”以及“善于运用互联网技术和信息化手段开展工作”等讲话精神,引导高校在校生学习掌握计算机与互联网知识,提高计算机的技能应用,中国软件行业协会培训中心将举办全国大学生计算机技能应用大赛。大赛旨在增强广大在校大学生的IT应用技能,对于进一步落实学校培养应用型人才的目标要求,培育创新创业人才、促进产学研相结合有着重要意义。
当今社会,房屋租金由装修情况、位置地段、户型格局、交通便利程度、市场供需量等多方面因素综合决定,对于租房这个相对传统的行业来说,信息严重不对称一直存在。一方面,房东不了解租房的市场真实价格,只能忍痛空置高租金的房屋;另一方面,租客也找不到满足自己需求高性价比房屋,这造成了租房资源的极大浪费。
本次计算机技能大赛中的大数据赛题将基于租房市场的痛点,提供脱敏处理后的真实租房市场数据。选手需要利用有月租金标签的历史数据建立模型,实现基于房屋基本信息的住房月租金预测,为该城市租房市场提供客观衡量标准。

比赛收获

首先是要感谢在这次比赛中给自己提供很多帮助的开源组织ApacheCN
传送门:https://github.com/apachecn

在参加比赛之前自己是一个仅仅学习了Pandas,Numpy和Matplotlib的小白,并不知道如何做特征工程的处理和选择合适的模型,只是在参加比赛的过程中慢慢的去学习,翻阅了各种博客学习如何处理数据集,如何选择合适的模型和如何给模型调参等等。在类似的比赛和以后的必须立足于数据,只有将特征工程做到完美的处理误差才会变得更小。

那么如何优雅的入坑机器学习呢?

放弃海量的学习资料,估计每个准备开始机器学习的小伙伴都会收集很多资料什么机器学习内部资源、机器学习从入门到进阶百 G 资源、xx 人工智能教程等等,好像这百G资料只会在自己的云盘里安静的躺着,当然自己会获得短暂的满足感和安全感,慢慢的面对着海量的学习资料会迷失自己,就是选择越多,越容易让人陷入无从选择的困境。所以第一步就是放弃海量的学习资料,选择一门真正适合自己的资料。
在自己的机器学习之路的入门资料是台大林轩田《机器学习基石》课程由浅入深、内容全面,基本涵盖了机器学习领域的很多方面,同时结合了黑马的相关课程去学习XGB模型。想要资源的小伙伴可以加我微信。

机器学习是一门融合概率论、线性代数、凸优化、计算机、神经科学等多方面的复杂技术在学习过程中不要急于求成,不要求快,没有捷径。自己首先有个心理预期,数学好的入门也得一年半载的,数学需要补基础的估计要1-2年。可以去上培训班,交点钱,但也就跟机器学习混个脸熟。想入门还得花时间慢慢磨,真的没捷径,真的没捷径,真的没捷径!放下脚步慢慢来。

机器学习理论基础知识固然重要,但是在我看来兴趣和好玩更为重要。比如我学习爬虫的时候不会先去看基础知识,先是在网上找一个自己觉着好玩的爬虫实战亲手去实现体验其中的乐趣,带着这份喜悦去学习基础知识并且查漏补缺。机器学习是枯燥无味的不如自己先搭建一个简单模型,带着积极的心态开始这场旅行。

多跟优秀的人交流一个人可以走的很快但是一群人可以走得很远,这次比赛虽然组了队基本是自己单枪匹马的码代码,队友基本没有提供帮助,通过做公众号的人脉认识了几个机器学习的大神,在自己遇到瓶颈的时候跟他们交流一下,对方可以一针见血的指出自己问题所在。

永远不要迷信某个特定的模型,不要因为random forest在某个任务上效果好,就以后遇到什么任务都上random forest;也不要觉得深度学习就是万能的,什么都可以套神经网络解决;不要看到比赛里面大家整天用xgboost就整人云亦云地复制。学各种算法的时候,书上一般会告诉你这个算法有balabala优点一堆,但是一般不会告诉你这个算法也有balabala一堆缺点,这次比赛我花了蛮长时间在这个坑里,去熟悉各种模型的特性,最后选择了XGB这个模型。

选择规模中等的公开数据集,实战。一般有两个目的,首先是验证或纠正你前面学习的理解,其次是尝试解决实际问题。在着手参加比赛的之前对将kaggle泰坦尼克号过了一边,记录了几个对房价预测比赛可以用得到的点。

一个月的时间自己仅仅是学习了机器学习中的一点皮毛,在未来机器学习的旅途中已经给自己做了一个规划。入门阶段自己会继续学习台大林轩田《机器学习基石》《机器学习技法》和吴恩达《深度学习专项课程》的课程。学完这部分课程以后的方向还没有确定进不管是CV方向,还是NLP方向,都希望自己能有所收获。

基本就这样自己会学习前几名的代码并且继续去优化自己的代码,下次推文会更新这次比赛的代码,并做详细的讲解。

相关推荐