原创:晏茜
资料来源:Mozak
竞赛无论对于在校生亦或是在职的同学,都是一种非常好的学习方式。为什么数据人才要参加竞赛呢?首先,Kaggle,天池,百度的飞桨等竞赛平台为数据人才提供了优质的竞赛环境;其次,竞赛是符合国家政策导向的,2021年《十四个五年规划和 2035 年远景目标纲要》中明确提出,强化国家战略科技力量,加快数字化发展的发展目标;除此之外,面对社会对数据人才的广泛需求,数据人才更应紧跟技术发展与产业升级的脚步,了解竞赛对于个人成长与发展的价值,积极参与竞赛。
本文主要围绕树模型与集成学习的相关内容展开讲解,旨在为想要参加竞赛或希望提高竞赛分数的同学提供一定的技术指导。
1. 集成学习介绍
1.1 集成学习是什么?
集成学习(Ensemble Learning)是集合多个学习算法以提高模型的效果,是机器学习中重要的一类方法。很多高阶机器学习模型(随机森林、XGBoost)和深度学习都包含了集成学习思想。
那么集成学习到底是什么呢?集成学习其实是一类机器学习的算法,你可以把它理解为一种训练思路,而并不是某一个单独的算法。集成学习的一个关键点就在于它集合了多个学习算法。如果我们有了多个模型,每个模型有它各自的多样性,通过集成学习,我们能够得到一个更好的精度。
1.2 集成学习有哪些分支?
集成学习在我们的日常生活是十分常见的,比如投票选班长或者通过多次摇骰子来进行投票,其实都体现了集成学习的思想。常见的集成学习类型有 Bagging、Boosting、Stacking 三种。这里会逐一为大家介绍这三种集成学习的类型。
Bagging
我们在学习机器学习基础的时候,在教材中,比如周志华的西瓜书,都会讲到 Bagging 这种集成学习的类型。Bagging 基于“民主”的集成思路,并行训练多个模型。这里的“民主”是什么意思呢?是每个机学习器都是相互平等的。而正是由于我们的机器学习的平等独立的特性,才使得 Bagging 能够进行并行的训练,不需要做串行的训练。Bagging 的用法是在训练过程中训练多个模型,然后对预测结果进行集成。Bagging 的优点是可以减少误差中的方差项(variance),它能够降低模型预测结果的误差。它的缺点是增加了时间的开销,且需要模型具备多样性,由于是并行训练,它需要有较大的计算资源