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

相关文章

Debezium 与 Apache Kafka 的集成方式步骤详解

《Debezium与ApacheKafka的集成方式步骤详解》本文详细介绍了如何将Debezium与ApacheKafka集成,包括集成概述、步骤、注意事项等,通过KafkaConnect,D... 目录一、集成概述二、集成步骤1. 准备 Kafka 环境2. 配置 Kafka Connect3. 安装 D

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

MySQL中的MVCC底层原理解读

《MySQL中的MVCC底层原理解读》本文详细介绍了MySQL中的多版本并发控制(MVCC)机制,包括版本链、ReadView以及在不同事务隔离级别下MVCC的工作原理,通过一个具体的示例演示了在可重... 目录简介ReadView版本链演示过程总结简介MVCC(Multi-Version Concurr

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf

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.