Bagging
https://www.cnblogs.com/pinard/p/6156009.html
原理
有放回的M次随机从数据集中抽取N个样本为训练集,假设得到了M个训练集,就训练M个弱分类器,弱分类器之间没有依赖关系。之后总结M个弱分类器的结果。分类问题直接选取得票数最多的类别作为最后结果。回归问题对T个弱学习器得到的回归结果进行算术平均。
out of bag
对于这部分大约36.8%的没有被采样到的数据,我们常常称之为袋外数据(Out Of Bag, 简称OOB)。这些数据没有参与训练集模型的拟合,因此可以用来检测模型的泛化能力。
袋外数据的计算,假设有数据集又m个样本,每次每个样本被取到的概率为1/m,不被取到的概率为(1-1/m),假设取n次数据,当n越到,趋近于无穷的时候,(1-1/m)^n的结果趋近于0.368。
RF
- 又放回随机采样
- 弱分类器可以换,使用决策树或神经网络,一般使用cart树作为弱分类器
- 在随机采样的样本中,所有n个特征随机选取m部分,在从m部分中选最好的特征建立子树。如果nsub=n,则此时RF的CART决策树和普通的CART决策树没有区别,nsubnsub越小,则模型约健壮,当然此时对于训练集的拟合程度会变差。也就是说nsub越小,模型的方差会减小,但是偏倚会增大。在实际案例中,一般会通过交叉验证调参获取一个合适的nsubnsub的值
- 如果是分类算法预测,则T个弱学习器投出最多票数的类别或者类别之一为最终类别。如果是回归算法,T个弱学习器得到的回归结果进行算术平均得到的值为最终的模型输出
- 有36.8%可能不能被采集,作为测试集
- 除了做回归和分类,还可以做特征转换和异常点检测
- 泛化能力强,对降低方差有作用,但是偏倚比较大