三十二、【人工智能】【机器学习】【监督学习】- XGBoost算法模型

系列文章目录

第一章 【机器学习】初识机器学习

第二章 【机器学习】【监督学习】- 逻辑回归算法 (Logistic Regression)

第三章 【机器学习】【监督学习】- 支持向量机 (SVM)

第四章【机器学习】【监督学习】- K-近邻算法 (K-NN)

第五章【机器学习】【监督学习】- 决策树 (Decision Trees)

第六章【机器学习】【监督学习】- 梯度提升机 (Gradient Boosting Machine, GBM)

第七章 【机器学习】【监督学习】-神经网络 (Neural Networks)

第八章【机器学习】【监督学习】-卷积神经网络 (CNN)

第九章【机器学习】【监督学习】-循环神经网络 (RNN)

第十章【机器学习】【监督学习】-线性回归

第十一章【机器学习】【监督学习】-局部加权线性回归 (Locally Weighted Linear Regression, LWLR)

第十二章【机器学习】【监督学习】- 岭回归 (Ridge Regression)

十三、【机器学习】【监督学习】- Lasso回归 (Least Absolute Shrinkage and Selection Operator)

十四、【机器学习】【监督学习】- 弹性网回归 (Elastic Net Regression)

十五、【机器学习】【监督学习】- 神经网络回归 

十六、【机器学习】【监督学习】- 支持向量回归 (SVR)

十七、【机器学习】【非监督学习】- K-均值 (K-Means) 

十八、【机器学习】【非监督学习】- DBSCAN (Density-Based Spatial Clustering of Applications with Noise)十九、【机器学习】【非监督学习】- 层次聚类 (Hierarchical Clustering)二十、【机器学习】【非监督学习】- 均值漂移 (Mean Shift)

二十一、【机器学习】【非监督学习】- 谱聚类 (Spectral Clustering)​​ 


目录

系列文章目录

一、基本定义

(一)、监督学习

(二)、监督学习的基本流程

(三)、监督学习分类算法(Classification)

二、 XGBoost

(一)、定义

(二)、基本概念

(三)、训练过程

(四)、特点

(五)、适用场景

(六)、扩展

三、总结


一、基本定义

(一)、监督学习

        监督学习(Supervised Learning)是机器学习中的一种主要方法,其核心思想是通过已知的输入-输出对(即带有标签的数据集)来训练模型,从而使模型能够泛化到未见的新数据上,做出正确的预测或分类。在监督学习过程中,算法“学习”的依据是这些已标记的例子,目标是找到输入特征与预期输出之间的映射关系。

(二)、监督学习的基本流程

        数据收集:获取包含输入特征和对应正确输出标签的训练数据集。
        数据预处理:清洗数据,处理缺失值,特征选择与转换,标准化或归一化数据等,以便于模型学习。
        模型选择:选择合适的算法,如决策树、支持向量机、神经网络等。
        训练:使用训练数据集调整模型参数,最小化预测输出与实际标签之间的差距(损失函数)。
        验证与调优:使用验证集评估模型性能,调整超参数以优化模型。
        测试:最后使用独立的测试集评估模型的泛化能力,确保模型不仅在训练数据上表现良好,也能在未见过的新数据上做出准确预测。

(三)、监督学习分类算法(Classification)

        定义:分类任务的目标是学习一个模型,该模型能够将输入数据分配到预定义的几个类别中的一个。这是一个监督学习问题,需要有一组已经标记好类别的训练数据,模型会根据这些数据学习如何区分不同类别。
        例子:垃圾邮件检测(垃圾邮件 vs. 非垃圾邮件)、图像识别(猫 vs. 狗)。


二、 XGBoost

(一)、定义

XGBoost是一种优化的分布式梯度提升决策树算法,由天池(Tianqi Chen)和卡洛斯·戈麦斯(Carlos Guestrin)在2014年提出。它是在梯度提升框架下构建的,专门设计用于提高计算效率和模型性能,尤其在处理大规模数据集时表现优异。

(二)、基本概念

  • 梯度提升:一种迭代的机器学习技术,通过逐步添加新的模型(通常是弱学习器,如决策树)来修正现有模型的残差,从而提高整体模型的预测能力。
  • 决策树:XGBoost使用决策树作为基础模型,通过构建多棵决策树并进行加权组合,形成最终的强学习器。
  • 正则化:XGBoost引入了L1和L2正则化,以防止过拟合,使模型更加稳定。
  • 列块和缓存意识:XGBoost采用了列块的存储方式和缓存意识的访问模式,以优化内存访问,提高计算效率。
  • 并行处理:虽然单个决策树的训练是顺序的,但XGBoost可以在树的层次结构中并行处理节点分裂,加速训练过程。

(三)、训练过程

XGBoost的训练过程是基于梯度提升框架的,它通过迭代地添加决策树来逐步优化模型的预测能力。下面是对XGBoost训练过程的细化说明:

初始化
  • 初值设定:模型的预测从一个常数值开始,通常为训练集中响应变量的平均值或对数几率(对于分类问题)。
迭代训练
  • 目标函数分解:XGBoost的目标函数是可分解的,意味着它能够将目标函数表示为预测值的函数,通常包含损失函数和正则化项。损失函数用于衡量预测值与真实值之间的差距,正则化项用于惩罚模型的复杂度,防止过拟合。

  • 梯度计算:在每一轮迭代中,计算损失函数关于当前预测值的一阶导数(梯度)和二阶导数(Hessian)。这些梯度和Hessian值将被用于后续的树构建过程。

  • 决策树构建

    1. 特征选择:XGBoost使用贪心算法进行特征选择,通过计算每个特征的增益(gain)来决定分裂点。增益是基于梯度和Hessian值计算的,它衡量了分裂带来的预测误差的减少量。
    2. 节点分裂:每个内部节点都将尝试分裂成两个子节点,分裂的标准是最大化增益。分裂过程会受到正则化项的约束,避免生成过于复杂的树结构。
    3. 叶子节点预测值计算:对于每个叶子节点,计算基于梯度和Hessian的加权预测值,这个值将被用于后续的预测。
  • 树的正则化:在树构建完成后,XGBoost会对树进行正则化,包括剪枝和叶子节点权重的正则化,以防止过拟合。

  • 加权更新:将新构建的决策树的预测值加权添加到当前模型的预测值中,权重通常是一个学习率(learning rate),用于控制每次迭代对模型更新的影响程度。

  • 重复迭代:重复上述过程,直到达到预设的迭代次数或满足停止条件(如模型性能不再提升)。

特殊处理
  • 处理缺失值:XGBoost能够自动处理缺失值,通过学习缺失值的最佳方向,使缺失值也能参与到分裂决策中。
  • 并行计算:虽然单棵树的训练是顺序的,但XGBoost通过并行处理树的层次结构和特征选择,加速了训练过程。
  • 正则化项:XGBoost的正则化项包括对树的深度、叶子节点数和叶子节点权重的正则化,有助于控制模型复杂度,提高泛化能力。
结束
  • 最终模型:经过多次迭代,XGBoost将构建出一个由多棵决策树组成的集成模型,这个模型能够对新数据进行预测。

XGBoost的训练过程是高度优化的,它通过一系列的技术创新,如列块存储、缓存意识访问和并行计算,显著提高了训练速度和模型性能,使其成为处理大规模数据集和复杂问题的有力工具。

(四)、特点

  • 高性能:通过高度优化的算法和并行计算,XGBoost能够在较短的时间内处理大规模数据集。
  • 正则化:内置的L1和L2正则化有助于防止过拟合,提高模型的泛化能力。
  • 自动处理缺失值:XGBoost能够自动学习如何处理缺失值,无需预处理即可直接使用。
  • 灵活的目标函数:支持多种损失函数,可以轻松应对分类、回归和排序等多种问题。
  • 内置交叉验证:提供了内置的交叉验证功能,方便模型调参和验证。
  • 可解释性:尽管模型复杂,但通过SHAP(SHapley Additive exPlanations)等工具,仍然可以解释模型的预测逻辑。

(五)、适用场景

XGBoost因其优秀的性能和稳定性,被广泛应用于各种场景,包括但不限于:

  • 分类和回归:从金融风控到医学诊断,XGBoost能够处理各种分类和回归问题。
  • 推荐系统:通过分析用户行为和偏好,XGBoost可以提高推荐系统的准确性和个性化程度。
  • 时间序列预测:在经济预测、能源管理等领域,XGBoost可以预测未来趋势。
  • 自然语言处理:在文本分类、情感分析等任务中,XGBoost可以处理高维稀疏数据。
  • 计算机视觉:在图像识别和目标检测中,XGBoost可以作为特征选择或模型融合的一部分。

(六)、扩展

  • DART (Dropout Regularization in Boosted Trees):一种正则化技术,通过随机丢弃部分树来减少过拟合。
  • 线性模型:除了决策树之外,XGBoost也支持线性模型,适用于特征较少或数据规模较大时。
  • 分布式计算:XGBoost支持在多台机器上进行分布式训练,加速大型数据集的处理。
  • GPU加速:利用GPU的并行计算能力,XGBoost可以进一步加快训练速度。

三、总结

XGBoost因其卓越的性能和广泛的适用性,已成为数据科学和机器学习领域中最受欢迎的算法之一。

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

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

相关文章

将PPT中的元素保存为高清图片

PPT制作流程图,思维导图或者演示图片非常方便,本文主要记录如何将一个在PPT中画好的图片导出为高清图片。 1.在ppt中设计图片 以我在PPT中画的图片为例,将所有元素选中,右键组合,成为一个整体 2.另存为增强型元文件 …

vscode 快速生成vue 格式

1.用快捷Ctrl Shift P唤出控制台 输入“Snippets”并选择 Snippets: Configure User Snippets 2.输入vue,选中vue.json vs code自动生成vue.json文件 3.在 vue.json 中添加模板 {"Print to console": {"prefix": "vue2","b…

AI大语言模型对消防工程知多少?

在过去2年的时间里,大语言模型受到前所未有的关注。ChatGPT的出现更是让人工智能对话风靡一时。我们不再把搜索引擎当作求解问题的唯一途径,AI聊天成为了当前最受欢迎的问题求助工具。 让ChatGPT用通俗的语言解释什么是ChatGPT 什么是大语言模型&#x…

如何看待“低代码”开发平台的兴起

目录 1.概述 1.1.机遇 1.2.挑战 1.3.对开发者工作方式的影响 2.技术概览 2.1.主要特点 2.2.市场现状 2.3.主流低代码平台 2.4.分析 3.效率与质量的权衡 3.1.提高开发效率 3.2.质量与安全隐患 3.3.企业应用开发的利弊分析 4.挑战与机遇 4.1.机遇 4.2.挑战 4.3.…

PHP相关漏洞

一、PHP漏洞原理 1.PHP命令执行漏洞 PHP应用程序有时需要调用一些执行系统命令的函数,如php中的system,exec,shell exec,passthru,popen等,当用户可以控制这些函数的参数时,就可以将恶意系统命…

xlua使用

1. 安装 到 github 移动三个文件夹过去即可 Assets -》Plugins Assets -》Xlua Tools 移动到 unity里面的Assets目录即可 会在工具栏出现Xlua即安装成功 2. 引入基础类 ABMgr.cs using System.Collections; using System.Collections.Generic; using UnityEngine; using Un…

【数据结构之带头双向循环链表的实现】

1.链表的分类 链表的结构有多种多样,以下情况组合起来就有8种(2x2x2)链表结构: 虽然有这么多的链表结构,但是我们实际中最常用的还是两种结构:单链表和双向带头循环链表。 无头单向非循环链表:结…

C#TreeView控件应用

1、代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace TestApp…

IoTDB 入门教程 基础篇②——IoTDB 企业版比开源版本值在哪?

文章目录 一、前文二、功能对比三、可视化控制台四、白名单五、审计日志六、数据备份七、机器学习八、总结 一、前文 IoTDB入门教程——导读 二、功能对比 由天谋科技官网得知,IoTDB(开源版)与TimechoDB(企业版)的功能…

10+ Midjourney V6.1 提示:生成精美的角色海报

前言 近期图像生成界最大的更新是MidjourneyV6.1!我迫不及待地想要开始创作和分享,这次分享的重点是V6.1在角色创作方面的增强。 以下是半天测试的结果,包括提示,专注于角色摄影照片和角色插图。 网上关于这方面的教程虽然很多&…

如何实现Redis和Mysql中数据双写一致性

在我们的实际开发中,我们用到了redis缓存一些常用的数据(如热点数据)用来提高系统的吞吐量。 但是不可以避免的出现了数据的修改场景,这就导致了数据库中的数据和Redis中出现不一致性的情况。如何保证数据一致性就显得非常重要了&…

C语言 | Leetcode C语言题解之第332题重新安排行程

题目&#xff1a; 题解&#xff1a; char* id2str[26 * 26 * 26];int str2id(char* a) {int ret 0;for (int i 0; i < 3; i) {ret ret * 26 a[i] - A;}return ret; }int cmp(const void* _a, const void* _b) {int **a (int**)_a, **b (int**)_b;return (*b)[0] - (*…

MyBatis 如何通过拦截器修改 SQL

目录 1. 实现Interceptor接口2. 注册配置文件 假如我们想实现多租户&#xff0c;或者在某些 SQL 后面自动拼接查询条件。在开发过程中大部分场景可能都是一个查询写一个 SQL 去处理&#xff0c;我们如果想修改最终 SQL 可以通过修改各个 mapper.xml 中的 SQL 来处理。 但实际过…

IDEA 生成类的注释信息

新建任意类&#xff0c;自动生成注释信息&#xff08;选其一&#xff0c;否则会多出一份注释信息&#xff09; 打开File -> Settings -> Editor -> File and Code Templates -> Includes&#xff0c;在File Header中添加如下信息&#xff0c;然后点击OK即可 /** *…

如何在不丢失数据的情况下绕过IPhone密码?

不幸的是&#xff0c;不可能在不丢失数据的情况下绕过 iPhone 密码。通过密码的唯一方法是使用iTunes或iCloud恢复设备。这将清除您设备的内容&#xff0c;因此请务必在恢复之前备份所有重要数据。如果您忘记了密码&#xff0c;请按照以下步骤操作&#xff1a; 1. 将您的 iPhon…

2024年8月8日(python基础)

一、检查并配置python环境&#xff08;python2内置&#xff09; 1、检测是否安装 [rootlocalhost ~]# yum list installed| grep python [rootlocalhost ~]# yum -y install epel-release 2、安装python3 [rootlocalhost ~]# yum -y install python3 最新版3.12可以使用源码安…

视频大怎么压缩小?分享3种视频压缩方法

视频大怎么压缩小&#xff1f;视频文件过大时&#xff0c;压缩视频不仅能帮助我们节省宝贵的存储空间&#xff0c;使其更容易在有限容量的设备中保存&#xff0c;还能显著提升传输效率&#xff0c;特别是在网络条件有限或需要快速分享视频内容的场合。通过专业的压缩工具&#…

Selenium + Python 自动化测试08(截图)

我们的目标是&#xff1a;按照这一套资料学习下来&#xff0c;大家可以独立完成自动化测试的任务。 上一篇我们讨论了滑块的操作方法&#xff0c;本篇文章我们讲述一下截图的操作方法。希望能够帮到爱学的小伙伴。 在实际的测试项目组中我们经常要截屏保存报错信息&#xff0c…

Python的安装环境以及应用

1.环境python2&#xff0c;Python 最新安装3.12可以使用源码安装 查看安装包 [rootpython001 ~]# yum list installed | grep epel 3[rootpython001 ~]# yum list installed | grep python [rootpython001 ~]# yum -y install python3 安装python3 查看版本 [root…

B站监控2.0架构落地实践

背景 众所周知&#xff0c;Metrics指标数据是可观测重要的基石之一&#xff0c;在2021年底的时候&#xff0c;B站基于PromtheusThanos 方案&#xff0c;完成了统一监控平台的落地。但随着B站业务迅猛发展&#xff0c;指标数据级也迎来了爆炸式增长&#xff0c;不仅给现有监控系…