什么是随机森林
随机森林是一种由决策树构成的集成算法,在很多情况下都有不错的表现。
在解释随机森林前,需要先提一下决策树。决策树是一种很简单的算法,他的解释性强,也符合人类的直观思维,是一种基于if-then-else规则的监督学习算法。
随机森林是由很多决策树构成的,不同决策树之间没有关联。当我们进行分类任务时,新的样本输入,就让森林中每一棵决策树分别进行判断和分类,每个决策树会得到一个自己的分类结果,决策树分类结果中哪一个分类最多,那么随机森林就会把这个当做最终结果。
构造随机森林的4个步骤
1.假如有N个样本,则有放回的随机选择N个样本(每次随机选择一个样本,然后返回继续选择)。这选择好了的N个样本用来训练一个决策树,作为决策树根节点处的样本。
2.当每个样本有M个属性时,在决策树的每个节点需要分裂时,随机从这M个属性中选取m个属性,满足条件m<<M.然后从这m个属性中采用某种策略(比如说信息增益)来选择一个属性作为节点的分裂属性。
3.决策树形成过程中每个节点都要按照步骤2来分裂(很容易理解,如果下次该节点选出来的那一个属性是刚刚父节点分裂时用过的属性,则该节点已经达到叶子节点,无需继续分裂了)一直到不能再分裂为止。注意决策树形成过程中没有进行剪枝。
4.按照步骤1-3建立大量的决策树,这样就构成了随机森林。
随机森林的优缺点
优点:
1.它可以出来很高维度(特征很多)的数据,并且不用降维,无需做特征选择。
2.它可以判断特征的重要程度
3.可以判断出不同特征之间的相互影响
4.不容易过拟合
5.训练速度比较快,容易做成并行方法
6.实现起来比较简单
7.对于不平衡的数据集来说,它可以平衡误差
8.如果有很大部分的特征遗失仍可以维持准确度
缺点:
1.随机森林已经被证明在某些噪音较大的分类问题或回归问题上会过拟合
2.对于有不同取值属性的数据,取值划分较多的属性会对随机森林产生更大的影响,所以随机森林在这种数据上产生的属性权值是不可信的