导读
机器学习在当下早已成为一项热门的技术,在众多机器学习算法中,除去深度学习和强化学习等最新发展方向,若是谈及经典机器学习算法,那么集成学习算法无论是在效果上还是热度上都是当之无愧的焦点。今天本文就来简要介绍那些经典的集成学习算法。
集成学习算法的三大派系
所谓集成学习,顾名思义,就是集成多个基学习器的结果,采用一定的融合机制得到一个更为精准和稳定的结果。这其中,隐藏一个重要条件是:多个基学习器的学习结果要存在差异性,否则如果基学习器结果完全相同则无论用何种融合策略都得不到更好的集成结果。按照对多个基学习器集成策略和融合机制的不同,集成学习主要包含三大派系:
01 bagging
bagging,基本套路就是以多取胜。通过并行训练多个独立的基学习器,而后对所有基学习器预测结果进行融合,得到最终的集成预测结果。这里,为了保证集成学习结果优于基学习器,则要求多个基学习器预测结果不同,而达成这一目的的方法一般就是采样:通过行采样或者列采样来得到不同的训练集,进而每个基学习器的训练结果都不同。根据行采样和列采样方式的不同,bagging流派又分为以下4种方法:
02 boosting
如果说bagging的基本套路是以多取胜,那么boosting的基本套路则是车轮战!即boosting采取逐个基学习器递进训练的方式进行,通过不断弥补前面基学习器存在的短板和问题,来实现最终整体效果上的提升。这里,针对弥补短板的不同,boosting其实也存在两大方法:
二者都是针对前一轮训练的弱点,加以针对性的弥补以实现训练得到更好的学习器。方法论是一致的,但当下的发展热门程度则天差地别。目前来看,Adaboost应用场合相对较为有限,并大有逐渐淡出大众视野的趋势,而GBDT的思想则更为火热,并日益衍生更多的迭代改进版本,例如当下最火热的三大集成学习算法就都是基于GBDT的改进提升:
总体来看,以Xgboost、Lightgbm和Catboost为代表的boosting集成学习流派才是机器学习领域的焦点之战,也基本代表了经典机器学习算法的研究方向和热点聚焦。
从另一个角度来看,这三种算法也可视做分别源于中、美、俄……好吧,大国之争果真无处不在!
03 Stacking
Stacking的思想其实可视为bagging+boosting的混合体,即先并行训练多个基学习器,而后以多个基学习器的训练结果为特征数据,进一步训练第二阶段的学习器,以期得到更为精准的结果。当然,照此流程,其实还可以训练第三波第四波,这就真的好似深度神经网络了……不过,可能也正因为其思想过于贴近于深度神经网络,所以Stacking方式的集成学习其实并未得到广泛应用。