随机森林算法原理简要总结怎么写_旋转森林算法

随机森林算法原理简要总结怎么写_旋转森林算法①RandomForest随机森林算法原理:即bagging法+CART算法生成决策树的结合。RF=bagging+fully-grownCARTdecisiontree②bagging法的核心:bootstrap在原始数据集D中选择若干个子数据集Dt,将子数据集单个单个进行决策树生成。③随机森林的优点:可并行化计算(子集的训练相互独立),效率高继承了CART算法的优点(使用Gini系数选择最优特征及切分点)减小了完全生成树的弊端(因为完全生成树过于复杂,Ein小但E

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

①Random Forest 随机森林算法原理:
即bagging法+CART算法生成决策树的结合。

R F = bagging + fully-grown CART decision tree

②bagging法的核心:bootstrap在原始数据集D中选择若干个子数据集Dt,将子数据集单个单个进行决策树生成。

③随机森林的优点:

  • 可并行化计算(子集的训练相互独立),效率高
  • 继承了CART算法的优点(使用Gini系数选择最优特征及切分点)
  • 减小了完全生成树的弊端(因为完全生成树过于复杂,Ein小但Eout大;如果不与bagging结合的话,决策树的训练是要先生成再剪枝的,而RF当中就不需要剪枝了,因为bagging法使得各个子集的决策树不会过于复杂)

④误差Eoob(out of bag 袋外误差)

此处参考博客:
作者:快乐的小飞熊
链接:https://www.jianshu.com/p/b94ec2fc345d
来源:简书

  • 在随机森林bagging法中可以发现booststrap每次约有1/3的样本不会出现在bootstrap所采集的样本集合中,故没有参加决策树的建立,这些数据称为袋外数据oob,用于取代测试集误差估计方法,可用于模型的验证。(优点是不需要另外划分validation验证集,袋外数据直接作为验证数据,在模型训练之时就计算出了误差。即袋外误差)
    下面先介绍下oob的使用,其中(x,y)代表输入的样本和label,g表示的是构建的树。
    在这里插入图片描述
    上图中(xN,yN)没有用于g2、g3、gt,所以(xN,yN)可以作为g2、g3、gt的验证数据,然后此oob数据作为输入,输入到模型中,然后投票,少数服从多数。
    同理,对于(x1,y1)、(x2,y2)等也存在同样的计算,最终计算评判错误的样本占比,就是oob-error.
    所以oob可以用来衡量RF模型的好坏。

  • 同时,也可以引出随机森林输出特征重要性的原理:如果特征i对于模型是有利的,那么第i维特征置换成随机值,将会降低模型的性能,也就是会使oob-error变大。
    根据这个原理,我们可以进行特征选取,即去除冗余的、相关性差的特征。(也称为置换试验)
    importance(i) = Eoob(G) – Eoob^p(G)
    其中Eoob^p(G)就是被替换掉第i维特征值后的数据集的Eoob。


END

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/215492.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql语句和sql语句的区别_mongodb和mysql的区别

    mysql语句和sql语句的区别_mongodb和mysql的区别MySQL和SQL之间的区别有哪些?很多PHP的初学者,对MySQL,MyAdmin和SQL有什么区别并不是很清楚?下面php中文网就带领大家来学习一下MySQL和SQL之间的区别。【推荐阅读:MySQL什么意思】一:什么是SQLSQL是一种数据库语言,可以定义和操作数据库。SQL由ISO(国际标准化组织)标准化,和其他数据库中几乎是相同的方式运行,SQL大致分为三种语言。它在控制和操作数据库时使…

    2022年9月28日
    3
  • linux经常使用命令:打包、复制等[通俗易懂]

    linux经常使用命令:打包、复制等

    2022年1月30日
    47
  • Idea中建多层级包时出现的问题

    Idea中建多层级包时出现的问题刚开始使用idea时发现不会分包。假如我想在com下面分别建Dao、pojo、service包等,会出现每次在上一个包里面建包,并不会使Dao、pojo、service包平级。解决方法:方法一:            1)先在java包下建名为com包,     2)鼠标点击com的上一级包(这里就是java包),然后新建包为com.Dao包。这里会出现不用着急,因为你只有一个包。再继续点击com…

    2022年6月13日
    36
  • Protostuff序列化和反序列化使用说明

    Protostuff序列化和反序列化使用说明google原生的protobuffer使用起来相当麻烦,首先要写.proto文件,然后编译.proto文件,生成对应的.java文件,鄙人试了一次,发现真的很麻烦。而protostuff的官方网站(http://www.protostuff.io/documentation/runtime-schema/),对于智商比较低的小编来说也略显生涩,于是鄙人就根据项目中用到的protostuff,撰写此文,以方便自己和他人加深印象和学习。

    2022年6月17日
    36
  • c语言哈希表数据结构_c语言列表数据结构

    c语言哈希表数据结构_c语言列表数据结构简单的哈希表实现这是一个简单的哈希表的实现,用c语言做的。原理先说一下原理。先是有一个bucket数组,也就是所谓的桶。哈希表的特点就是数据与其在表中的位置存在相关性,也就是有关系的,通过数据应该可以计算出其位置。这个哈希表是用于存储一些键值对(key–value)关系的数据,其key也就是其在表中的索引,value是附带的数据。通过散列算法,将字符串的key映射到某个桶中,这个算法是确定的…

    2022年8月30日
    5
  • RT-Thread FinSH控制台添加自定义msh命令原理「建议收藏」

    RT-Thread FinSH控制台添加自定义msh命令原理「建议收藏」FinSH是RT-Thread的命令行组件,提供一套供用户在命令行调用的操作接口,主要用于调试或查看系统信息。它可以使用串口/以太网/USB等与PC机进行通信。FinSH提供了多个宏接口来导出自定义命令,导出的命令可以直接在FinSH中执行。自定义的msh命令,可以在msh模式下被运行,将一个命令导出到msh模式可以使用如下宏接口:MSH_CMD_EXPORT(name,desc);示例如下:voidhellort(void){rt_kpr

    2022年5月21日
    70

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号