机器学习算法小整理之随机森林

随机森林是一种基于决策树的集成学习方法,通过随机采样和属性选择来构建多个决策树,以提高模型的准确性和泛化能力。文章介绍了随机森林的工作原理、算法流程、特点及优缺点,同时探讨了其在分类回归、特征转换和异常点检测等方面的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、工作原理:

以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性选择(对基决策树的每个节点,先从该节点的属性集合中随机选择一个包含k个属性的子集,然后再从这个子集中选择一个最优属性进行划分)。

Bagging:基于自助采样法,从原始数据集中采样出S个含m个训练样本的采样集即新数据集,将某个学习算法分别作用于每个数据集得到S个分类器,选择分类器投票结果中最多的类别作为最后的分类结果。bagging的特点是各个弱学习器之间没有依赖关系,可以并行拟合。由于Bagging算法每次都进行采样来训练模型,因此泛化能力很强,对于降低模型的方差很有作用。当然对于训练集的拟合程度就会差一些,也就是模型的偏倚会大一些。

Boosting:通过集中关注被已有分类器错分的那些数据来获得新的分类器,分类的结果是基于所有分类器的加权求和结果的,分类器的权重并不相等,每个权重代表的是其对应分类器在上一轮迭代中的成功度。boosting的特点是各个弱学习器之间有依赖关系。

自助采样法:有放回采样,给定包含m个样本的数据集,先随机取出一个样本放入采样集中,再把该样本放回初始数据集,使得下次采样时该样本仍有可能被选中,经过m次随机采样操作,得到含m个样本的采样集,初始训练集中有的样本在采样集里多次出现,有的则从未出现。

对于一个样本,它在某一次含m个样本的训练集的随机采样中,每次被采集到的概率是。不被采集到的概率为。如果m次采样都没有被采集中的概率是。当时,

2、算法流程:

1)N个训练样本,每个样本的特征为M个,需要建K颗树

2)从N个训练样本中有放回的取N个样本作为一组训练集(其余未取到的样本作为预测分类,评估其误差)(行采样)

3)从M个特征中取m个特征左右子集特征(m<<M)(列采样)

4)对采样的数据使用完全分裂的方式来建立决策树,这样的决策树每个节点要么无法分裂,要么所有的样本都指向同一个分类

5)重复2的过程K次,即可建立森林

6)将预测样本输入到K颗树分别进行预测

7)如果是分类问题,直接使用投票的方式选择分类频次最高的类别

8)如果是回归问题,使用分类之后的均值作为结果

一般取m=sqrt(M),推荐值以2为底对M取对数(《机器学习》周志华),m越小,则模型越健壮,当然此时对于训练集的拟合程度会变差即m越小,模型的方差会减小,但是偏倚会增大。在实际案例中,一般会通过交叉验证调参获取一个合适的m的值。

树的个数K,一般都需要成百上千,但是也有具体的样本有关(比如特征数量);

设置阈值:树的最大深度、节点上的最小样本数、最小信息增益;

使用oob(out-of-bag)进行泛化误差的估计,将各个树的未采样样本作为预测样本(大约有36.8%),使用已经建立好的森林对各个预测样本进行预测,预测完之后最后统计误分得个数占总预测样本的比率作为RF的oob误分率。

3、特点:

“随机采样”

优点:

(1)简单、容易实现;

(2)计算开销小,训练速度很快;

(3)训练可以高度并行化,对于大数据时代的大样本训练速度有优势;

(4)能够处理大量特征的分类,并且还不用做特征选择;由于可以随机选择决策树节点划分特征,这样在样本特征维度很高的时候,仍然能高效的训练模型。

(5)在训练过程中,能够检测到特征间的互相影响,在训练完成之后能给出哪些特征的比较重要;

(6)多样性不仅来自样本扰动,还来自属性扰动,使得最终集成的泛化性能可通过个体学习器之间的差异度的增加而进一步提升;

(7)随机森林的训练效率常优于Bagging,在个体决策树的构建过程中,Bagging使用“确定型”决策树,在选择划分属性时要对结点的所有属性进行考察,而随机森林使用“随机型”决策树,只需考察一个属性子集;在创建随机森林的时候,对泛化误差使用的是无偏估计;

(8)相对于决策树,在准确性上有了很大的提升,同时一定程度上改善了决策树容易被攻击的特点;

(9)在数据集上表现良好,在当前的很多数据集上,相对其他算法有着很大的优势;

(10)对部分特征缺失不敏感;

(11)由于采用了随机采样,训练出的模型的方差小,泛化能力强。

缺点:

(1)起始性能往往相等较差,特别是在集成中只包含一个基学习器时,因为通过引入属性扰动,随机森林中个体学习器的性能往往有所降低。随着学习器数目的增加,随机森林通常会收敛到更低的泛化误差。

(2)在某些噪音比较大的样本集上,容易陷入过拟合。

(3)取值划分比较多的特征容易对RF的决策产生更大的影响,从而影响拟合的模型的效果。

4、比喻说法:

每一棵决策树就是一个精通于某一个窄领域的专家,这样在随机森林中就有了很多个精通不同领域的专家,对一个新的问题(新的输入数据),可以用不同的角度去看待它,最终由各个专家,投票得到结果。

决策树实际上是将空间用超平面进行划分的一种方法,每次分割的时候,都将当前的空间一分为二,这样使得每一个叶子节点都是在空间中的一个不相交的区域,在进行决策的时候,会根据输入样本每一维feature的值,一步一步往下,最后使得样本落入N个区域中的一个(假设有N个叶子节点)

5、应用推广:

转自:http://www.cnblogs.com/pinard/p/6156009.html

(1)分类回归

extra trees一般不采用随机采样,即每个决策树采用原始训练集。extra trees比较的激进,他会随机的选择一个特征值来划分决策树。由于随机选择了特征值的划分点位,而不是最优点位,这样会导致生成的决策树的规模一般会大于RF所生成的决策树。也就是说,模型的方差相对于RF进一步减少,但是偏倚相对于RF进一步增大。在某些时候,extra trees的泛化能力比RF更好。

(2)特征转换

Totally Random Trees Embedding(以下简称 TRTE)是一种非监督学习的数据转化方法。它将低维的数据集映射到高维,从而让映射到高维的数据更好的运用于分类回归模型。TRTE在数据转化的过程也使用了类似于RF的方法,建立T个决策树来拟合数据。当决策树建立完毕以后,数据集里的每个数据在T个决策树中叶子节点的位置也定下来了。比如我们有3颗决策树,每个决策树有5个叶子节点,某个数据特征划分到第一个决策树的第2个叶子节点,第二个决策树的第3个叶子节点,第三个决策树的第5个叶子节点。则x映射后的特征编码为(0,1,0,0,0    0,0,1,0,0    0,0,0,0,1),有15维的高维特征,映射到高维特征后就可继续使用监督学习的各种分类回归算法了

(3)异常点检测

Isolation Forest(以下简称IForest)是一种异常点检测的方法。它使用了类似于RF的方法来检测异常点。

对于在T个决策树的样本集,IForest也会对训练集进行随机采样,但是IForest不需要采样这么多,一般来说,采样个数要远远小于训练集个数,因为我们的目的是异常点检测,只需要部分的样本我们一般就可以将异常点区别出来了。

对于每一个决策树的建立, IForest采用随机选择一个划分特征,对划分特征随机选择一个划分阈值。

另外,IForest一般会选择一个比较小的最大决策树深度max_depth,原因同样本采集,用少量的异常点检测一般不需要这么大规模的决策树。

对于异常点的判断,则是将测试样本点拟合到T颗决策树。计算在每颗决策树上该样本的叶子节点的深度,从而可以计算出平均高度h(x)。此时我们用下面的公式计算样本点的异常概率:

其中,m为样本个数。的表达式为:

s(x,m)的取值范围是[0,1],取值越接近于1,则是异常点的概率也越大。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值