机器学习算法之随机森林

本文介绍了bootstrap方法,一种通过有放回地抽取样本构建新数据集的技术,并解释了其在bagging和随机森林中的应用。随机森林是一种bagging的特殊形式,使用CART决策树作为基模型,通过特征随机性和样本随机性降低过拟合风险。

bootstrap
一批数据有m个样本,有放回的抽取m次,形成一个新的数据集,这种方法就是bootstrap。
新的数据集肯定是包含一些重复的数据,假设一条数据没有被抽中的概率为1−1m1-\frac{1}{m}1m1mmm次抽取均未抽到的概率为(1−1m)m(1-\frac{1}{m})^m(1m1)m,当mmm趋近与无穷大的时候,值为1e\frac{1}{e}e1,即36.8%。也就是说会有36.8%的数据没有被抽中,这些数据被称之为oob(out of bag),可以用作交叉验证。
bagging
全称bootstrap aggregating,采用bootstrap的方法获取k个新的数据集,使用这些新的数据集来建立k个模型,然后集成k个模型的输出结果。回归问题使用k个输出结果的均值作为最终的输出结果,分类问题采取投票方法作为最终的输出结果
随机森林
随机森林是一种特殊的bagging方法,它以CART决策树作为基模型,使用bootstrap方法形成k个新的数据集,再使用这k个新的数据集来训练CART决策树,在训练CART决策树的过程中不会使用全部的特征来训练,而是随机选择若干个特征来训练,随机选择的特征数越小,模型越健壮,可以通过交叉验证来选取合适的特征数,假如总特征数为xxx,一般选取的特征数为x\sqrt{x}x。由于bootstrap选择样本的随机性以及这里选择特征的随机性,大大降低了随机森林模型过拟合的风险,降低了随机森林模型的方差。对于回归问题而言,主模型的输出是若干个CART基模型输出的均值;对于分类问题而言,主模型的输出是若干个CART基模型输出的投票结果。
随机森林的CART基模型严格来讲并不是一个弱模型,这一点与boosting算法不同。算法的误差来自于偏差+方差,模型越复杂,偏差越小,方差越大,反之亦然。在随机森林中,由于样本选择的随机性以及特征选择的随机性,导致了每一个模型的偏差很大,所以需要适当的加深树的深度,即增强基模型,来减少基模型的偏差,从而减少总体误差。
优点

  1. 可以并行训练,在数据量大的时候优势比较大
  2. 很大程度上防止过拟合
  3. 对于部分缺失特征不敏感(单独作为一类)
  4. 训练之后可以得到特征的重要性
  5. 可以处理高维数据,且不需要做特征选择,不需要对数据进行规范化,既能处理连续数据,也能处理类别数据
  6. 由于本身不是线性模型,因此可以拟合非线性数据
  7. 由于有oob,不需要划分验证集
    缺点
    1.对于某些噪音比较大的数据容易过拟合
    2.取值划分比较多的特征容易对RF的决策产生更大的影响,从而影响拟合的模型的效果
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值