6.0 —随机森林原理(RF)和集成学习(Bagging和Pasting)

2024-08-30 07:38

本文主要是介绍6.0 —随机森林原理(RF)和集成学习(Bagging和Pasting),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我们这边先介绍集成学习

什么是集成学习

我们已经学习了很多机器学习的算法。比如KNN,SVM.逻辑回归,线性回归,贝叶斯,神经网络等等,而我们的集成学习就是针对某一个问题,我们使用多个我们已经学过的算法,每个算法都会得出一个结果。然后采用投票的方法,少数服从多数,得出最终结果。这就是voting classifier

我们看下代码:

我们手写的集成学习方法,和scikit-learn 中的集成学习方法,最终得到的结果是一样的

我们可以注意到,在scikit-learn中,我们有个参数叫voting = ‘hard’

其实这个参数代表的就是我们使用投票的方法做预测。我们称之为 hard voting classifier

当然有hard,同样有soft voting classifier:

 

我们想一下,我们在做投票的时候,不同的角色投的票应该加上权值,简单的说术业有专攻,专业人对相应专业的问题的回答的权重应当是要高一点的。

给投票加上权值,就是我们说的soft voting classifier

用图来表示下:

所以,基于我们的soft voting,就要求我们的每一个模型都要能估算概率

但是,这里还有一个问题就是就算我们的模型有几个,但是对我们投票的机制来说,数量还是太小了。

所以我们考虑将我们在我们的样本数据中本次拿出一部分数据出来作为训练集。

比如,500个样本数据每次拿出100个,

拿样本数据有2种,一种就是不放回取样,称为pasting

一种是放回取样,称为bagging,bagging会更常用。统计学中也叫bootstrap

如果我们的样本数量减少了,每个模型的准确率肯定会随之下降,

但是,如果我们模型足够多的,准确率可能会比但是模型训练更高。

我们来看下

当然,我们不可能每个模型都这么高达60%准确率,但是得出来的结果还是很好的、

关于参数的学习可以自学

如果我们在取样中没有取到一些数据,我们直接拿这些数据用来当我们的测试集。

有个oob_score_属性可以直接取到

 

随机森林:

看图中,结合我们刚才说的集成学习。

使用决策树作为我们的基本算法,采用bagging的取样方式,进行集成学习就叫做随机森林

 

还有一种extra tree

 

其他的等下次有时间再写了。还有关于boosting,stacking之类的

 

这篇关于6.0 —随机森林原理(RF)和集成学习(Bagging和Pasting)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1120194

相关文章

Redis主从/哨兵机制原理分析

《Redis主从/哨兵机制原理分析》本文介绍了Redis的主从复制和哨兵机制,主从复制实现了数据的热备份和负载均衡,而哨兵机制可以监控Redis集群,实现自动故障转移,哨兵机制通过监控、下线、选举和故... 目录一、主从复制1.1 什么是主从复制1.2 主从复制的作用1.3 主从复制原理1.3.1 全量复制

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

Redis主从复制的原理分析

《Redis主从复制的原理分析》Redis主从复制通过将数据镜像到多个从节点,实现高可用性和扩展性,主从复制包括初次全量同步和增量同步两个阶段,为优化复制性能,可以采用AOF持久化、调整复制超时时间、... 目录Redis主从复制的原理主从复制概述配置主从复制数据同步过程复制一致性与延迟故障转移机制监控与维

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R

SpringCloud集成AlloyDB的示例代码

《SpringCloud集成AlloyDB的示例代码》AlloyDB是GoogleCloud提供的一种高度可扩展、强性能的关系型数据库服务,它兼容PostgreSQL,并提供了更快的查询性能... 目录1.AlloyDBjavascript是什么?AlloyDB 的工作原理2.搭建测试环境3.代码工程1.

Redis主从复制实现原理分析

《Redis主从复制实现原理分析》Redis主从复制通过Sync和CommandPropagate阶段实现数据同步,2.8版本后引入Psync指令,根据复制偏移量进行全量或部分同步,优化了数据传输效率... 目录Redis主DodMIK从复制实现原理实现原理Psync: 2.8版本后总结Redis主从复制实

SpringBoot使用注解集成Redis缓存的示例代码

《SpringBoot使用注解集成Redis缓存的示例代码》:本文主要介绍在SpringBoot中使用注解集成Redis缓存的步骤,包括添加依赖、创建相关配置类、需要缓存数据的类(Tes... 目录一、创建 Caching 配置类二、创建需要缓存数据的类三、测试方法Spring Boot 熟悉后,集成一个外

Docker集成CI/CD的项目实践

《Docker集成CI/CD的项目实践》本文主要介绍了Docker集成CI/CD的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、引言1.1 什么是 CI/CD?1.2 docker 在 CI/CD 中的作用二、Docke

使用C#如何创建人名或其他物体随机分组

《使用C#如何创建人名或其他物体随机分组》文章描述了一个随机分配人员到多个团队的代码示例,包括将人员列表随机化并根据组数分配到不同组,最后按组号排序显示结果... 目录C#创建人名或其他物体随机分组此示例使用以下代码将人员分配到组代码首先将lstPeople ListBox总结C#创建人名或其他物体随机分组

SpringBoot集成SOL链的详细过程

《SpringBoot集成SOL链的详细过程》Solanaj是一个用于与Solana区块链交互的Java库,它为Java开发者提供了一套功能丰富的API,使得在Java环境中可以轻松构建与Solana... 目录一、什么是solanaj?二、Pom依赖三、主要类3.1 RpcClient3.2 Public