bagging原理
bagging算法流程
输入为样本集,弱学习器算法, 弱分类器迭代次数T。
输出为最终的强分类器
1)对于t=1,2…,T:
a)对训练集进行第t次随机采样,共采集m次,得到包含m个样本的采样集
b)用采样集 训练第m个弱学习器
2) 如果是分类算法预测,则T个弱学习器投出最多票数的类别或者类别之一为最终类别。如果是回归算法,T个弱学习器得到的回归结果进行算术平均得到的值为最终的模型输出。
- 随机森林算法
理解了bagging算法,随机森林(Random Forest,以下简称RF)就好理解了。它是Bagging算法的进化版,也就是说,它的思想仍然是bagging,但是进行了独有的改进。我们现在就来看看RF算法改进了什么。
首先,RF使用了CART决策树作为弱学习器,这让我们想到了梯度提示树GBDT。第二,在使用决策树的基础上,RF对决策树的建立做了改进,对于普通的决策树,我们会在节点上所有的n个样本特征中选择一个最优的特征来做决策树的左右子树划分,但是RF通过随机选择节点上的一部分样本特征,这个数字小于n,假设为 ,然后在这些随机选择的
个样本特征中,选择一个最优的特征来做决策树的左右子树划分。这样进一步增强了模型的泛化能力。
如果 ,则此时RF的CART决策树和普通的CART决策树没有区别。 越小,则模型约健壮,当然此时对于训练集的拟合程度会变差。也就是说 越小,模型的方差会减小,但是偏倚会增大。在实际案例中,一般会通过交叉验证调参获取一个合适的
的值。
除了上面两点,RF和普通的bagging算法没有什么不同, 下面简单总结下RF的算法。
输入为样本集
,弱分类器迭代次数T。
输出为最终的强分类器
1)对于t=1,2…,T:
a)对训练集进行第t次随机采样,共采集m次,得到包含m个样本的采样集
b)用采样集 训练第m个决策树模型
,在训练决策树模型的节点的时候, 在节点上所有的样本特征中选择一部分样本特征, 在这些随机选择的部分样本特征中选择一个最优的特征来做决策树的左右子树划分
2) 如果是分类算法预测,则T个弱学习器投出最多票数的类别或者类别之一为最终类别。如果是回归算法,T个弱学习器得到的回归结果进行算术平均得到的值为最终的模型输出。