树模型之Bagging总结

Bagging vs. Boosting

Bagging和Boosting是树模型集成的两种典型方式。Bagging集成随机挑选样本和特征训练不同树,每棵树尽可能深,达到最高的精度。依靠小偏差收敛到理想的准确率。Boosting算法注重迭代构建一系列分类器, 每次分类都将上一次分错的样本的权重提高,依靠弱模型和多次迭代达到最高精度。

QA

  • 为什么Bagging模型使用强模型?
      bagging的方式要求有大量的模型,模型越多效果的方差越小, 结果越接近平均水平, 所以只要保证单个模型的偏差就可以保证整体效果, 所以要求单模型的性能越强越好.
  • 为什么Boosting 使用弱模型?
      Boosting模型都针对分错的样本进行优化,所以每个基分类器的准确率是能够得到保证的也就是说偏差较小, 所以只要保证方差小就可以保证整体效果. 如果是强模型的话,基分类器的个数越多,方差越大. 但是弱分类的方差会稍微比强基分类器的方差小一点.

Random Forest

RandomForest是一种典型的bagging集成算法。训练时,针对样本,会随机抽取不同的样本和特征训练不剪枝的CART树,一直训练到达到预定义的基分类器个数。对于输出,针对分类问题,预测结果是各个基分类器的投票,针对回归问题,预测结果是各个分类器的输出结果的平均值。

模型评价 (准确率 \时间 \空间 \模型复杂程度 \过拟合 \噪声影响 \是否可并行化 \调参)

  1. 准确率: 相比GBDT算法,它默认参数的效果不错,可以很好地作为baseline模型
  2. 时间: 时间复杂度主要取决于数据集的复杂程度,如果数据集很复杂的话, 需要100-200棵树, 如果不复杂的话,一般10-100棵树就好
  3. 空间:空间复杂度因为需要训练大量的树, 所以很耗内存.
  4. 模型复杂度: 模型很简单
  5. 过拟合: 每次采取部分的样本, 所以在树的深度和树的数量不过分的情况下, 是不会出现过拟合现象的.
  6. 噪声影响: 采取随机采取的方式,不一定会采到特征, 所以抗噪声能力很好
  7. 是否可并行化: 因为树模型之间无关联,所以可以并行化.
  8. 调参: 树的棵树, 层数, 特征数量, 叶子节点的最少样本数量, 内部节点的最少样本数量,

优点

  1. 支持多种树集成,可以形成强大的异构集成算法
  2. 在随机挑选样本和特征,可以减少异常点的影响,降低过拟合

缺点

耗时耗内存:每个基分类器的准确率不是很高,所以要求有大量的基分类器才能取得良好的效果,分界线是100,所以整体的训练时间很长,一般适合小数据训练

QA

  • 为什么RF不用后剪枝,但是实现了预剪枝?
      方差和偏差的角度
  • 为什么要用随机采取样本和特征的方式?
      优点:样本数量,模型差异化;
      缺点:欠拟合(配合强分类就可以效果很好)
  • 为什么可以并行化?
      模型之间没有关联
  • RF使用的是什么树?
      可以是分类树也可以是回归树,评价指标分别是gini指数和均方差和
  • RF对输入数据有什么要求吗?
      连续特征可以直接用,离散特征需要处理成labelhot或者onehot

调参小结

主要调节树的棵树和深度、选择样本和特征的比例

  1. 相比GBDT的默认输出,RF的默认参数要好一些。
  2. 先调节分类器个数从10:200的范围内挑,但是一般数据较小的话,10:100就可以了
  3. 在调节最大深度,调节最大深度要和内部节点的最小样本数量一起调,最大深度的范围[3-20],节点的最小样本数量范围[50,200]
  4. 在调节内部节点的最少样本数量和叶子节点的最少样本数量,范围分别是[80,150],[10,50]
  5. 最后调节特征数量,一般是[0.5,0.8]
posted @ 2020-02-29 14:38  小小小的程序猿  阅读(1353)  评论(0编辑  收藏  举报
window.onload = function(){ $("#live2dcanvas").attr("style","position: fixed; opacity: 0.7; left: 70px; bottom: 0px; z-index: 1; pointer-events: none;") }