山东大学机器学习实验12

  1. 学习随机森林的非参数算法

观察和解决随机森林的过拟合

  1. 实验内容

在这个练习中,我们将看看激励另一个强大的算法——一种称为随机森林的非参数算法。随机森林是一个集成方法的一个例子,这意味着它依赖于对一个更简单的估计器的集成的结果的聚合。这种集成方法的有点令人惊讶的结果是,总和可以大于部分:也就是说,在许多估计者中的多数投票最终可能比进行投票的单个估计者都要好!

  1. 实验结果展示及问题回答

考虑以下二维数据,它有四个标签类标签之一,如下图所示:

然后我们运用sklearn中的决策树进行分类训练,并借助指导给出的可视化函数绘图:建立在该数据上的简单决策树将根据某个定量标准沿着一个或另一个轴迭代分割数据,并在每个级别根据新区域内的多数投票分配新区域的标签。

在决策线中,我们可以看到上图中决策树构建过程的交互式可视化:

我们发现随着深度的增加,我们往往会得到形状非常奇怪的分类区域;例如,在深度为5时,在黄色和蓝色区域之间有一个又高又细的紫色区域。很明显,这并不是真实的、内在的数据分布的结果,而更多的是数据的特定采样或噪声特性的结果。也就是说,这棵决策树,即使只有五个层次,显然是我们过度拟合的数据。

另一种观察这种过度拟合的方法是查看在不同数据子集上训练的模型,例如,在下图中,我们训练了两棵不同的树,每棵树都在原始数据的一半上。很明显,在一些地方,这两棵树产生了一致的结果,而在其他地方,这两棵树给出了非常不同的分类。关键的观察结果是,不一致往往发生在分类不太确定的地方,因此,通过使用来自这两棵树的信息,我们可能会得出一个更好的结果!

我们通过将每个估计器拟合为80%的训练点的随机子集来将数据随机化。在实践中,通过在决策树分割的选择中注入一些随机性,决策树更有效地随机化:这样,所有的数据每次都有助于拟合,但拟合的结果仍然具有期望的随机性

我们看到,通过平均超过100个随机扰动的模型,我们最终得到了一个整体的模型,它更接近于我们关于参数空间应该如何被分割的直觉。

  1. 分析与探讨总结

解决过度拟合的一种可能方法是使用“合体方法”:这是一种元估计器,它实际上是对许多过度拟合数据的单个估计器的结果进行平均。 出乎意料的是,所得到的估算值比构成它们的单个估算值更加稳健和准确!

最常见的集成方法之一是“随机森林”,其中的集成由许多决策树组成,这些决策树在某种程度上会受到干扰。

随机森林的特点:

影响分类性能的主要因素:①森林中单棵树的分类强度:每棵树的分类强度越大,则随机森林的分类性能越好。②森林中树之间的相关度:树之间的相关度越大,则随机森林的分类性能越差。

两个随机性的引入,使得随机森林不容易陷入过拟合

两个随机性的引入,使得随机森林具有很好的抗噪声能力

对数据集的适应能力强:既能处理离散型数据,也能处理连续型数据,数据集无需规范化。

可生成一个Proximities=(pij)矩阵,用于度量样本之间的相似性:pij=aij/N,aji表示样本i和j出现在随机森林中同一个叶子结点的次数,N表示随机森林中树的棵树。

可以得出变量重要性排序(两种:基于OOB误分率的增加量和基于分裂时的GINI下降量)

bootstrapping中没有被选择的数据称为out of bag(OOB) examples, 这些数据由于没有用来训练模型,故可以用于模型的验证。

随机森林优点:

采用了集成算法,精度优于大多数单模型算法

在测试集上表现良好,两个随机性的引入降低了过拟合风险

树的组合可以让随机森林处理非线性数据

训练过程中能检测特征重要性,是常见的特征筛选方法

每棵树可以同时生成,并行效率高,训练速度快

可以自动处理缺省值

猜你喜欢

转载自blog.csdn.net/qq_50213874/article/details/129555997