前沿

  上篇博文我们介绍了什么是决策树的算法原理,有不懂的小伙伴可以回到前面看看:传统机器学习笔记4——决策树,这篇博文我们继续来看下传统机器学习算法之随机森林。随机森林是一种由决策树构成的(并行)集成算法,属于Bagging类型,通过组合多个弱分类器,最终结果通过投票或取均值,使得整体模型的结果具有较高的精确度和泛化性能,同时也有很好的稳定性,广泛应用在各种业务场景中。从字面上也能看到随机森林主要有两个特性:随机和森林,一个使它具有抗过拟合能力,一个使它更加精准。在介绍随机森林算法之前,我们先看下什么是集成学习。

一.集成学习

1.1.集成学习

  在训练数据的时候,我们通过训练多个个体学习器,在通过结合策略将他们集成起来,形成一个更强的学习器,就是集成学习。通俗的理解,比如一个班里面有个全能学霸,什么科目都擅长,但是呢又有几个偏科生,他们只擅长一门或者几门学科,那么在考试的时候呢我们就可以让这些偏科生分别做他们擅长的试卷,最终集合成一个完成的所有科目的答案,这就是集成学习的思想,即三个臭皮匠,顶个诸葛亮。

1.2.个体学习器

  上面我们提到个体学习器,他是相对于集成学习的一个概念,我们之前介绍的跟多模型都是个体学习器,比如决策树,逻辑回归,朴树贝叶斯等。个体学习器代表的是单个学习器,集成学习代表的是多个学习器的结合。

1.3.集成学习的核心问题

1.3.1.使用什么样的个体学习器

1.3.2.如何选择合适的结合策略构建强学习器

1.4.Bagging

1.4.1.Bootstrap Sampling

  随机森林是并行模型,Bagging是并行式集成学习方法最著名的代表。下面我们先介绍下Bagging。在介绍Bagging之前,我们还需要了解一个东西,叫做自助采样法,即我们常说的Bootstrap Sampling,什么是自助采样法呢?直接看下面的解释:

1.4.2.Bagging

  BaggingBootstrap aggregating的缩写,是在Boostrap Sampling基础上构建的,上述的采样过程我们可以重复T次,采样出T个含m个训练样本的采样集,然后基于每个采样集训练出一个基学习器,然后将这些基学习器进行结合。在对预测输出进行结合时,Bagging 通常对分类任务使用简单投票法,对回归任务使用简单平均法,这就是Bagging 的基本流程。如下图所示:
传统机器学习笔记5——随机森林-LMLPHP
  从偏差-方差分解的角度看,Bagging主要关注降低方差,因此它在不剪枝的决策树、神经网络等易受到样本扰动的学习器上效用更明显。

二.随机森林

  上面预备知识介绍完,我们正式进入随机森林算法的学习

2.1.随机森林

  随机森林简称RF(Random Forest),是一种基于树模型的Bagging的优化版本,核心思想还是Bagging,只是做了一些特有的改进,即RF使用CART决策树作为基学习器,随机森林算法实现过程如下:

可用如下图所示:
传统机器学习笔记5——随机森林-LMLPHP

2.2.随机森林的特点

  从他的字面意思也能看到,随机森林的两大特点:随机性+森林。随机性主要体现在以下两个方面:
样本扰动:

属性扰动:

集成主要体现为:
  根据多个(差异化)采样集,训练得到多个(差异化)决策树,采用简单投票或者平均法来提高模型稳定性和泛化能力。

随机森林决策边界可视化

  下面是对于同一份数据集(iris数据集),我们使用决策树和不同树棵树的随机森林做分类的结果,我们对其决策边界做了可视化。传统机器学习笔记5——随机森林-LMLPHP
  从上面的图中,可以清晰的看到,随着随机森林中决策树数量的增多,模型的泛化能力逐渐增强,决策边界越来越趋于平滑,即鲁棒性越强。

2.3.随机森林算法的优缺点

优点:

缺点:

2.4.影响随机森林的参数与调优

  上面我们已经系统了解了随机森林的原理与机制,下面我们一起来看看工程应用实践中的一些重点,比如随机森林模型有众多可调参数,它们有什么影响,又如何调优。

2.4.1. 影响参数

生成单颗决策树时的特征数 max_features

决策树的棵树 n_estimators

树深 max_depth

2.4.1.参数调优

RF划分时考虑的最大特征数 max_features:

决策树的棵树 n_estimators:

决策树最大深度 max_depth:

内部节点再划分所需最小样本数 min_samples_split:

叶子节点最少样本数 min_samples_leaf:

至此,关于随机森林的部分已经介绍完了,欢迎各位大佬批评指正。

10-25 19:36