机器学习-初级入门(分类算法-随机森林)

一、构建随机森林中的树

  1. 构建随机森林
    假设共有N个样本,M个特征。这里我们讲“随机”的含义。对于每棵树都有放回的随机抽取训练样本,这里抽取随机抽取的样本作为训练集,再有放回的随机选取个特征作为这棵树的分枝的依据,这里要注意。这就是“随机”两层含义,一个是随机选取样本,一个是随机选取特征。这样就构建出了一棵树,需要注意的是这里生成的树都是完全生长的树(关于为什么是要完全生长的树,我认为的原因是便于计算每个特征的重要程度,剪枝的话将无法进行计算)。一棵树的构建方式如下图所示:
    在这里插入图片描述
    随机森林通过迭代使得森林中的树不断变得优秀(森林中的树选用更好的特征进行分枝)。上面的一个森林相当于第一次迭代得到的森林。

二、随机森林迭代

  1. 如何选出优秀的特征
    随机森林的思想是构建出优秀的树,优秀的树需要优秀的特征。那我们需要知道各个特征的重要程度。
    对于每一棵树都有m个特征,要知道某个特征在这个树中是否起到了作用,可以随机改变这个特征的值,使得“这棵树中有没有这个特征都无所谓”,之后比较改变前后的测试集误差率,误差率的差距作为该特征在该树中的重要程度,测试集即为该树抽取2N/3样本之后剩余的样本(袋外样本)(由袋外样本做测试集造成的误差称为袋外误差)。
    在一棵树中对于m个特征都计算一次,就可以算出m个特征在该树中的重要程度。我们可以计算出所有树中的特征在各自树中的重要程度。但这只能代表这些特征在树中的重要程度不能代表特征在整个森林中的重要程度。那我们怎么计算各特征在森林中的重要程度呢?每个特征在多棵数中出现,取这个特征值在多棵树中的重要程度的均值即为该特征在森林中的重要程度。如下式:
    在这里插入图片描述
    其中ntree表示特征 A i A_i Ai在森林中出现的次数。errOO B t 1 B_{t1} Bt1表示第t棵树中 A i A_{i} Ai属性值改变之后的袋外误差, e r r O O B t 2 errOOB_{t2} errOOBt2表示第t棵树中正常 A i A_{i} Ai值的袋外误差。可以用下图来表示:
    在这里插入图片描述
    这样就得到了所有特征在森林中的重要程度。将所有的特征按照重要程度排序,去除森林中重要程度低的部分特征,得到新的特征集。这时相当于我们回到了原点,这算是真正意义上完成了一次迭代。

三、选择优秀的森林

  1. 多次迭代过程
    按照上面的步骤迭代多次,逐步去除相对较差的特征,每次都会生成新的森林,直到剩余的特征数为m为止。最后再从所有迭代的森林中选出最好的森林。迭代的过程如下图所示:
    在这里插入图片描述
    每次迭代都丢掉较差的特征,最终留下自己想保留的特征个数。

  2. 选择预测结果

    得到了每次迭代出的森林之后,我们需要选择出最优秀的森林(随机森林毕竟是集成学习,所以最后的森林不一定是最优的,一个诸葛亮不一定顶的上三个臭皮匠)。那么我们怎么比较这些森林的好坏呢?这时我们需要引入一个指标来评价一个森林的好坏,上面的用于评价套外样本在树中的误差率,这里的评价套外样本在森林中的误差率。(因为都是利用套外样本,所以名字都是(out-of-bag))
    我的理解是将套外样本带入每次迭代特征筛选的森林中通过多个树的决策然后计算在这层迭代的森林中的误差率,然后依次类推把在每次迭代的误差率都算出来最终误差最小的作为最终的优秀森林
    每个样本在多棵树中是套外样本,通过多棵树的预测这个样本的结果。预测方式如下图所示:
    在这里插入图片描述
    预测出所有所有样本的结果之后与真实值进行比较,就可以得到这个森林的套外误差率。选择套外误差率最小的森林作为最终的随机森林模型。

四、Bagging算法

  1. 随机森林和bagging的关系?
    随机森林使用的是bagging算法,通过bagging进行特征筛选、最优森林选择。我个人认为可通过bagging算法直接构建森林进行预测,不经过特征筛选过程。

  2. 介绍Bagging:

    Bagging即套袋法,其算法过程如下:
    a. 从原始样本集中抽取训练集。每轮从原始样本集中使用Bootstraping的方法抽取n个训练样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中)。共进行k轮抽取,得到k个训练集。(k个训练集之间是相互独立的)

    b. 每次使用一个训练集得到一个模型,k个训练集共得到k个模型。(注:这里并没有具体的分类算法或回归方法,我们可以根据具体问题采用不同的分类或回归方法,如决策树、感知器等)

    c. 对分类问题:将上步得到的k个模型采用投票的方式得到分类结果;对回归问题,计算上述模型的均值作为最后的结果。(所有模型的重要性相同)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值