随机森林

随机森里名字听起来很厉害,实际上就是由多个决策树构成,同时决策树之间是没有关联的,主要的分析过程就是,利用多个决策树分别对输入数据进行处理,每棵树都得到自己的结果,然后哪个结果多,就把它作为随机森林的最终结果。

接下来我们来讨论一下怎么构建随机森林,主要就是怎么构建决策树,其实基本过程和构建一棵决策树是接近的,不同的地方有几点:第一,构建每棵决策树所用到的数据(样本),是通过有放回抽样从原始样本集合中抽取的,所以每个决策树的训练数据都不同;第二,对一个节点进行特征选择的时候,并不是考虑所有的特征,而是只是随机从M个特征中选择N个(N远小于M)。个人觉得,这两个不同点,目的都是让不同的决策树差异大一点,不然大家都用同样的数据,进行同样的特征选择,那么最后生成的决策树当然是一样的。

那么,为什么生成多个不同的决策树,集合在一起构成随机森林,会比单个决策树更好呢,这涉及到集成学习的思想,不同的决策树可以认为是重点分析某些特征,从不同的角度出发分析问题,最后结合多个决策树,推导出结果,就可以认为这个分析过程更全面合理。其实在深度学习中,这种方法更常见,比如CNN构建多个通道,不同通道学习不同特征,最后结合起来做推断,比如transformer中的multi-head attention,为什么head要multi,还是为了提取不同特征进行综合分析。

总的来说,随机森林的优点首先就是实现简单,训练速度快,相比单个决策树没那么容易过拟合,还可以判断出不同特征之间的相互影响,判断特征的重要程度,当然缺点还是有的,有实验证明随机森林在某些噪声较大的分类或回归问题回过拟合。