机器学习算法之随机森林

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值