随机森林

在这里插入图片描述
以上是基本的RF,首先利用bagging获取不同的资料,然后对不同的资料使用decision tree,最后对decision tree的结果进行公平的投票。

在这里插入图片描述
更近一步,我们不止将数据的获取随机化,而且在每次branch的时候选择不同的特征子集进行分割,比如总共有100个特征,我们在每次baranch时随机抽取10个特征进行分割特征的选取。

在这里插入图片描述
我们选取子空间的过程其实就是对原特征进行一个投影,我们用矩阵P表示,P的rows相当于投影方向,我们在每次branch的时候选择不同的投影方向进行特征选取。

validation
在这里插入图片描述
在这里插入图片描述

每次bagging大概有1/e的数据没有被选中。
在这里插入图片描述
我们用这些没被选中的数据进行validation,比如最后一排(XN,YN)数据,没有被g2…gT的所有模型用作训练数据,那么我们可以将g2…gT模型求平均然后用(xN,yN)进行validation,然后我们每排的(xi,yi)都做相同的validation,最后将所有的E(G_)作平均就是对我们的G的validation,这个和loov很像。

Feature Selection
在这里插入图片描述
如果我们有10000个特征,这里面有很多垃圾特征,我们怎么移除垃圾特征,使用重要的特征对我们的数据进行处理呢?
该方法的好处是高效,没杂讯,简单,易分析,缺点就是选取方法复杂,选的不好容易overfit,选的不好不容易解释。

在这里插入图片描述
对于线型模型特征选择很简单,线型模型特征之间没有联系,所以我们直接对线型模型进行分类求出w,每个feature前面的wi越大,那么这个feature就越简单。
但是对于非线性的模型,不同的特征相互关联,这种方法就不好求解了。RF就是这种非线性的特征。
在这里插入图片描述
对于RF我们首先对数据集的所有特征做一个学习学得一个模型,然后对这个模型进行validation得到一个分数,然后我们将我们测试的某个特征的排序打乱,然后在学得一个模型,并对模型进行validation得到一个分数(我们只做洗牌动作,所以概率模型没有变),然后两个分数相减,如果这个特征很重要,那么分数差将很大,如果这个特征不重要,那么分数差将相似。
在这里插入图片描述
但是每一次随机排序后,我们都要做一次train,太麻烦了,于是我们想了一个偷懒的方法,我们只对原始模型的validation的数据的特征进行打乱,然后用打乱的数据进行validation得到另一个分数,然后计算两个分数的差作为该特征的重要性。

action
在这里插入图片描述
第一幅图是领用random combination做出来的决策树,即每次选择不一样的特征子集。第二幅图是选取一半的数据集做的普通决策树,第三张图是利用100个普通决策树做的随机森林。效果明显好了很多。
理论上越多的树,越好。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值