机器学习--006随机森林

517 阅读2分钟

这是我参与8月更文挑战的第10天,活动详情查看:8月更文挑战

算法简介

Bagging

Bagging是一种集成学习思想,他的集合策略也比较简单:对于分类问题,通常使用简单投票法,得到票数最多的类别为最终的输出。由于Bagging算法每次都进行采样来训练模型,因此泛化能力很强,对于降低模型的方差很有作用。

随机森林

了解Bagging后,我们就能理解什么是随机森林了。它由“随机”和“森林”两部分组成。森林顾名思义是由多颗树组成,每棵(决策)树都是一个分类器,对于一个输入样本,K棵树会有K个分类的结果。随机森林集成了所有的分类结果,并将投票结果最多的类别指定为最终的输出。随机森林本身的主要思想在于随机性,通过随机性,提高模型的泛化能力,主要体现在以下三个方面:

  • 对训练样本的随机采样
  • 对属性的随机采样
  • 基于随机采样的属性的决策树构造 关于随机森林的基本单元(决策树)的相关概念已经在上一章节详细描述了,如果您还没学习过决策树,可以查看我们上一章节的内容。

优缺点

优点

  1. 随机森林能够解决分类与回归两种类型的问题,并且在这两方面都有较好的表现
  2. 随机森林实现简单,训练速度快,对于大样本训练有天然优势
  3. 子数据集的构造采用有放回式抽样,减小过拟合风险。
  4. 随机选择基学习器决策树节点划分特征,在高维时,仍然能高效的训练模型,对部分特征缺失不敏感
  5. 在训练后,可以给出各个特征对于输出的重要性

缺点

  1. 对于有不同取值的属性的数据,取值划分较多的属性会对随机森林产生更大的影响,所以随机森林在这种数据上产出的属性权值是不可信的。
  2. 随机森林虽然对于缺失值不敏感,但是对于噪音比较敏感,在某些噪音较大的分类或回归问题上会过拟合

代码实现

同样,我们以鸢尾花数据集进行代码实例操作。