机器学习:集成学习概念、分类、随机森林

article/2025/6/15 6:30:53

本文目录:

  • 一、集成学习概念
    • **核心思想:**
  • 二、集成学习分类
    • (一)Bagging集成
    • (二)Boosting集成
    • (三)两种集成方法对比
  • 三、随机森林

一、集成学习概念

集成学习是一种通过结合多个基学习器(弱学习器)的预测结果来提升模型整体性能的机器学习方法。其核心思想是“集思广益”,通过多样性(Diversity)和集体决策降低方差(Variance)或偏差(Bias),从而提高泛化能力。

核心思想:

弱学习器:指性能略优于随机猜测的简单模型(如决策树桩、线性模型);

强学习器:通过组合多个弱学习器构建的高性能模型;

核心目标:减少过拟合(降低方差)或欠拟合(降低偏差)。

传统机器学习算法 (例如:决策树,逻辑回归等) 的目标都是寻找一个最优分类器尽可能的将训练数据分开。集成学习 (Ensemble Learning) 算法的基本思想就是将多个分类器组合,从而实现一个预测效果更好的集成分类器。集成算法可以说从一方面验证了中国的一句老话:三个臭皮匠,赛过诸葛亮。
在这里插入图片描述

二、集成学习分类

集成学习算法一般分为:bagging和boosting
在这里插入图片描述

(一)Bagging集成

Bagging 框架通过有放回的抽样产生不同的训练集,从而训练具有差异性的弱学习器,然后通过平权投票、多数表决的方式决定预测结果。
在这里插入图片描述

(二)Boosting集成

Boosting 体现了提升思想,每一个训练器重点关注前一个训练器不足的地方进行训练,通过加权投票的方式,得出预测结果。
在这里插入图片描述
Boosting是一组可将弱学习器升为强学习器算法,这类算法的工作机制类似:

1.先从初始训练集训练出一个基学习器;

2.在根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本(增加权重)在后续得到最大的关注;

3.然后基于调整后的样本分布来训练下一个基学习器;

4.如此重复进行,直至基学习器数目达到实现指定的值T为止。

5.再将这T个基学习器进行加权结合得到集成学习器。

简而言之:每新加入一个弱学习器,整体能力就会得到提升
在这里插入图片描述

(三)两种集成方法对比

在这里插入图片描述

三、随机森林

随机森林是基于 Bagging 思想实现的一种集成学习算法,通过构建多棵决策树并结合它们的预测结果来提高模型的准确性和鲁棒性。它由Leo Breiman在2001年提出,广泛应用于分类和回归任务。

其构造过程是:

  1. 训练:
    (1)有放回的产生训练样本;
    (2)随机挑选 n 个特征(n 小于总特征数量)。
  2. 预测:
    (1)分类任务:投票(多数表决);
    (2)回归任务:平均预测值。

优点与缺点:
在这里插入图片描述
实例:

#1.数据导入
#1.1导入数据
import pandas as pd
#1.2.利用pandas的read.csv模块从互联网中收集泰坦尼克号数据集
titanic=pd.read_csv("data/泰坦尼克号.csv")
titanic.info() #查看信息
#2人工选择特征pclass,age,sex
X=titanic[['Pclass','Age','Sex']]
y=titanic['Survived']
#3.特征工程
#数据的填补
X['Age'].fillna(X['Age'].mean(),inplace=True)
X = pd.get_dummies(X)
#数据的切分
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test =train_test_split(X,y,test_size=0.25,random_state=22)#4.使用单一的决策树进行模型的训练及预测分析
from sklearn.tree import DecisionTreeClassifier
dtc=DecisionTreeClassifier()
dtc.fit(X_train,y_train)
dtc_y_pred=dtc.predict(X_test)
dtc.score(X_test,y_test)#5.随机森林进行模型的训练和预测分析
from sklearn.ensemble import RandomForestClassifier
rfc=RandomForestClassifier(max_depth=6,random_state=9)
rfc.fit(X_train,y_train)
rfc_y_pred=rfc.predict(X_test)
rfc.score(X_test,y_test)#6.性能评估
from sklearn.metrics import classification_report
print("dtc_report:",classification_report(dtc_y_pred,y_test))
print("rfc_report:",classification_report(rfc_y_pred,y_test))# 随机森林做预测
# 1 实例化随机森林
rf = RandomForestClassifier()
# 2 定义超参数的选择列表
param={"n_estimators":[80,100,200], "max_depth": [2,4,6,8,10,12],"random_state":[9]}
# 超参数调优
# 3 使用GridSearchCV进行网格搜索
from sklearn.model_selection import GridSearchCV
gc = GridSearchCV(rf, param_grid=param, cv=2)
gc.fit(X_train, y_train)
print("随机森林预测的准确率为:", gc.score(X_test, y_test))

http://www.hkcw.cn/article/cnJqNDJfFe.shtml

相关文章

Python基于SVM技术的手写数字识别问题项目实战

说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在当今数字化转型加速的时代,手写数字识别作为图像处理与机器学习领域的一个经典问题,具有广…

MySQL 全量、增量备份与恢复

一.MySQL 数据库备份概述 备份的主要目的是灾难恢复,备份还可以测试应用、回滚数据修改、查询历史数据、审计等。之前已经学习过如何安装 MySQL,本小节将从生产运维的角度了解备份恢复的分类与方法。 1 数据备份的重要性 在企业中数据的价值至关…

Python Pytest

1.Pytest用例发现规则 1.1 模块名(python文件)名必须以 test_ 开头或 _test 结尾,如 test_case,case_test,下划线都不能少 1.2 模块不能放在 . 开头的隐藏目录或者叫 venv的目录下,virtual environment,叫venv1都可以…

[Linux] MySQL源码编译安装

目录 环境包安装 创建程序用户 解压源码包 配置cmake ​编辑编译 安装 配置修改属性 属主和属组替换成mysql用户管理 系统环境变量配置 初始化数据库 服务管理 启动 环境包安装 yum -y install ncurses ncurses-devel bison cmake gcc gcc-c 重点强调:采…

RK3568-移植codesys-runtime

PC下载安装CODESYS Development System V3.5.17.0 https://store.codesys.com/en/codesys.html#product.attributes.wrapperPC下载安装 CODESYS Control for Linux ARM64 SL 4.1.0.0.package https://store.codesys.com/en/codesys-control-for-linux-arm-sl-1.html 注意&…

安装和配置 Nginx 和 Mysql —— 一步一步配置 Ubuntu Server 的 NodeJS 服务器详细实录6

前言 昨天更新了四篇博客,我们顺利的 安装了 ubuntu server 服务器,并且配置好了 ssh 免密登录服务器,安装好了 服务器常用软件安装, 配置好了 zsh 和 vim 以及 通过 NVM 安装好Nodejs,还有PNPM包管理工具 。 作为服务器的运行…

nav2笔记-250603

合作背景: AMD与Open Navigation在过去几个月里进行了合作,旨在向ROS 2社区展示AMD强大的Ryzen AI、Embedded和Kria能力。 演示内容: 帖子提到,他们已经开始展示如何使用Ryzen AI为自主机器人产品提供动力,在各种现实世…

黑马Java面试笔记之 消息中间件篇(RabbitMQ)

一. 消息丢失问题 RabbitMQ如何保证消息不丢失? 使用场景有: 异步发送(验证码、短信、邮件... )MYSQL和Redis,ES之间的数据同步分布式事务削峰填谷...... 消息丢失原因会有三种情况,分别分析一下 1.1 生…

如何使用插件和子主题添加WordPress自定义CSS(附:常见错误)

您是否曾经想更改网站外观的某些方面,但不知道怎么做?有一个解决方案——您可以将自定义 CSS(层叠样式表)添加到您的WordPress网站! 在本文中,我们将讨论您需要了解的有关CSS的所有知识以及如何使用它来修…

NLP学习路线图(二十):FastText

在自然语言处理(NLP)领域,词向量(Word Embedding)是基石般的存在。它将离散的符号——词语——转化为连续的、富含语义信息的向量表示,使得计算机能够“理解”语言。而在众多词向量模型中,FastT…

小巧实用,Windows文件夹着色软件推荐

软件介绍 本文介绍一款能实现Windows系统文件夹颜色分类的软件。 软件特点 这款软件免费且开源,体积仅1.35MB,小巧轻便,适合喜欢小工具的用户。 软件安装 安装过程十分便捷,打开软件后点击“install”即可完成安装。 基本操作…

解决Vditor加载Markdown网页很慢的问题(Vite+JS+Vditor)

1. 引言 在上一篇文章《使用Vditor将Markdown文档渲染成网页(ViteJSVditor)》中,详细介绍了通过Vditor将Markdown格式文档渲染成Web网页的过程,并且实现了图片格式居中以及图片源更换的功能。不过,笔者发现在加载这个渲染Markdown网页的时候…

leetcode hot100刷题日记——36.最长连续序列

解答&#xff1a; 实际上在哈希表中存储不重复的数字。 然后遍历哈希表&#xff0c;找间隔&#xff0c;更新最大间隔。 class Solution { public:int longestConsecutive(vector<int>& nums) {unordered_set<int>hash;for(int num:nums){hash.insert(num);}in…

Unity Mac 笔记本操作入门

在 macOS 笔记本电脑上使用 Unity Editor 的场景视图 (Scene View) 旋转视角&#xff0c;主要依赖于触摸板手势和键盘修饰键的组合。由于没有物理中键&#xff0c;操作方式会与 Windows 鼠标略有不同。 以下是具体的旋转视角操作&#xff1a; 1. 基本旋转视角 (Orbit) 这是最…

【笔记】使用Media Creation Tool给新主机装win10魔改iso

前提&#xff1a; win10的iso是魔改的 已经下载好在旧电脑 在这里随便挑一个符合你要求的Win10系统下载_Win10专业版_windows10正式版下载 - 系统之家 下载好win10版本的媒体创建工具https://www.microsoft.com/zh-cn/software-download/windows10 制作装机U盘 插入U盘 管理…

深圳南柯电子|储能EMC整改:如何节省70%整改费用的实战方法

在新能源产业蓬勃发展的当下&#xff0c;储能系统作为电网调峰、可再生能源消纳的核心载体&#xff0c;其电磁兼容性&#xff08;EMC&#xff09;问题日益成为制约行业发展的技术瓶颈。EMC&#xff08;Electromagnetic Compatibility&#xff09;即电磁兼容性&#xff0c;指设备…

R1-Searcher++新突破!强化学习如何赋能大模型动态知识获取?

R1-Searcher新突破&#xff01;强化学习如何赋能大模型动态知识获取&#xff1f; 大语言模型&#xff08;LLM&#xff09;虽强大却易因静态知识产生幻觉&#xff0c;检索增强生成&#xff08;RAG&#xff09;技术成破局关键。本文将解读R1-Searcher框架&#xff0c;看其如何通…

用 Vue 做一个轻量离线的“待办清单 + 情绪打卡”小工具

网罗开发 &#xff08;小红书、快手、视频号同名&#xff09; 大家好&#xff0c;我是 展菲&#xff0c;目前在上市企业从事人工智能项目研发管理工作&#xff0c;平时热衷于分享各种编程领域的软硬技能知识以及前沿技术&#xff0c;包括iOS、前端、Harmony OS、Java、Python等…

6-2 MySQL 数据结构选择的合理性

6-2 MySQL 数据结构选择的合理性 文章目录 6-2 MySQL 数据结构选择的合理性1. 全表查询2. Hash 查询3. 二叉搜索树4. AVL 树5. B-Tree6.B Tree7. R树8. 小结附录&#xff1a;算法的时间复杂度9. 最后&#xff1a; 这篇文章是我蹲在《尚硅谷》-康师傅博主家的 WiFi 上(不是)&am…

红黑树与红黑树的插入——用C++实现

一、红黑树简介 红黑树是二叉搜索树的一种&#xff0c;区别于二叉平衡树&#xff0c;红黑树的平衡并不以平衡因子为依据进行平衡的调整而是以五条规则对红黑树进行定义&#xff0c;从而达成树的最长路径最多是树的最短路径的两倍长。以下是红黑树的五条规则&#xff1a; 节点非…