一.什么是集成模型
对于几乎所有的分类问题(图像识别除外,因为对于图像识别问题,目前深度学习是标配),集成模型很多时候是我们的首选。比如构建一个评分卡系统,业界的标配是GBDT或者XGBoost等集成模型,主要因为它的效果确实好,而且稳定。还有一点是这些模型的可解释性也很好,不像深度学习模型就像个黑盒子。
那为什么集成模型的可解释性好呢? 这个其实不难理解,因为随机森林或者提升树模型其实是基于决策树的,而且我们知道决策树模型的可解释性本来就很好。集成模型可以简单理解成决策树的集合!
二.集成模型的优势
小时候我们应该都听过这样的一句话 - “三个臭皮匠顶个诸葛亮"。其实也从侧面反映了集成模型的思想,多个人一起决策要优于一个人单干。当然也有可能存在一些特别牛逼的人要远远胜于其他所有人的智慧之和,但毕竟是特例。至少多听取不同的建议会让自己少犯一些愚蠢的错误。
三.构建集成模型
至于构建集成模型,通常有两种方法,一种叫Bagging,另外一种叫Boosting,这是两种完全不一样的方法。在这一章,我们主要来讲解第一种(随机森林是Bagging的一种方法),在之后的章节我们会讲解Boosting的方法。
每个预测会有一个投票,比如说123说A,4说B,每个预测间相互独立!
四.方差和稳定性
在训练模型时,我们的目的是要训练出泛化能力强的模型,这一点我们已经在之前的章节里讲过了。为了一个模型具有较强的泛化能力,我们需要解决模型的过拟合现象。那什么样的模型容易过拟合呢?答案是“不稳定的模型!”,也就是训练出来的模型放在训练数据上表现特别好,但放在真实的线上环境时就不行了。 就好比一个学生平时成绩非常好,但一到关键时刻就不灵了,这种现象可以笼统地理解为不稳定。所以我们的目的是希望训练出一个稳定的模型。
做个总结,多个模型共同预测确实会降低方差,也就意味着提高模型的稳定性。但准确率是不是也会保证提升呢?这个其实不好说,但通常来说集成模型的准确率还是要高于其他简单模型的。但不管怎么样,只要能理解为什么共同决策会降低风险或者增加稳定性,足以帮助理解后续的内容了。
五.随机森林的流程
多样性
只有多样性(Diversity)才能保证随机森林的效果!这一点非常重要。就比如我们在构建团队的时候,也希望每个人有自己的特点,这样可以起到很好的互补作用,补偿取短。那接下来的问题就来了,如何构造出很多具备多样性的决策树 答案在于“随机“!
通过两个方面的随机操作,我们可以得出具备多样性的决策树。这也是为什么我们把它叫作“随机”森林的主要原因。第一种随机化来自于样本的采样,也就是说每一棵决策树来自于不同的训练样本,请看下面的一段视频。
除了样本的随机化,我们在构造每一棵决策树的时候也会随机化特征。回顾之前决策树模型,当我们要选择当前最好的特征作为根节点的时候,我们把所有可能的特征全部尝试了一遍然后选了其中最好的。但在随机森林里,选择特征的时候首先会做采样,比如从100个特征里选择10个,然后从10个当中选择最好的特征作为当前的根节点。 所以,每一次做分裂(split)的时候先要做特征的采样,然后一一做比较,最后选择效果最好的。这两个方面的随机化可以保证带来多样化的决策树。当然除了这两个,还可以设计更多的随机化,但主要还是以这两个为主。
六.随机森林的预测
构建完随机森林之后,我们即可以对新的样本做预测了! 预测过程类似于投票的过程。