zoukankan      html  css  js  c++  java
  • 机器学习技法-随机森林(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

  • 相关阅读:
    [kuangbin带你飞]专题十六 KMP & 扩展KMP & ManacherK
    [kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher J
    [kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher I
    pat 1065 A+B and C (64bit)(20 分)(大数, Java)
    pat 1069 The Black Hole of Numbers(20 分)
    pat 1077 Kuchiguse(20 分) (字典树)
    pat 1084 Broken Keyboard(20 分)
    pat 1092 To Buy or Not to Buy(20 分)
    pat 1046 Shortest Distance(20 分) (线段树)
    pat 1042 Shuffling Machine(20 分)
  • 原文地址:https://www.cnblogs.com/wxquare/p/5354498.html
Copyright © 2011-2022 走看看