本节简单介绍下随机森林。前面花了两节详细介绍过决策树的核心内容,这对于理解随机森林算法很重要。
随机森林与SVM应该来说被视为传统机器学习效果最好的两大算法,是值得每个机器学习从业者深入了解的,从最底层的原理到上层的应用,内部的每个核心细节等等。关于SVM的每个细节,先前的文章有介绍,文末也有参考链接。
回归正题,说完决策树,说说随机森林,我们知道决策树是单独的一棵树,是根据所有训练样本的所有特征维度通过重要性属性依次选择构造起来的一个树,通常还是二叉树,也就是一个节点只有左右两个分支。那么随机森林呢,也是有树结构,不同点在于,随机森林是由好多树相互独立并将结果组合起来的一种分类方法。
你可能会问,一组训练样本如果能产生很多决策树,那每个决策树不是一样的吗?如果说用同样的训练样本,同样的特征,理论上确实出来的决策树就是一样的,因此为了保证决策树不一样,随机森林想了个办法,大的原则就是保证进入训练的单棵决策树的样本不一样(包括样本数量,样本的特征维度,以及其他都可以影响训练模型不一样的因素)。
(1)从特征维度上不一样。如果用于训练的所有样本特征维度是一样的,通常得到的树结构就比较像,既然如此,弄成不一样的不就好了,具体操作上,对于不同的树,对原始样本随机选择一定的特征维度当成新的训练样本维度,其他的没被选择在这一棵树训练阶段丢掉。比如样本有0-9这10个不同维度的特征。那么决策树1随机选择5个维度,比如恰好选到了(0,1,4,5,7),而决策树2也随机选择5个