随机森林(Random Forest,RF)是一种简单易用的机器学习算法。即使在没有超参数调整的情况下,随机森林在大多数情况下仍可获得还算不错的结果。可用于分类任务和回归任务,是常用的机器学习算法之一。
一、随机森林原理
1、基本思想
随机森林是一种监督学习算法,它构建的“森林”是决策树的集合,通常使用Bagging算法进行集成。随机森林首先使用训练出来的分类器集合对新样本进行分类,然后用多数投票或者对输出求均值的方法统计所有决策树的结果。由于森林中的每一棵决策树都具有独立性,因而可以通过投票和求平均值的方法获得比单棵决策树更好的性能。
2、Bagging算法
由于随机森林通常采用Bagging算法对决策树进行集成,因此有必要了解Bagging算法的工作流程与原理。某些分类器的分类准确率有时只稍好于随机猜测,这样的分类器称为弱分类器。为了提高分类器的性能,通常使用集成学习(EnsembleLearning)的方法将若干弱分类器组合之后生成一个强分类器。Bagging算法和Boosting算法是集成学习领域的基本算法。
(1)Bagging算法的流程
Bagging算法的流程分为训练和测试两个阶段。
(1)训练阶段
从原始训练集中使用Bootstrapping抽样方法先随机抽取N个训练样本,之后把这N个训练样本放回原训练集,共进行k轮抽取,得到k个训练子集。使用这k个训练子集,训练k个基础模型(基础模型可以是决策树或神经网络等)。
(2)测试阶段
对于每个测试样本,都使用所有训