这是我参与8月更文挑战的第10天,活动详情查看:8月更文挑战
算法简介
Bagging
Bagging是一种集成学习思想,他的集合策略也比较简单:对于分类问题,通常使用简单投票法,得到票数最多的类别为最终的输出。由于Bagging算法每次都进行采样来训练模型,因此泛化能力很强,对于降低模型的方差很有作用。
随机森林
了解Bagging后,我们就能理解什么是随机森林了。它由“随机”和“森林”两部分组成。森林顾名思义是由多颗树组成,每棵(决策)树都是一个分类器,对于一个输入样本,K棵树会有K个分类的结果。随机森林集成了所有的分类结果,并将投票结果最多的类别指定为最终的输出。随机森林本身的主要思想在于随机性,通过随机性,提高模型的泛化能力,主要体现在以下三个方面:
- 对训练样本的随机采样
- 对属性的随机采样
- 基于随机采样的属性的决策树构造 关于随机森林的基本单元(决策树)的相关概念已经在上一章节详细描述了,如果您还没学习过决策树,可以查看我们上一章节的内容。
优缺点
优点
- 随机森林能够解决分类与回归两种类型的问题,并且在这两方面都有较好的表现
- 随机森林实现简单,训练速度快,对于大样本训练有天然优势
- 子数据集的构造采用有放回式抽样,减小过拟合风险。
- 随机选择基学习器决策树节点划分特征,在高维时,仍然能高效的训练模型,对部分特征缺失不敏感
- 在训练后,可以给出各个特征对于输出的重要性
缺点
- 对于有不同取值的属性的数据,取值划分较多的属性会对随机森林产生更大的影响,所以随机森林在这种数据上产出的属性权值是不可信的。
- 随机森林虽然对于缺失值不敏感,但是对于噪音比较敏感,在某些噪音较大的分类或回归问题上会过拟合
代码实现
同样,我们以鸢尾花数据集进行代码实例操作。