随机森林算法梳理

1. 集成学习概念

集成学习是使用一系列学习器进行学习,并使用某种规则把各个学习结果进行整合从而获得比单个学习器更好的学习效果的一种机器学习方法。一般情况下,集成学习中的多个学习器都是同质的"弱学习器"。

集成学习的主要思路是先通过一定的规则生成多个学习器,再采用某种集成策略进行组合,最后综合判断输出最终结果。一般而言,通常所说的集成学习中的多个学习器都是同质的"弱学习器"。基于该弱学习器,通过样本集扰动、输入特征扰动、输出表示扰动、算法参数扰动等方式生成多个学习器,进行集成后获得一个精度较好的"强学习器"。

随着集成学习研究的深入,其广义的定义逐渐被学者们所接受,它是指对多个学习器集合采用学习的方式,而不对学习器性质加以区分。根据这一定义,多学习器系统 (multi-classifier system) 、多专家混合 (mixture of experts) 以及基于委员会的学习 (committee-based learning)等多个领域都可以纳入到集成学习中。但当前仍然以同质分类器的集成学习研究居多。

2. 个体学习器概念

由现有的学习算法从训练数据产生。若集成中只包含同一类学习器则称它们为“基学习器”,相应的算法称为“基学习算法”。若包含不同类的个体学习器则称为异质的。

参考:https://blog.csdn.net/sumaliqinghua/article/details/86667771

3. boosting  bagging

Bossting:

各种不同的Boosting算法有很多,但最具代表性的当属AdaBoost算法,而且各种不同Boosting算法都是在AdaBoost算法的基础上发展起来的。因此下面以AdaBoost算法为例,对Boosting算法进行简单的介绍。

首先给出任意一个弱学习算法和训练集  ,其中,  ,  表示某个域或实例空间,在分类问题中是一个带类别标志的集合,  。初始化时, Adaboost 为训练集指定分布为  ,即每个训练例的权重都相同为  。 接着, 调用弱学习算法进行 T 次迭代,每次迭代后, 按照训练结果更新训练集上的分布,对于训练失败的训练例赋予较大的权重,使得下一次迭代更加关注这些训练例,从而得到一个预测函数序列  ,对每个预测函数  也赋予一个权重, 预测效果好的, 相应的权重越大。 T 次迭代之后,在分类问题中最终的预测函数采用带权重的投票法产生。 单个弱学习器的学习准确率不高, 经过运用 Boosting 算法之后,最终结果准确率将得到提高。

Bagging:

Bagging(bootstrap aggregating)是通过结合几个模型降低泛化误差的技术,主要思想是分别训练几个不同的模型,然后让所有模型表决出测试样例的输出。这是机器学习常规策略的一个例子,被称为模型平均。模型平均奏效的原因是不同的模型通常不会在测试集上产生完全相同的误差。

如上图,Bagging涉及构造T个不同的数据集。每个数据集从原始数据集中重复采样构成,和原始数据集具有相同数量的样例。这意味着,每个数据集以高概率缺少一些来自原始数据集的例子,还包含若干重复的例子(如果所得训练集与原始数据集大小相同,那所得数据集中大概有原始数据集 2/3 的实例)。模型i在数据集i上训练。每个数据集所含样本的差异导致了训练模型之间的差异。

参考:https://baike.baidu.com/item/%E9%9B%86%E6%88%90%E5%AD%A6%E4%B9%A0/3440721?fr=aladdin

4. 结合策略(平均法,投票法,学习法)

平均法:简单平均、加权平均 
适用范围: 
+规模大的集成,学习的权重较多,加权平均法易导致过拟合 
+个体学习器性能相差较大时宜使用加权平均法,相近用简单平均法。

投票法: 
1.绝对多数投票法:某标记超过半数; 
2.相对多数投票法:预测为得票最多的标记,若同时有多个标记的票最高,则从中随机选取一个。 
3.加权投票法:提供了预测结果,与加权平均法类似。

学习法 
Stacking描述:先从初始数据集中训练出初级学习器,然后“生成”一个新数据集用于训练次级学习器。在新数据集中,初级学习器的输出被当做样例输入特征,初始样本的标记仍被当做样例标记。

参考:https://blog.csdn.net/loveitlovelife/article/details/79398745 

5. 随机森林思想

随机森林是2001年由Leo Breiman将Bagging集成学习理论与随机子空间方法相结合,提出的一种机器学习算法。 随机森林是以决策树为基分类器的一个集成学习模型,它包含多个由Bagging集成学习技术训练得到的决策树, 当输入待分类的样本时, 最终的分类结果由单个决策树的输出结果投票决定。 随机森林解决了决策树性能瓶颈的问题, 对噪声和异常值有较好的容忍性, 对高维数据分类问题具有良好的可扩展性和并行性。 此外, 随机森林是由数据驱动的一种非参数分类方法, 只需通过对给定样本的学习训练分类规则, 并不需要先验知识。


6. 随机森林的推广

extra trees是RF的一个变种, 原理几乎和RF一模一样,仅有区别有:

1) 对于每个决策树的训练集,RF采用的是随机采样bootstrap来选择采样集作为每个决策树的训练集,而extra trees一般不采用随机采样,即每个决策树采用原始训练集。

2) 在选定了划分特征后,RF的决策树会基于信息增益,基尼系数,均方差之类的原则,选择一个最优的特征值划分点,这和传统的决策树相同。但是extra trees比较的激进,他会随机的选择一个特征值来划分决策树。

从第二点可以看出,由于随机选择了特征值的划分点位,而不是最优点位,这样会导致生成的决策树的规模一般会大于RF所生成的决策树。也就是说,模型的方差相对于RF进一步减少,但是bias相对于RF进一步增大。在某些时候,extra trees的泛化能力比RF更好
参考:https://blog.csdn.net/yingfengfeixiang/article/details/80210145 

7. 优缺点

随机森林的优缺点

优点:

a)随机森林算法能解决分类与回归两种类型的问题,表现良好,由于是集成学习,方差和偏差都比较低,泛化性能优越;
b)随机森林对于高维数据集的处理能力很好,它可以处理成千上万的输入变量,并确定最重要的变量,因此被认为是一个不错的降维方法。此外,该模型能够输出特征的重要性程度,这是一个非常实用的功能。
c) 可以应对缺失数据;
d)当存在分类不平衡的情况时,随机森林能够提供平衡数据集误差的有效方法;
e ) 高度并行化,易于分布式实现
f) 由于是树模型 ,不需要归一化即可之间使用

缺点:

a)随机森林在解决回归问题时并没有像它在分类中表现的那么好,这是因为它并不能给出一个连续型的输出。当进行回归时,随机森林不能够作出超越训练集数据范围的预测,这可能导致在对某些还有特定噪声的数据进行建模时出现过度拟合。
b)对于许多统计建模者来说,随机森林给人的感觉像是一个黑盒子——你几乎无法控制模型内部的运行,只能在不同的参数和随机种子之间进行尝试。
c) 忽略属性之间的相关性
参考:https://blog.csdn.net/yingfengfeixiang/article/details/80210145 

8. sklearn参数

class sklearn.ensemble.RandomForestClassifier(n_estimators=10, criterion='gini', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features='auto', max_leaf_nodes=None, bootstrap=True, oob_score=False, n_jobs=1, random_state=None, verbose=0, warm_start=False, class_weight=None)

Parameters:

  • n_estimators  森林中树的个数
  • criterion  评价划分程度的函数,’gini‘表示基尼不纯度,’entropy‘表示熵,用于信息增益

Attributes:

  • feature_importances_   特征重要程度,值越大特征越重要

参考:https://www.cnblogs.com/tosouth/p/4887917.html

9.应用场景

数据维度相对低(几十维),同时对准确性有较高要求时。

因为不需要很多参数调整就可以达到不错的效果,基本上不知道用什么方法的时候都可以先试一下随机森林。

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值