网上有很多关于随机森林优缺点的总结,但是都只是抄来抄去,并没有对这些优缺点作说明,导致有些看不懂。本人根据自己的理解,对某些优缺点做一下说明,如果理解有不对的地方,欢迎大家指正。
随机森林是一个用随机方式建立的,包含多个决策树的分类器。其输出的类别是由各个树输出的类别的众数而定。
随机性主要体现在两个方面:(1)训练每棵树时,从全部训练样本(样本数为N)中选取一个可能有重复的大小同样为N的数据集进行训练(即bootstrap取样);(2)在每个节点,随机选取所有特征的一个子集,用来计算最佳分割方式。
优点
1、 在当前的很多数据集上,相对其他算法有着很大的优势,表现良好
2、它能够处理很高维度(feature很多)的数据,并且不用做特征选择
PS:特征子集是随机选择的
3、在训练完后,它能够给出哪些feature比较重要
PS:http://blog.csdn.net/keepreder/article/details/47277517
4、在创建随机森林的时候,对generlization error使用的是无偏估计,模型泛化能力强
5、训练速度快,容易做成并行化方法
PS:训练时树与树之间是相互独立的
6、 在训练过程中,能够检测到feature间的互相影响
7、 实现比较简单
8、 对于不平衡的数据集来说,它可以平衡误差。
9、如果有很大一部分的特征遗失,仍可以维持准确度。
缺点:
1、随机森林已经被证明在某些噪音较大的分类或回归问题上会过拟
2、对于有不同取值的属性的数据,取值划分较多的属性会对随机森林产生更大的影响,所以随机森林在这种数据上产出的属性权值是不可信的。