咱们结合这张图,把 “提升” 想象成 做错题本 + 请老师补课” 的过程:

  1. 第一波数据(最上面的圆圈):“第一次作业”

假设你第一次做 100 道数学题(图中圆圈里的绿点白点代表不同的题),做完后老师批改:

  1. 绿点:你做对的题;
  2. 白点:你做错的题(比如 10 道)。
  3. 第一个模型(最上面的方框):“第一次总结规律”

你根据这 100 道题,总结出一套 “解题模板”(比如 “看到‘鸡兔同笼’就用方程”),但这套模板只能做对 90 道题,10 道白点题还是错。

  1. 第二波数据(中间的圆圈):“错题本重点练”

老师把你做错的 10 道题(白点)标红,让你重点练习。同时,把原来的 100 道题重新混在一起,但这次错题的 “权重” 更高(比如每道错题算 2 道题,普通题算 1 道)。

这样,新的练习册里,错题出现的概率更大,你被迫更关注它们。

  1. 第二个模型(中间的方框):“针对错题补课”

你根据新的练习册(重点是错题),再总结一套新的解题模板(比如 “鸡兔同笼用假设法更快”)。这次,你可能把之前的 5 道错题改对了,但还有 5 道错题。

  1. 第三波数据(最下面的圆圈):“继续补漏”

老师再次把你还没改对的 5 道题标红,继续增加它们的权重,让你重点练习…… 直到你把大部分错题改对。

  1. 最终模型:“综合所有模板”

经过几轮 “做题→总结→补漏”,你有了好几套解题模板。考试时,遇到一道题,你会同时用这几套模板分析,谁在这类题上更准,就听谁的(比如第一套模板在几何题上准,第二套在应用题上准)。

提升(Boosting)的核心逻辑(对应图中箭头)

  1. 从第一波到第二波的箭头:把错误样本(白点)的权重提高,让模型更关注它们;
  2. 每个方框(模型)的箭头:每个模型都在前一个模型的错误上改进
  3. 最终所有模型的输出:能力” 加权投票(比如在某类题上表现好的模型,权重更高)。

总结

先做一套题,找出错题重点练;再做一套题,再找错题重点练…… 最后综合所有经验,谁强听谁的。”

它和装袋(Bagging)的区别是:装袋是 “平行做题,投票决定”,提升是 “串行补漏,强者主导”~

提升算法的使用示例

为了让你更直观地理解提升算法的使用,我们以一个简单的分类任务为例,使用 Python 的scikit-learn库中的AdaBoostClassifier来实现。

假设我们有一个数据集,包含一些样本的特征和对应的类别标签,我们的目标是根据这些特征来预测样本的类别。

# 导入必要的库

from sklearn.ensemble import AdaBoostClassifier

from sklearn.datasets import make_classification

from sklearn.model_selection import train_test_split

from sklearn.metrics import accuracy_score

# 生成一个示例数据集

X, y = make_classification(n_samples=1000, n_features=20, random_state=42)

# 将数据集划分为训练集和测试集

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 创建一个AdaBoost分类器对象

# n_estimators表示使用的弱学习器(这里是决策树)的数量

# random_state用于保证结果的可重复性

clf = AdaBoostClassifier(n_estimators=50, random_state=42)

# 训练模型

clf.fit(X_train, y_train)

# 在测试集上进行预测

y_pred = clf.predict(X_test)

# 计算模型的准确率

accuracy = accuracy_score(y_test, y_pred)

print(f"模型的准确率为: {accuracy}")

在这个示例中:

  1. 首先,我们生成了一个用于分类的示例数据集,其中包含 1000 个样本和 20 个特征。
  2. 然后,我们将数据集划分为训练集和测试集,训练集用于训练模型,测试集用于评估模型的性能。
  3. 接着,我们创建了一个AdaBoostClassifier对象,设置了使用 50 个弱学习器(这里默认是决策树)。
  4. 然后,我们使用训练集对模型进行训练,模型会按照提升算法的原理,逐步构建一系列的弱学习器,并不断调整样本的权重,使得后续的弱学习器更关注那些被之前的弱学习器错误分类的样本。
  5. 训练完成后,我们使用测试集对模型进行预测,并计算模型的准确率来评估其性能。

通过这个示例,你可以看到提升算法是如何通过逐步改进模型来提高分类准确率的。在实际应用中,你可以根据具体的问题和数据特点,选择合适的提升算法和参数,以获得更好的性能。

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

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

相关文章

【生产实践】Linux中NAS挂载丢失后提示“过旧的文件句柄”错误解决

太长不看版: 问题:nas挂载在系统里掉了,使用df或ls访问目录提示过旧的文件句柄解决过程: 和机房联系,发现NAS服务器重启了重新执行mount发现挂不上先umount掉当前挂载,再重新执行mount命令问题解决 umount …

JUnit4

JUnit4 介绍JUnit 是 Java 编程语言的单元测试框架,用于编写和运行可重复的自动化测试。JUnit 特点:JUnit 是一个开放的资源框架,用于编写和运行测试。提供注解来识别测试方法。提供断言来测试预期结果。JUnit 测试允许你编写代码更快&#x…

Python-TCP编程-UDP编程-SocketServer-IO各种概念及多路复用-asyncio-学习笔记

序 欠4前年的一份笔记 ,献给今后的自己。 网络编程 Socket介绍 Socket套接字 Python中提供socket.py标准库,非常底层的接口库。 Socket是一种通用的网络编程接口,和网络层次没有一一对应的关系。 协议族 AF表示Address Family,用于…

Mybatis-开发一个类似mybatisplus的mybatis扩展,该怎么入手?

开发一个类似mybatisplus的mybatis扩展,该怎么入手? 要开发一个类似于 MyBatis-Plus 的 MyBatis 扩展框架,你需要从以下几个核心方面入手,逐步构建出一个功能完整、易用性强、兼容性好的增强型 MyBatis 框架。🧱 一、整…

深入了解linux系统—— 信号的捕捉

前言 信号从产生到处理,可以分为信号产生、信号保存、信号捕捉三个阶段;了解了信号产生和保存,现在来深入了解信号捕捉。 信号捕捉 对于1-31号普通信号,进程可以立即处理,也可以不立即处理而是在合适的时候处理&#x…

twikitFKS: 基于 twikit 2.3.1 的改进版本

twikitFKS: 基于 twikit 2.3.1 的改进版本 项目概述 关于 twikit twikit 是一个优秀的 Twitter API 爬虫库,它的核心优势在于无需 API Key即可访问 Twitter 功能。通过网页爬虫技术,twikit 实现了: 发布推文和媒体内容搜索推文和用户获取…

C Primer Plus 第6版 编程练习——第9章(下)

7.编写一个函数,从标准输入中读取字符,直到遇到文件结尾。程序要报告每个字符是否是字母。如果是,还要报告该字母在字母表中的数值位置。例如,c和C在字母表中的位置都是3。合并一个函数,以一个字符作为参数&#xff0c…

如何用文思助手改好一篇烂材料

在日常工作中,我们常常会遇到这样的问题:因为工作要使用到之前写的文章再看发现内容杂乱无章、或者收到的一些返稿内容质量差,不修改无法使用。但其实它们可能只是缺少了系统性的梳理与打磨。今天我们就来聊一聊,如何对一些不满意…

VSCODE常规设置

摘要:用于新下载的vscode设置一些个人化的操作在 "Files: Auto Save" 下拉菜单中,选择你想要的自动保存模式。常见的选项包括:"off":禁用自动保存。 "afterDelay":在你停止编辑一段时间…

2025秋招突围战:AI智能监考如何重构远程笔试公平防线?

2025秋招季即将来临,企业校招规模预计突破百万量级,远程笔试成为主流筛选方式。然而,传统监考模式暴露出作弊行为难追溯、人力成本过高、数据维度单一等痛点,让HR陷入“效率与公平”的两难困境。牛客AI智能监考系统,通…

Python 基础语法与数据类型(十三) - 实例方法、类方法、静态方法

文章目录1. 实例方法 (Instance Methods)1.1 特点与语法1.2 实例方法示例2. 类方法 (Class Methods)2.1 特点与语法2.2 类方法示例3. 静态方法 (Static Methods)3.1 特点与语法3.2 静态方法示例4. 三种方法的对比总结总结练习题练习题答案创作不易,请各位看官顺手点…

Wireshark的安装和基本使用

文章目录一、Wireshark介绍二、Wireshark安装三、Wireshark讲解1.界面介绍(1)分组列表(2)分组详情(3)分组字节流一、Wireshark介绍 Wireshark 是一款开源的网络协议分析工具,能够捕获、过滤和分…

[yotroy.cool] Git 历史迁移笔记:将 Git 项目嵌入另一个仓库子目录中(保留提交记录)

个人博客https://www.yotroy.cool/,感谢关注~ 图片资源可能显示不全,请前往博客查看哦! 说来惭愧,这篇是AI帮助我解决实际问题后,又生成的一篇博客,效率特别高。 在开发中,我们常会…

91套商业策划创业融资计划书PPT模版

创业融资计划书PPT模版,商业项目技术书PPT模版,商业创业计划书,商业融资企业宣传PPT模版,活动策划方案书PPT模版,IOS风格商业计划书PPT模版 91套商业策划创业融资计划书PPT模版:https://pan.quark.cn/s/739…

探秘阿里云通义九子:解锁AI无限可能

通义九子初印象在当今人工智能飞速发展的时代,阿里云通义九子宛如一颗璀璨的明星,闪耀在 AI 的浩瀚天空中。作为阿里云推出的一系列强大的人工智能模型,通义九子在自然语言处理、图像生成、智能客服等多个领域展现出了卓越的能力,…

Python网络爬虫之requests库

目录 一.网络爬虫的介绍 1.网络爬虫库 2.robot.txt规则 二.requests库 1.requests库的安装 2.get()函数 3.Response对象 Response的属性 设置编码 返回网页内容 text() content() 三.提交信息到网页 post()函数 四.会话与代理服务器 一.网络爬虫的介绍 1.网络爬虫…

区块链技术详解:从原理到应用

引言 区块链作为一项颠覆性技术,已从加密货币的基石演变为重塑多个行业的创新引擎。本文旨在深入解析其核心原理、关键特性、技术架构、主流应用及未来挑战。一、 区块链核心概念:超越加密货币的分布式账本 本质定义: 区块链是一个去中心化、…

用Finalshell连接服务器后出现文件目录不显示,且刷新报错空指针问题记录

修改SSH配置‌编辑sshd_config‌使用管理员权限编辑/etc/ssh/sshd_config文件,找到Subsystem相关配置。原配置为Subsystem sftp /usr/libexec/openssh/sftp-server使用“i”编辑文件将修改为Subsystem sftp internal-sftp修改完成后使用Esc命令,退出编辑…

C语言:游戏代码分享

小游戏分享 目录 小游戏分享 1.井字棋游戏 2.简单计算器游戏 3.猜单词 4.石头剪刀布游戏 5.猜数字游戏 1.井字棋游戏 「33 棋盘上的思维博弈!与好友轮流落子,抢占先机,连成一线即可获胜。简单规则蕴含无限策略,展现你的战术…

深度学习入门-卷积神经网络(CNN)(下)

1-4、 深度学习入门-卷积神经网络(CNN)(上)-CSDN博客 5、 卷积神经网络(CNN)的实现 简单网络的构成是“Convolution - ReLU - Pooling - Affine - ReLU - Affine - Softmax”: 相关代码&#…