随机森林的相关理论知识

文章目录

  • 一、定义
  • 二、概念梳理
    • 1.有监督学习
    • 2.集成学习
    • 3. bootstrap
    • 4. bagging
    • 5. 决策树
    • 6.剪枝
  • 二、实现


一、定义

随机森林 是由多个 决策树 组成的 bagging 算法,bagging是 集成学习 的一种,集成学习是 有监督学习 的一种


二、概念梳理

1.有监督学习

根据已有的数据集,知道输入和输出结果之间的关系。根据这种已知的关系,训练得到一个最优的模型。也就是说,在监督学习中训练数据既有特征(feature)又有标签(label),通过训练,让机器可以自己找到特征和标签之间的联系,在面对只有特征没有标签的数据时,可以判断出标签。
例如:回归问题中的房价预测,用已知的房屋面积、房间朝向、卧室数量等特征和已知的房屋成交价格标签训练一个模型,让机器自己找到房屋特征和房屋成交价格之间的内在联系,从而达到房价预测的目的

2.集成学习

在有监督学习算法中,我们的目标是学习出一个稳定的且在各个方面表现都较好的模型,但实际情况往往不这么理想,有时我们只能得到多个有偏好的模型(弱监督模型,在某些方面表现的比较好)。集成学习就是组合这里的多个弱监督模型以期得到一个更好更全面的强监督模型,集成学习潜在的思想是即便某一个弱分类器得到了错误的预测,其他的弱分类器也可以将错误纠正回来。

集成学习在各个规模的数据集上都有很好的策略,如下:

  1. 当数据集足够大时:划分成多个小数据集,学习多个模型进行组合
  2. 数据集较小时:利用bootstrap方法进行抽样,得到多个数据集,分别训练多个模型再进行组合

3. bootstrap

bootstrap也称为自助法,它是一种有放回的抽样方法,目的为了得到统计量的分布以及置信区间。具体步骤如下:

  1. 采用重抽样方法(有放回抽样)从原始样本中抽取一定数量的样本
  2. 根据抽出的样本计算想要得到的统计量T
  3. 重复上述N次(一般大于1000),得到N个统计量T
  4. 根据这N个统计量,即可计算出统计量的置信区间

4. bagging

Bagging是bootstrap aggregating的简写
在Bagging方法中,利用bootstrap方法从整体数据集中采取有放回抽样得到N个数据集,在每个数据集上学习出一个模型,最后的预测结果利用N个模型的输出得到。
具体到不同类型的问题采取如下策略↓

  1. 分类问题:采用N个模型预测投票的方式
  2. 回归问题:采用N个模型预测平均的方式

5. 决策树

决策树是一种树形结构,其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一种类别。
在决策树算法中,有对应的剪枝算法。将比较复杂的决策树,化简为较为简单的版本,并且不损失算法的性能。

6.剪枝

剪枝是决策树算法应对过拟合的一种策略,因为在学习过程中,决策树根据训练样本进行拟合,生成了针对于训练数据集精确性极高的模型。但是训练数据集,不可避免是一种有偏的数据。所以我们为了提高决策树的泛化性能,采取了剪枝的策略。使得决策树不那么对于训练数据精确分类,从而适应任何数据。

剪枝的策略可以分为预剪枝和后剪枝两种↓

概念

  1. 预剪枝:对每个结点划分前先进行估计,若当前结点的划分不能带来决策树的泛化性能的提升,则停止划分,并标记为叶结点。
  2. 后剪枝:现从训练集生成一棵完整的决策树,然后自底向上对非叶子结点进行考察,若该结点对应的子树用叶结点能带来决策树泛化性能的提升,则将该子树替换为叶结点。

优缺点

  1. 预剪枝
    优点:思想简单,算法高效,可以降低过拟合风险,减少训练时间。
    缺点:可能存在欠拟合的风险。
  2. 后剪枝
    优点:欠拟合风险小,泛化能力优于预剪枝。
    缺点:相较于预剪枝,训练开销大。

二、实现

将训练样本用bootstrap方法有放回地随机抽取k个新的自助样本集,并由此构建k棵决策树,再根据每棵树的决策结果进行综合判断。

代码部分可以参考这篇文章
https://blog.csdn.net/weixin_43721000/article/details/131600072

你可能感兴趣的:(机器学习,Python,随机森林,算法,机器学习)