机器学习之随机森林(RF)

您所在的位置:网站首页 rf值的计算图片 机器学习之随机森林(RF)

机器学习之随机森林(RF)

2024-07-11 06:00| 来源: 网络整理| 查看: 265

随机森林

 

模型收到低偏差和高方差问题的困扰,应该如何解决

低偏差意味着模型的预测值接近实际值。换句话说,该模型有足够的灵活性,以模仿训练所有数据的分布。貌似很好,但是别忘了,一个过于灵活的模型是没有泛化能力的。这意味着,当这个模型用在对一个未曾见过的数据集进行测试的时候,它会令人很失望。

在这种情况下,我们可以使用bagging算法(如随机森林),以解决高方差问题。

bagging算法采用bootstrapping抽样策略,把数据集分成重复随机取样形成的子集。然后,这些样本利用单个学习算法生成一组模型。接着,利用投票(分类)或平均(回归)把模型预测结合在一起。

另外,为了应对高方差问题,还可以做一些其他的操作:

    1、加入正则惩罚。    2、对树进行剪枝     3、使用可变重要性图表中的前n个特征。 其实防止过拟合的small trick还有许多,主要可以从数据集与模型两个角度出发。今后会作总结。

随机森林的随机性 1、每棵树的训练样本是随机的。 2、每棵树的训练特征集合也是随机从所有特征中抽取的。

随机森林为什么不容易过拟合 随机森林由很多树组合在一起,单看每一棵树都可以是过拟合的,但是,既然是过拟合,就会拟合到非常小的细节上,因此随机森林通过引入随机性,让每一棵树拟合的细节不同,这时再把这些树组合在一起,过拟合的部分就会自动被消除掉。

所以随机森林不容易过拟合,但这不是绝对的,随机森林也是有可能出现过拟合的现象,只是出现的概率相对低。

就好比人类社会,有计算机的专家,也有神经生物学的专家,还有一个天文学的专家,这就像三颗过拟合的树,对于各自领域性能都很优秀,但对于宗教这类知识,三个人都不是很懂。由于三个人都处在同一个社会中,在社会中长久下来也有或多或少的接触过这方面的知识,于是三个人可以通过综合判断,得出宗教方面的一些正确答案。

当在随机森林中,如果我们用了远大于需求个数的树,就会发生过拟合的现象。所以一般在构建随机森林时我们会使用oob袋外错误率来修正模型的结构。

使用随机森林去弥补特征向量中的缺失值 对于训练集中的缺失值,可以使用均值,0等方式进行预填充,然后使用随机森林分类,同一个分类下的数据,更新缺失值,如果是分类变量缺失,用众数补上,如果是连续型变量缺失,用中位数补上,然后再次使用随机森林分类更新缺失值,4-6轮后可以达到一个比较好的效果。

使用随机森林对特征重要性进行评估 详见集成学习ensemble之随机森林。利用了袋外错误率OOB来做决策。

随机森林算法训练时主要需要调整哪些参数 1、n_estimators:随机森林建立子树的数量。较多的子树一般可以让模型有更好的性能,但同时会让代码变慢,严重的时候甚至还会导致过拟合!故需要通过交叉验证或者袋外错误率oob估计来选择最佳的随机森林子树数量。 2、max_features:随机森林允许单个决策树使用特征的最大数量。增加max_features一般能提高模型的性能,因为在每个树节点上,我们有更多的选择可以考虑。然而,这未必完全是对的,因为它降低了单个树的多样性(泛化能力),但这正是随机森林的一大特点。可以肯定的是,增加max_features会降低算法的速度,同时还会使得模型更加容易过拟合,因此,我们需要适当的平衡和选择最佳的max_features。 3、max_depth:决策树的最大深度。随机森林默认在决策树的建立过程中不会限制其深度,这也是随机森林的一大特点,其不必担心单棵树的过拟合。 4、min_samples_split:内部节点再划分所需要的最小样本数。如果某节点的样本数少于min_samples_split,则不会继续再尝试选择最优特征来进行划分。 5、min_samples_leaf:叶子节点最少样本数。这个值限制了叶子节点最少的样本数,如果某叶子节点数目小于样本数,则会和兄弟节点一起被剪枝。 6、max_leaf_nodes:最大叶子节点数。通过限制最大叶子节点数,可以防止过拟合,默认是“None”,即不限制最大的叶子节点数。如果加了限制,算法会建立在最大叶子节点数内最优的决策树。 7、min_impurity_split:节点划分最小不纯度。这个值限制了决策树的增长,如果某节点的不纯度(基于基尼系数,均方差,信息增益等)小于这个阈值,则该节点不再生成子节点。即为叶子节点。一般不推荐改动,默认值为1e-7。 概括一下,别看有整整7点,其实后5点全都是预剪枝的策略,在随机森林中,如果实在是为了防止过拟合等,可以采取预剪枝策略也就是上述的3-7方法。但对于随机森林这个模型而言,真正要调整的参数就n_estimators和max_features两个,而且在一般情况下,不需要怎么调就可以得到不错的结果。

随机森林为什么不能用全样本去训练m颗决策树 全样本训练忽视了局部样本的规律(各个决策树趋于相同),对于模型的泛化能力是有害的,使随机森林算法在样本层面失去了随机性。

随机森林算法的优缺点 优点:

1、训练可以高度并行化且性能普遍较好,对于大数据时代的大样本训练速度有优势。 2、随机森林对于高维数据集的处理能力令人兴奋,它可以处理成千上万的输入变量,并确定最重要的变量,因此被认为是一个不错的降维方法。此外,该模型能够输出变量的重要性程度,这是一个非常便利的功能! 3、在对缺失数据进行估计时,随机森林是一个十分有效的方法。就算存在大量的数据缺失,随机森林也能较好地保持精确性,一方面因为随机森林随机选取样本和特征,另一方面因为它可以继承决策树对缺失数据的处理方式。如果缺失数据的样本只是少量,随机森林甚至可以帮助去估计缺失值。 4、由于采用了随机采样,训练出的模型的方差小,对generlization error(泛化误差)使用的是无偏估计模型,泛化能力强。 5、对于不平衡数据集来说,随机森林可以平衡误差。当存在分类不平衡的情况时,随机森林能提供平衡数据集误差的有效方法。(对正类和反类分别进行重采样或欠采样, 之后采用多数投票的方法进行集成学习。或者不做采样,调整类别的判定阈值。) 6、随机森林能够解决分类与回归两种类型的问题,并在这两方面都有相当好的估计表现。(虽然RF能做回归问题,但通常都用RF来解决分类问题)。 缺点:

1、随机森林在解决回归问题时,并没有像它在分类中表现的那么好,这是因为它并不能给出一个连续的输出。当进行回归时,随机森林不能够做出超越训练集数据范围的预测,这可能导致在某些特定噪声的数据进行建模时出现过度拟合。(PS:随机森林已经被证明在某些噪音较大的分类或者回归问题上会过拟合)。 2、对于许多统计建模者来说,随机森林给人的感觉就像一个黑盒子,你无法控制模型内部的运行。只能在不同的参数和随机种子之间进行尝试。 3、可能有很多相似的决策树,掩盖了真实的结果。 4、对于小数据或者低维数据(特征较少的数据),可能不能产生很好的分类(随机性大大降低了)。(处理高维数据,处理特征遗失数据,处理不平衡数据是随机森林的长处)。 5、执行数据虽然比boosting等快(随机森林属于bagging),但比单只决策树慢多了,且精度一般不如boosting方法。

 

bagging方法可以有效降低模型的方差。随机森林每棵子树不需要剪枝,是低偏差高方差的模型,通过bagging降低方差后使得整个模型有较高的性能。

随机森林其实很简单,就是在bagging策略上略微改动了一下。

    1、从N个样本中有放回的随机抽样n个样本。     2、如果每个样本的特征维度为M,指定一个常数m



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3