随机森林(RF)的原理

2024-05-18 17:08

1. 随机森林(RF)的原理

 集成学习有两个流派,一个是boosting派系,它的特点是各个弱学习器之间有依赖关系。另一种是bagging流派,它的特点是各个弱学习器之间没有依赖关系,可以并行拟合。本文就对集成学习中Bagging与随机森林算法做一个总结。   随机森林是集成学习中可以和梯度提升树GBDT分庭抗礼的算法,尤其是它可以很方便的并行训练,在如今大数据大样本的时代很有诱惑力。
   bagging集成学习方法可以利用下图说明:
   
                                           
   上面我们对bagging算法的原理做了总结,这里就对bagging算法的流程做一个总结。相对于Boosting系列的Adaboost和GBDT,bagging算法要简单的多。   输入为样本集D={(x1,y1),(x2,y2),...(xm,ym)},弱学习器算法, 弱分类器迭代次数T。输出为最终的强分类器f(x).   1)对于t=1,2...,T:
   理解了bagging算法,随机森林(Random Forest,以下简称RF)就好理解了。它是Bagging算法的进化版,也就是说,它的思想仍然是bagging,但是进行了独有的改进。我们现在就来看看RF算法改进了什么。      首先,RF使用了CART决策树作为弱学习器,这让我们想到了梯度提升树GBDT。第二,在使用决策树的基础上,RF对决策树的建立做了改进,对于普通的决策树,我们会在节点上所有的n个样本特征中选择一个最优的特征来做决策树的左右子树划分,但是RF通过随机选择节点上的一部分样本特征,这个数字小于n,假设为nsub,然后在这些随机选择的nsub个样本特征中,选择一个最优的特征来做决策树的左右子树划分。这样进一步增强了模型的泛化能力。
   如果nsub=nnsub=n,则此时RF的CART决策树和普通的CART决策树没有区别。nsubnsub越小,则模型越健壮,当然此时对于训练集的拟合程度会变差。也就是说nsubnsub越小,模型的方差会减小,但是偏倚会增大。在实际案例中,一般会通过交叉验证调参获取一个合适的nsubnsub的值。   除了上面两点,RF和普通的bagging算法没有什么不同, 下面简单总结下RF的算法。   输入为样本集D={(x1,y1),(x2,y2),...(xm,ym)},弱分类器迭代次数T。输出为最终的强分类器f(x):
   随机森林算法推广   由于RF在实际应用中的良好特性,基于RF,有很多变种算法,应用也很广泛,不光可以用于分类回归,还可以用于特征转换,异常点检测等。下面对于这些RF家族的算法中有代表性的做一个总结。
                                            Bootstrap经典语录 
   作为一个可以高度并行化的算法,RF在大数据时候大有可为。这里也对常规的随机森林算法的优缺点做一个总结。   RF的主要优点有:   1)训练可以高度并行化,对于大数据时代的大样本训练速度有优势。   2)由于可以随机选择决策树节点划分特征,这样在样本特征维度很高的时候,仍然能高效的训练模型。   3)在训练后,可以给出各个特征对于输出的重要性   4)由于采用了随机采样,训练出的模型的方差小,泛化能力强。   5)相对于Boosting系列的Adaboost和GBDT, RF实现比较简单。   6)对部分特征缺失不敏感。   RF的主要缺点有:   1)在某些噪音比较大的样本集上,RF模型容易陷入过拟合。   2)取值划分比较多的特征容易对RF的决策产生更大的影响,从而影响拟合的模型的效果。
    原文 

随机森林(RF)的原理

2. 随机森林模型建立的过程

亲,您好,很高兴为您解答,为您查询到的答案是:第一步:构建bootstraped数据集
大小与原始数据集的一致 且允许样本重复出现多次(有放回的抽取) 下面的3和4就是重复的
第二步:构造单棵森林中的树
使用刚刚创建的boostraped数据集 随机选取几个特征 这里我们选了这两个 然后计算Gini系数确定哪个作为根节点
特征被用了以后就不能再用了 然后同样的从剩下的特征随机选部分来构造剩下的树(就是在构造决策树啦) 这里选择了Chest Pain和Weight
总结一下构造森林里的一棵树的过程

构建boostraped数据集
使用该数据集构造决策树(特征是随机选择的)
第三步:重复上述步骤构造森林
按上述方法做个多次 我们就能随机生成多棵决策树啦
以上是我为您整理的答案,如果我的答案对您有帮助,希望你可以对我的服务进行评价,你的赞是我前进的动力,感谢您的支持,如果你有其他疑问也可以继续追问我,我很高兴为您解答哦,祝您生活愉快。【摘要】
随机森林模型建立的过程【提问】
请您耐心等待3分钟,正在编辑整理回答,马上就为您解答,还请不要结束咨询哦。【回答】
亲,您好,很高兴为您解答,为您查询到的答案是:第一步:构建bootstraped数据集
大小与原始数据集的一致 且允许样本重复出现多次(有放回的抽取) 下面的3和4就是重复的
第二步:构造单棵森林中的树
使用刚刚创建的boostraped数据集 随机选取几个特征 这里我们选了这两个 然后计算Gini系数确定哪个作为根节点
特征被用了以后就不能再用了 然后同样的从剩下的特征随机选部分来构造剩下的树(就是在构造决策树啦) 这里选择了Chest Pain和Weight
总结一下构造森林里的一棵树的过程

构建boostraped数据集
使用该数据集构造决策树(特征是随机选择的)
第三步:重复上述步骤构造森林
按上述方法做个多次 我们就能随机生成多棵决策树啦
以上是我为您整理的答案,如果我的答案对您有帮助,希望你可以对我的服务进行评价,你的赞是我前进的动力,感谢您的支持,如果你有其他疑问也可以继续追问我,我很高兴为您解答哦,祝您生活愉快。【回答】

3. 随机森林模型建立的过程

森林中每棵树按照如下方式生长:

如果过训练样本中有N个样本,那么从这N个样本中有放回的抽样N次,将得到的样本用于建树
设M为输入样本的特征数,对于每个节点分裂时,我们先从这M个特征中选择m(m<<M)个特征,然后再在这m个特征中选择最佳的分裂点进行分裂
每棵树都尽可能的生长,没有剪枝
m的值越大,上述1中的相关性越高,2中的分类能力也越强,所以m在RF中是一个非常重要的参数。

随机森林的预测错误率取决于以下两点:

森林中任意两棵树之间的相关性,相关性越高,错误率越大
每棵树的分类能力,单棵树的分类能力越强,那么整个森林的分类能力也越强
And of course Random Forest is a predictive modeling tool and not a descriptive tool. That means, if you are looking for a description of the relationships in your data, other approaches would be preferred.【摘要】
随机森林模型建立的过程【提问】
森林中每棵树按照如下方式生长:

如果过训练样本中有N个样本,那么从这N个样本中有放回的抽样N次,将得到的样本用于建树
设M为输入样本的特征数,对于每个节点分裂时,我们先从这M个特征中选择m(m<<M)个特征,然后再在这m个特征中选择最佳的分裂点进行分裂
每棵树都尽可能的生长,没有剪枝
m的值越大,上述1中的相关性越高,2中的分类能力也越强,所以m在RF中是一个非常重要的参数。

随机森林的预测错误率取决于以下两点:

森林中任意两棵树之间的相关性,相关性越高,错误率越大
每棵树的分类能力,单棵树的分类能力越强,那么整个森林的分类能力也越强
And of course Random Forest is a predictive modeling tool and not a descriptive tool. That means, if you are looking for a description of the relationships in your data, other approaches would be preferred.【回答】
具体的步骤可以说一下吗【提问】
先做出 一棵树的模本  然后加入随机生成树【回答】
就两点但是也很麻烦【回答】

随机森林模型建立的过程

最新文章
热门文章
推荐阅读