[Task1]随机森林算法梳理

随机森林算法梳理

目录

1. 个体学习器概念
2. 集成学习概念
3. boosting bagging
4. 结合策略(平均法,投票法,学习法)
5. 随机森林思想
6. 随机森林的推广
7. 优缺点
8. sklearn参数
9. 应用场景


1、个体学习器的概念

个体学习器通常由一个现有的学习算法训练数据所产生,例如常见的svm、决策树、逻辑回归等。


2、集成学习器概念

由多个学习器构建并结合则形成集成学习器,集成学习器又分同质和异质两种。当集成学习器是由同种类型的学习器组合而成则称为同质,如集成学习器由多种决策树算法构成;反之当集成学习器不是由同种类型的学习器组合而成则称异质。
集成学习器常常可以获得比单个学习器更显著优越的泛化性能。这对“弱学习器”效果尤为明显,但实际实践中由于多种原因,人们往往倾向于使用较强的学习器。
要获得好的集成学习器,其个体学习器应该好而不同,即个体学习器要有一定的准确率(例如,至少好于随机),且要富有多样性(例如,尽可能的相互独立)。
目前的集成学习方法大致可以分为两类:

● 个体之间存在强依赖关系,使得学习器必须串行生成序列化的方法
如:Boosting
● 个体之间不存在强依赖关系,可生成并行化方法
如:Bagging、随机森林


3、Boosting&Bagging

①Boosting(串行式集成学习)

Boosting是一族可将弱学习器提升为强学习器的算法。
算法的工作机制:

T为事先确定的基学习器的个数
T为事先确定的基学习器的个数,最终将T个学习器进行加权。
经典代表:AdaBoost
Boosting算法要求基学习器对特定的数据分布进行学习,可通过“重赋权法”实施,即在训练过程的每一轮中,根据样本分布为每个训练样本重新赋予一个权重。对无法接受带权样本的基学习算法,则可通过“重采样法”来处理,即在每一轮学习中,根据样本分布对训练集重新进行采样,再用重采样而得的样本集对基学习器进行训练。

Boosting主要关注降低偏差,因此Boosting能基于泛化性能相当弱的学习器构建出很强的集成。

②Bagging(并行式集成学习)

Bagging的基本流程:使用自助采样法,给定包含m个样本的数据集,有放回抽取,经过m次随机采样操作,得到含m个样本的采样集,初始训练集中有的样本在采样集里多次出现,有的从未出现。照这样,最终可采样出T个含m个样本的采样集。然后基于每个采样集训练出一个基学习器,再将这些基学习器进行结合。结合方式:

●在对预测输出进行结合时,Bagging通常对分类任务使用简单投票法。
●对回归任务使用简单平均法。

若分类预测时出现两个类收到同样票数的情形,最简单的做法是随机选择一个,也可进一步考察学习器投票的置信度来确定最终选择。

Bagging的优点:

●Bagging集成与只选择一个学习器的复杂度同阶,说明Bagging十分高效。
●由于每个基学习器只使用了初始训练集中部分样本,剩下的样本的样本可用作验证集来对泛化性能进行“包外估计”。
●Bagging主要关注降低方差,因此它在不剪枝决策树、神经网络等易受样本扰动的学习器上效用更为明显。


4、结合策略

学习器的结合能带来以下优点
●统计方面,由于学习任务的假设空间往往很大,可能有多个假设在训练集上达到同等性能,此时若单个学习器可能因为误选而导致泛化性能不佳,结合多个学习器则会减少风险。
●计算方面,通过多次运行之后进行结合,可降低陷入局部最小的风险。
●表示方面,通过结合多个学习器,相应的假设空间也有所扩大,有可能可以到达更好的效果。

①平均法

对于数值型输出,最常见的结合策略是使用平均法。
●简单平均法
●加权平均法
加权平均法是简单平均法的特例,被广泛运用于集成学习。但加权平均算法也存在一定的缺陷,因为加权平均法的权重一般是从训练数据中学习而得,现实任务中的训练样本通常不充分或存在噪声,这将使得学出的权重不完全可靠。尤其当集成规模较大时,要学习的权重较多,就容易导致过拟合。
如何选择平均法?
一般而言,在个体学习器性能相差较大时宜使用加权平均法,而在个体学习器性能相近时宜使用简单平均法。

②投票法

对于分类问题,最常见的结合策略就是投票法。
●绝对多数投票法,提供了“拒绝预测”的选项
●相对多数投票法
●加权投票法
需要注意的是,若基学习器不同,其类概率值不能直接进行比较,通常需要将其转化为类标记输出,然后在投票。

③学习法

当训练数据很多时,一种更为强大的结合策略是使用“学习法”,即通过另一个学习器来进行结合。Stacking是学习法的典型代表。我们将个体学习器称为初级学习器,结合学习器称为次级学习器。
有研究表明,将初级学习器输出的类别概率输入次级学习器作为属性,用多响应线性回归(MLR)作为次级学习算法效果较好,在MLR中使用不同属性集更佳。


5、随机森林思想

随机森林(Random Forest)是Bagging的一个扩展变体。随机森林在以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性选择。不同于传统决策树划分属性在当前节点属性集中选择最优属性的方法,在随机森林中,先从该结点的属性集合中随机选择一个包含部分属性的子集,然后再从这个子集中选择一个最优属性用于划分。


6、随机森林推广

由于随机森林在实际应用中的良好特性,基于随机森林,衍生出变种算法,其衍生算法可以用于分类回归,特征转换,异常点检测等。总结衍生算法如下:

①extra trees

extra trees一般不采用随机采样,每个决策树采用原始训练集。extra trees在选择特征划分的时候随机的选择一个特征值来划分决策树,而不是选择最优特征划分。但由于其生成的决策树的规模一般会大于随机森林所生成的决策树,所以有时extra trees的泛化能力比随机森林更好。

②Totally Random Trees Embedding(TRTE)

TRTE在数据转化的过程也使用了类似于RF的方法,建立T个决策树来拟合数据。当决策树建立完毕以后,数据集里的每个数据在T个决策树中叶子节点的位置也定下来了。然后用一种非监督学习的数据转化方法,将属性位于不同决策树的节点位置映射到高维,从而让映射到高维的数据更好的运用于分类回归模型。

③Isolation Forest(IForest)

一种异常点检测的方法。
对于在T个决策树的样本集,IForest也会对训练集进行随机采样,但是采样个数远远小于训练集个数,因为其目的是异常点检测,只需要部分的样本一般就可以将异常点区别出来了。
对于每一个决策树的建立, IForest采用随机选择一个划分特征,对划分特征随机选择一个划分阈值。另外,IForest一般会选择一个比较小的最大决策树深度max_depth,也是因为异常点检测一般不需要这么大规模的决策树。


7、 随机森林优点缺点

优点
1、RF容易理解和解释,树可以被可视化。
2、不需要太多的数据预处理工作,实现比较简单,且目前在很多现实任务中展现出强大的性能
3、隐含地创造了多个联合特征,并能够解决非线性问题。
4、和决策树模型,GBDT模型相比,随机森林模型不容易过拟合。
5、自带out-of-bag (oob)错误评估功能。每个基学习器只使用了训练集中约63.2%的样本,剩下约36.8%的样本可用做验证集来对其泛化性能进行‘包外估计’。所以不用对其进行交叉验证或者使用一个独立的测试集获得无偏估计。
5、在创建随机森林的时候,对generlization error使用的是无偏估计,模型泛化能力强,且集成的泛化性能可通过个体学习器之间差异度的增加而进一步提升。
6、可以并行化训练树,训练速度快
7、 对于不平衡的数据集来说,它可以通过调整class_weight参数来平衡误差。
8、可以处理高维数据集,因为其特征子集是随机选择的

缺点
1、随机森林在某些噪音较大的分类或回归问题上会发生过拟合现象
2、对于取值划分较多的属性容易对随机森林的决策产生更大的影响,从而影响拟合的模型的效果。
3、不适合小样本,只适合大样本。


8、sklearn参数

1、criterion: ”gini” or “entropy”(default=”gini”)选择最优属性时是用gini(基尼不纯度)还是entropy(信息增益)。
2、splitter: ”best” or “random”(default=”best”)选择属性时是选择随机划分还是最优划分,建议用默认。
3、max_features: 选择属性时划分的特征不能超过此值。
4、max_depth: (default=None)设置树的最大深度。
5、min_samples_split:根据属性划分节点时,每个划分最少的样本数。
6、min_samples_leaf:叶子节点最少的样本数。
7、max_leaf_nodes: (default=None)叶子树的最大样本数。
8、min_weight_fraction_leaf: (default=0) 叶子节点所需要的最小权值
9、verbose:(default=0) 是否显示任务进程
10、n_jobs用于并行提高效率,任务并行时指定的CPU数量,可以选择为电脑cpu核数
11、class_weight分类模型中各种类型的权重,当数据为不平衡数据时,可以考虑将此参数调整为balance。


9、应用场景

随机森林适用于数据维数相对较低(几十维),且需要达到一定准确率的场景。
随机森林在多数数据集上都有不错的表现,相对来说,出现预测效果很差的情况较少。可以作为模型的baseline作为参考。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
knn修正的随机森林算法是一种改进的随机森林算法,主要针对全样本训练忽视局部样本规律的问题进行改进。在传统的随机森林中,每棵决策树的训练样本是随机选择的,并且每棵树的训练特征集合也是随机从所有特征中抽取的。然而,由于全样本训练忽视了局部样本的规律,导致各个决策树趋于相同,使得随机森林失去了一定的随机性。 在knn修正的随机森林算法中,引入了knn的思想来修正每棵决策树的训练样本。具体来说,对于每个样本,在构建每棵决策树时,通过knn算法找出其k个最近邻样本,并将这k个最近邻样本与该样本一起作为该棵树的训练样本。这样做的目的是引入局部样本的规律,增加每棵树的差异性,提高随机森林的泛化能力。 通过knn修正的随机森林算法,可以有效地解决全样本训练忽视局部样本规律的问题,增强随机森林的随机性和泛化能力。这种算法在处理具有缺失值的特征向量时也表现出良好的性能。同时,由于随机森林本身具有抗噪能力,对于缺失值不敏感,因此knn修正的随机森林算法在处理缺失值问题时也能够取得较好的效果。 总结来说,knn修正的随机森林算法通过引入knn思想修正每棵决策树的训练样本,增加了随机森林的随机性和泛化能力,并在处理缺失值问题上表现出较好的性能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [决策树- 随机森林/GBDT/XGBoost](https://blog.csdn.net/weixin_36378508/article/details/120914675)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值