大连理工大学选修课——机器学习笔记(7):集成学习及随机森林

集成学习及随机森林

集成学习概述

泛化能力的局限

每种学习模型的能力都有其上限

  • 限制于特定结构
  • 受限于训练样本的质量和规模

如何再提高泛化能力?

  • 研究新结构
  • 扩大训练规模

提升模型的泛化能力

创造性思路

  • 组合多个学习模型

集成学习

集成学习不是特定的学习模型,而实一种构建模型的思路,一种训练学习的思想

强可学习和弱可学习

强可学习:对于一个概念或者一个类,如果存在一个多项式学习算法可以学习它,正确率高,则该概念是强可学习的。

弱可学习:如果能学习,但正确率只比瞎猜略好,则称为弱可学习。

也已证明,强可学习和弱可学习等价:

如果一个问题存在弱可学习算法,则必然存在强可学习算法

为集成学习奠定了基础

在这里插入图片描述

集成学习的基本问题

如何建立或选择弱学习模型

弱学习模型通常是单个的模型,是被集成的成员

如何制定组合策略

如何将多个学习模型的预测结果整合在一起

不同的组合策略会带来不同的结果

构建弱学习模型的策略

通常弱学习模型都是同类学习模型

同类模型之间的关系

  1. 无依赖关系

    • 系列成员模型可以并行生成
    • 代表算法:bagging,随机森林
  2. 强依赖关系

    • 系列成员模型可串行生成
    • 代表算法:boosting、梯度提升树
  3. 平均法

    1. 处理回归问题

    2. 对弱学习模型的输出进行平均得到最终的预测输出

      H ( x ) = 1 n ∑ i = 1 n h i ( x ) H(x)=\frac{1}{n}\sum_{i=1}^nh_i(x) H(x)=n1i=1nhi(x)

    3. 也可以引入权重

      H ( x ) = 1 n ∑ i = 1 n w i h i ( x ) H(x)=\frac{1}{n}\sum_{i=1}^nw_ih_i(x) H(x)=n1i=1nwihi(x)

  4. 投票法

  • 处理分类问题

    少数服从多数,最大票数相同则随机选择

    也可以新增加要求,例如票数过半

    也可以给每个成员不同的投票权重

  1. 再学习法

    平均法和投票法可能带来大学习误差

    • 再学习
      • 建立新的学习模型:再集成学习的组合端增加一个学习模型

      • 成员学习的模型输出作为新的学习模型的输入,集成模型的数量为n,新数据集维度为n

      • 代表方法:stacking

        在这里插入图片描述

Bagging

——Bagging Aggregating的缩写

Bootstrap是一种有放回操作的抽样方法

  • 抽取的样本会有重复

在这里,用来指导构建弱分类器

  • 使用同类学习模型时采用的策略

  • 可降低模型过拟合的可能性

    在这里插入图片描述

采样过程说明

  • 样本集规模为M,采样集规模也为M

    • 样本集的样本不减少,每次采集后还要放回,因此同一样本可能会多次采集到。
    • 每次随机采集一个样本,随机采集M次,组成采样集
    • 随机采样,组成规模为M的n个采样集
      • 由于随机性,n个采样集不完全一样
      • 训练出的弱学习模型也存在差别
  • 采样集中不被选中样本的概率

    每次采样,每个样本不被选中的概率为:

    p ( x ) = 1 − 1 M p(x)=1-\frac{1}{M} p(x)=1M1

    M次不被选中的概率为:

    p ( x ) = ( 1 − 1 M ) M lim ⁡ M → ∞ ( 1 − 1 M ) M = 1 e ≈ 0.368 p(x)=(1-\frac{1}{M})^M\\ \lim_{M\to\infty}(1-\frac{1}{M})^M=\frac{1}{e}\approx0.368 p(x)=(1M1)MMlim(1M1)M=e10.368

    这些数据称为袋外数据,大约36.8%的样本可以用作测试集

弱学习模型的选择

  • 原则上没有限制,通常选择决策树或神经网络

组合策略

回归问题用平均法,分类问题用投票法

算法描述

在这里插入图片描述

随机森林

——Bagging算法的一个具体实现

  • 采用CART作为弱学习模型
  • 特征选择也引入了随机性
    • 随机选择特征的子集 d s u b < d d_{sub}<d dsub<d
    • 在子集中选择最优的分割特征
    • 该操作可以进一步增强学习模型的泛化能力

极端随机树(ExtraTrees)

极端随机树的弱分类器不依赖于训练的改变

  • 不抽样,也就不使用Bootstrap方法
  • 也不像Boosting那样,改变训练样本权重

它的随机性体现在树结点分裂时的两个随机过程

  1. 随机选择一小部分样本的特征
  2. 随机在部分属性随机选择使结点分裂的属性
    1. 因为不考虑分裂的是不是最优属性,因此有些“极端”。

极端随机树的优势

算法复杂度

  • 对比RandomForest,Extratree更快
    • 不抽样,不选择最优特征

拟合效果

因为不选择最优特征,预测结果的方差大,不易过拟合

基本不用剪枝

泛化能力

在某些领域ExtraTree比RandomForest好些

对于那些训练集分布与真实差别比较大的数据,ExtraTree更有优势

如果弱学习模型引入Bootstrap,随机性会进一步增大

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/79305.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式产品运行中数据丢失怎么办?

目录 1、数据丢失现象与根源分析 2、硬件层优化 3、系统/驱动层优化 4、应用软件层优化 5、文件系统选型深度解析 5.1、NAND Flash 适用文件系统 5.2、eMMC 适用文件系统 6、系统挂载选项优化实践 嵌入式系统在运行过程中&#xff0c;尤其是在涉及频繁数据写入&#xf…

第十一节:性能优化高频题-响应式数据深度监听问题

解决方案&#xff1a;watch的deep: true选项或watchEffect自动追踪依赖 Vue响应式数据深度监听与性能优化指南 一、深度监听的核心方案 watch的deep: true模式 • Vue2实现&#xff1a;需显式声明深度监听配置 watch: {obj: {handler(newVal) { /* 处理逻辑 */ },deep: tru…

【Linux实践系列】:进程间通信:万字详解命名管道实现通信

&#x1f525; 本文专栏&#xff1a;Linux Linux实践项目 &#x1f338;作者主页&#xff1a;努力努力再努力wz &#x1f4aa; 今日博客励志语录&#xff1a; 与其等待完美的风&#xff0c;不如学会在逆风中调整帆的角度——所有伟大航程都始于此刻出发的勇气 ★★★ 本文前置知…

权力结构下的人才价值重构:从 “工具论” 到 “存在论” 的转变​

引言​ 在现在的公司管理里&#xff0c;常常能听到这样一种说法&#xff1a;“我用你&#xff0c;你才是人才&#xff1b;不用你&#xff0c;你啥都不是。” 这其实反映了一种很常见的评判人才价值的标准&#xff0c;就是只看公司的需求&#xff0c;把人才当作实现公司目标的工…

UE实用地编插件Physical Layout Tool

免费插件 https://www.fab.com/zh-cn/listings/a7fb6fcf-596f-48e9-83cc-f584aea316b1 可以通过物理模拟批量放置物体 不用再一个个摆放了 装饰环境从未如此简单&#xff0c;您不必再考虑对齐物体。 物理地放置物体&#xff0c;移动它们&#xff0c;在移动或在地图上放置物体…

Nerfstudio 环境配置与自有数据集(图片和视频)测试全方位全流程实战【2025最新版!!】

一、引言 神经辐射场(Neural Radiance Fields&#xff0c;简称NeRF)是近年来计算机视觉和图形学领域的一项革命性技术&#xff0c;它能够从2D图像中学习复杂的3D场景表示。然而&#xff0c;NeRF技术的实现和应用门槛较高&#xff0c;需要较为专业的计算机视觉和深度学习知识。…

Transformer:颠覆深度学习的架构革命与技术演进

2017年&#xff0c;谷歌团队在论文《Attention Is All You Need》中提出的Transformer架构&#xff0c;彻底改变了人工智能对序列数据的处理范式。它不仅解决了传统循环神经网络&#xff08;RNN&#xff09;的长期依赖和并行化难题&#xff0c;更催生了BERT、GPT等划时代模型&a…

原型模式(Prototype Pattern)详解

文章目录 1. 什么是原型模式&#xff1f;2. 为什么需要原型模式&#xff1f;3. 原型模式的结构4. 原型模式的基本实现4.1 基础示例&#xff1a;简单的原型模式4.2 使用Java的Cloneable接口 5. 深拷贝与浅拷贝5.1 浅拷贝&#xff08;Shallow Copy&#xff09;5.2 深拷贝&#xf…

掉馅饼,八分之一到二分之一:《分析模式》漫谈59

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 “Analysis Patterns”的第6章“存货和会计”原文&#xff1a; The transactions creation would then be the only place that could create entries. ... Providing only the trans…

使用Python和Pandas实现的Amazon Redshift权限检查与SQL生成用于IT审计

import pandas as pd import psycopg2 from psycopg2 import sql# 连接Redshift conn psycopg2.connect(hostyour-cluster.endpoint.redshift.amazonaws.com,port5439,dbnamedev,useradmin,passwordyour-password )# 权限检查函数 def check_redshift_permissions(conn):"…

Cribl 数据脱敏 更多方法 MASK (三)

我做过好几个cribl 数据脱敏的实验: Cribl 脱敏mask-CSDN博客

Android Studio下载安装教程

## 什么是Android Studio Android Studio是Google官方推出的Android应用开发集成环境(IDE)&#xff0c;基于IntelliJ IDEA开发&#xff0c;专门用于Android应用开发。它包含了代码编辑器、可视化布局编辑器、应用性能分析工具、模拟器等功能&#xff0c;为开发者提供了一站式的…

如何测试登录模块?全面测试思路解析

思路如下: 面试官问"如何测试一个登录模块?"时,考察的是你的测试思维是否全面,能否覆盖功能、安全、性能、兼容性等多个维度。下面我会从不同角度详细展开,确保回答既系统又深入。 1. 功能测试(Functional Testing) 1.1 正常流程测试 ✅ 正确的用户名+密码:…

MySQL基础篇 | 数据库概述及在TencentOS中安装MySQL8.0.42版本

MySQL基础篇 | 在TencentOS中安装MySQL8.0.42版本 1. 数据库概述2. 部署前准备工作2.1. 安装依赖包2.2. GCC版本升级3. MySQL服务部署3.1. 编译部署MySQL3.2. 初始化数据库3.3. 启动数据库4. 数据库配置4.1 配置环境变量4.2. 首次登录设置1. 数据库概述 SQL Server:SQL Server…

Angular教程前言:历史、安装与用途

Angular 是一个强大且流行的开源前端 Web 应用程序框架&#xff0c;由 Google 开发并维护 1。它在现代 Web 开发中占据着重要的地位&#xff0c;尤其在构建动态、高效且可扩展的 Web 应用程序方面表现出色&#xff0c;特别适用于单页应用程序 (SPA) 和复杂的用户界面 1。本教程…

systemd和OpenSSH

1 systemd 1.1 配置文件 /etc/systemd/system /lib/systemd/system /run/systemd/system /usr/lib/systemd/user 1.2 commands systemctl list-unit-files | grep enable systemctl cat dlt-daemon.service systemctl cat dlt-system.service systemctl show dlt-daemon.ser…

如何实现一个可视化的文字编辑器(C语言版)?

一、软件安装 Visual Studio 2022 Visual Studio 2022 是微软提供的强大集成开发环境&#xff08;IDE&#xff09;&#xff0c;广泛用于C/C、C#、Python等多种编程语言的开发。它提供了许多强大的工具&#xff0c;帮助开发者编写、调试和优化代码。 1.下载 Visual Studio 202…

ArrayList的特点及应用场景

ArrayList的特点及应用场景 一、ArrayList核心特点 基于动态数组实现 底层使用Object[]数组存储元素 默认初始容量为10 扩容机制&#xff1a;每次扩容为原来的1.5倍&#xff08;int newCapacity oldCapacity (oldCapacity >> 1)&#xff09; 快速随机访问 实现了R…

深挖Java基础之:变量与类型

今天我要介绍的是在Java中对变量和类型的一些相关知识点的介绍&#xff0c;包括对基本数据类型&#xff0c;引用类型&#xff0c;变量命名规则和类型转换以及其注意事项的解明。 java变量与类型&#xff1a;Java 是静态类型语言&#xff0c;变量必须先声明类型后使用。变量是存…

数据结构与算法学习笔记(Acwing提高课)----动态规划·背包模型(一)

数据结构与算法学习笔记----动态规划背包模型(一) author: 明月清了个风 first publish time: 2025.5.1 ps⭐️背包模型是动态规划中的重要模型&#xff0c;基础课中已对背包模型的几种模版题有了讲解&#xff0c;[链接在这](数据结构与算法学习笔记----背包问题_有 n 件物品…