• 机器学习技法-随机森林(Random Forest)


    课程地址:https://class.coursera.org/ntumltwo-002/lecture

    重要!重要!重要~

    image

    一、随机森林(RF)

    1.RF介绍

    • RF通过Bagging的方式将许多个CART组合在一起,不考虑计算代价,通常树越多越好。
    • RF中使用CART没有经过剪枝操作,一般会有比较大的偏差(variance),结合Bagging的平均效果可以降低CART的偏差。
    • 在训练CART的时候,使用有放回的随机抽取样本(bootstraping)、随机的抽取样本的特征、甚至将样本特征通过映射矩阵P投影到随机的子空间等技术来增大g(t)的随机性、多样性。

    image

    2.RF算法结构和优势

    image

    二、OOB(Out-Of-Bag)和自验证(Automatic Validation)

    1.RF中使用的有放回的抽样方式(Bootstrapping)会导致能有些样本在某次训练中没有被使用,没有被用到的样本称为OOB(Out-Of-Bag)。

    当样本集合很大的时候,如果训练数据的大小和样本集合的大小相同,那么某个样本没有被使用的概率大约为1/3,OOB的大小也约为样本集合的1/3,下面是具体的数学描述。

    image

    2.RF Validation

    RF 并不注重每棵树的分类效果,实际中也不会用OOB数据来验证g(t),而是使用OOB数据来验证G。

    但同时为了保证验证数据绝对没有在训练时“偷窥”,使用的G是去掉与测试的OOB相关的g(t)组成的G-。

    最后将所有的OOB测试结果取平均。林说:实际中Eoob通常都会非常精确。

    image

    三、特征选择(Feature Selection)和排列检验(Permutation Test)

    • 在实际中,当样本的特征非常多的时候,有时会希望去掉冗余或者与结果无关的特征项,选取相对重要的特征项。
    • 线性模型中,特征项的重要性使用|Wi|来衡量,非线性模型中特征项重要性的衡量一般会比较困难。
    • RF中使用统计中的工具排列检验(Permutation Test)来衡量特征项的重要性。
    • N个样本,每个样本d个维度,要想衡量其中某个特征di的重要,根据Permutation Test把这N个样本的di特征项都洗牌打乱,洗牌前后的误差相减就是该特征项重要性。
    • RF中通常不在训练时使用Permutation Test,而是在Validation 时打乱OOB的特征项,再评估验证,获得特征项的重要性。

    image

    image

    image

    四、RF的应用

    • 在简单数据集上,相比单棵的CART树,RF模型边界更加平滑,置信区间(Margin)也比较大
    • 在复杂且有含有噪声的数据集上,决策树通常表现不好;RF具有很好的降噪性,相比而言RF模型也会表现得很好
    • RF中选多少棵树好呢?总的来说是越多越好!!!实践中,要用足够多的树去确保G的稳定性,所以可以使用G的稳定性来判断使用多少棵树好。

    imageimage

  • 相关阅读:
    Python中的生成器
    API测试的五大好处
    Python可变参数*args和**kwargs
    Python中的迭代器
    docker下php安装imagick扩展
    docker端口映射不生效
    mysql学习笔记(一)一条sql查询语句是如何执行的
    lavavel学习笔记(一)安装
    mysql学习笔记(四)索引
    mysql学习笔记(二)一条sql更新语句是如何执行的
  • 原文地址:https://www.cnblogs.com/wxquare/p/5354498.html
Copyright © 2020-2023  润新知