素手烹茶|「小白学ML」随机森林 大全解( 二 )

6 随机森林的特点6.1 优点

  1. 在当前的算法中 , 具有极好的准确率
  2. 能够运行在大数据上
  3. 能够处理具有高维特征的输入样本 , 不需要降维
  4. 能够计算各个特征的重要度
  5. 能够防止过拟合
  6. 其实在一些大数据竞赛中 , 随机森林也是我第一个会尝试的模型哦~
6.2 bias 与 variance说到机器学习模型的误差 , 主要就是bias和variance 。
  • Bias:如果一个模型的训练错误大 , 然后验证错误和训练错误都很大 , 那么这个模型就是高bias 。 可能是因为欠拟合 , 也可能是因为模型是弱分类器 。
  • Variance:模型的训练错误小 , 但是验证错误远大于训练错误 , 那么这个模型就是高Variance , 或者说它是过拟合 。

素手烹茶|「小白学ML」随机森林 大全解这个图中 , 左上角是低偏差低方差的 , 可以看到所有的预测值 , 都会落在靶心 , 完美模型;
【素手烹茶|「小白学ML」随机森林 大全解】右上角是高偏差 , 可以看到 , 虽然整体数据预测的好像都在中心 , 但是波动很大 。
【高偏差vs高方差】
在机器学习中 , 因为偏差和方差不能兼顾 , 所以我们一般会选择高偏差、低方差的左下角的模型 。 稳定性是最重要的 , 宁可所有的样本都80%正确率 , 也不要部分样本100%、部分50%的正确率 。 个人感觉 , 稳定性是学习到东西的体现 , 高方差模型与随机蒙的有什么区别?
6.3 随机森林降低偏差证明上面的可能有些抽象 , 这里用RandomForest(RF)来作为例子:随机森林是bagging的集成模型 , 这里:
  • RF(x)表示随机森林对样本x的预测值;
  • B表示总共有B棵树;
  • 表示第i棵树所使用的训练集 , 是使用bagging的方法 , 从所有训练集中进行行采样和列采样得到的子数据集 。
这里所有的 , 都是从所有数据集中随机采样的 , 所以可以理解为都是服从相同分布的 。 所以不断增加B的数量 , 增加随机森林中树的数量 , 是不会减小模型的偏差的 。 【个人感觉 , 是因为不管训练再多的树 , 其实就那么多数据 , 怎么训练都不会减少 , 这一点比较好理解】
【RF是如何降低偏差的?】 直观上 , 使用多棵树和bagging , 是可以增加模型的稳定性的 。 怎么证明的?
我们需要计算
假设不同树的之间的相关系数为,然后每棵树的方差都是.
先复习一下两个随机变量相加的方差如何表示:
  • Cov(X,Y)表示X和Y的协方差 。 协方差和相关系数不一样哦 , 要除以X和Y的标准差:
下面转成B个相关变量的方差计算 , 是矩阵的形式:
素手烹茶|「小白学ML」随机森林 大全解很好推导的 , 可以试一试 。
这样可以看出来了 , RF的树的数量越多 , RF方差的第二项会不断减小 , 但是第一项不变 。 也就是说 , 第一项就是RF模型偏差的下极限了 。
【总结】
  • 增加决策树的数量B , 偏差不变;方差减小;
  • 增加决策树深度 , 偏差减小;减小 , 增加;
  • 增加bagging采样比例 , 偏差减小;增加 , 增加;
【bagging vs boost】 之前的文章也提到过了boost算法 。
GBDT中 , 在某种情况下 , 是不断训练之前模型的残差 , 来达到降低bias的效果 。 虽然也是集成模型 , 但是可以想到 , 每一个GBDT中的树 , 所学习的数据的分布都是不同的 , 这意味着在GBDT模型的方差会随着决策树的数量增多 , 不断地增加 。