机器学习_第二篇 分类算法(4)_集成学习【bagging(袋装法)】

2024-03-07 23:20

本文主要是介绍机器学习_第二篇 分类算法(4)_集成学习【bagging(袋装法)】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Bagging(bootstrap aggregating)采用的是随机有放回的选择训练数据构造分类器,最后组合。(一种根据均匀概率分布从数据中重复抽样(有放回)的技术)

随机森林是bagging中的一种方法。以随机森林为例进行说明

随机森林是构造很多颗决策树,形成一个森林,然后用这些决策树共同决策输出类别是什么。

随机森林算法是在构建单一决策树的基础上进行的,同时它也是对单一决策树算法的延伸和改进。

在整个随机森林算法的过程中,有两个随机过程:a. 输入数据—>随机从整体训练数据集中选取一部分作为一颗决策树的构建,而且是有放回的选取。 b. 特征选取—>每棵决策树所需的特征是从整体的特征集中随机选取的。

(这两个随机过程使得随机森林很大程度上避免了过拟合现象的出现)

A、随机森林算法具体实现过程:

  1. 从训练数据中选取n个数据作为训练数据的输入,一般情况下n是远远小于整体的训练数据N,这样就会造成有一部分数据是无法被去到的,这部分数据被称为袋外数据,可以使用袋外数据做误差分析。
  2. 选取输入的训练数据后,构建决策树(方法:每一个分裂节点从整体的特征集M中选取m个特征构建,一般情况下m远小于M,通常是log2或者sqrt的数量),从这m个属性中根据某种策略(如gini减少或信息增益等)确定分裂属性。
  3. 重复b步骤,直到不能分裂或达到我们设定的阈值(如叶子结点树或的树的深度),此时建立了一个决策树
  4. 重复上面的a,b,c步骤,直到达到预定树的颗数为止。

 

随机森林算法的注意点:

1、 在构建决策树的过程中是不需要剪枝的。 
2、 整个森林的树的数量和每棵树的特征需要人为进行设定。 
3、 构建决策树的时候分裂节点的选择是依据最小基尼系数的。

随机森林有很多的优点:

a. 在数据集上表现良好,两个随机性的引入,使得随机森林不容易陷入过拟合。

b. 在当前的很多数据集上,相对其他算法有着很大的优势,两个随机性的引入,使得随机森林具有很好的抗噪声能力。

c. 它能够处理很高维度(feature很多)的数据,并且不用做特征选择,对数据集的适应能力强:既能处理离散型数据,也能处理连续型数据,数据集无需规范化。

d. 在创建随机森林的时候,对generlization error使用的是无偏估计。

e. 训练速度快,可以得到变量重要性排序。

f. 在训练过程中,能够检测到feature间的互相影响。

g 容易做成并行化方法。

h. 实现比较简单。

 

这篇关于机器学习_第二篇 分类算法(4)_集成学习【bagging(袋装法)】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

Apache Ignite 与 Spring Boot 集成详细指南

《ApacheIgnite与SpringBoot集成详细指南》ApacheIgnite官方指南详解如何通过SpringBootStarter扩展实现自动配置,支持厚/轻客户端模式,简化Ign... 目录 一、背景:为什么需要这个集成? 二、两种集成方式(对应两种客户端模型) 三、方式一:自动配置 Thick

OpenCV在Java中的完整集成指南分享

《OpenCV在Java中的完整集成指南分享》本文详解了在Java中集成OpenCV的方法,涵盖jar包导入、dll配置、JNI路径设置及跨平台兼容性处理,提供了图像处理、特征检测、实时视频分析等应用... 目录1. OpenCV简介与应用领域1.1 OpenCV的诞生与发展1.2 OpenCV的应用领域2

SpringBoot集成MyBatis实现SQL拦截器的实战指南

《SpringBoot集成MyBatis实现SQL拦截器的实战指南》这篇文章主要为大家详细介绍了SpringBoot集成MyBatis实现SQL拦截器的相关知识,文中的示例代码讲解详细,有需要的小伙伴... 目录一、为什么需要SQL拦截器?二、MyBATis拦截器基础2.1 核心接口:Interceptor

SpringBoot集成EasyPoi实现Excel模板导出成PDF文件

《SpringBoot集成EasyPoi实现Excel模板导出成PDF文件》在日常工作中,我们经常需要将数据导出成Excel表格或PDF文件,本文将介绍如何在SpringBoot项目中集成EasyPo... 目录前言摘要简介源代码解析应用场景案例优缺点分析类代码方法介绍测试用例小结前言在日常工作中,我们经

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

Java中的雪花算法Snowflake解析与实践技巧

《Java中的雪花算法Snowflake解析与实践技巧》本文解析了雪花算法的原理、Java实现及生产实践,涵盖ID结构、位运算技巧、时钟回拨处理、WorkerId分配等关键点,并探讨了百度UidGen... 目录一、雪花算法核心原理1.1 算法起源1.2 ID结构详解1.3 核心特性二、Java实现解析2.

在Spring Boot中集成RabbitMQ的实战记录

《在SpringBoot中集成RabbitMQ的实战记录》本文介绍SpringBoot集成RabbitMQ的步骤,涵盖配置连接、消息发送与接收,并对比两种定义Exchange与队列的方式:手动声明(... 目录前言准备工作1. 安装 RabbitMQ2. 消息发送者(Producer)配置1. 创建 Spr

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅

MySQL中的索引结构和分类实战案例详解

《MySQL中的索引结构和分类实战案例详解》本文详解MySQL索引结构与分类,涵盖B树、B+树、哈希及全文索引,分析其原理与优劣势,并结合实战案例探讨创建、管理及优化技巧,助力提升查询性能,感兴趣的朋... 目录一、索引概述1.1 索引的定义与作用1.2 索引的基本原理二、索引结构详解2.1 B树索引2.2