一文读懂机器学习大杀器XGBoost原理

article/2025/9/12 12:27:38

【导读】XGBoost是boosting算法的其中一种。Boosting算法的思想是将许多弱分类器集成在一起形成一个强分类器。因为XGBoost是一种提升树模型,所以它是将许多树模型集成在一起,形成一个很强的分类器。而所用到的树模型则是CART回归树模型。讲解其原理前,先讲解一下CART回归树。

一、CART回归树

CART回归树是假设树为二叉树,通过不断将特征进行分裂。比如当前树结点是基于第j个特征值进行分裂的,设该特征值小于s的样本划分为左子树,大于s的样本划分为右子树。

而CART回归树实质上就是在该特征维度对样本空间进行划分,而这种空间划分的优化是一种NP难问题,因此,在决策树模型中是使用启发式方法解决。典型CART回归树产生的目标函数为:

因此,当我们为了求解最优的切分特征j和最优的切分点s,就转化为求解这么一个目标函数:

所以我们只要遍历所有特征的的所有切分点,就能找到最优的切分特征和切分点。最终得到一棵回归树。

二、XGBoost算法思想

该算法思想就是不断地添加树,不断地进行特征分裂来生长一棵树,每次添加一个树,其实是学习一个新函数,去拟合上次预测的残差。当我们训练完成得到k棵树,我们要预测一个样本的分数,其实就是根据这个样本的特征,在每棵树中会落到对应的一个叶子节点,每个叶子节点就对应一个分数,最后只需要将每棵树对应的分数加起来就是该样本的预测值。


http://chatgpt.dhexx.cn/article/GWJUXGXR.shtml

相关文章

XGBoost详解(原理篇)

入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。 目录 一、XGBoost简介 二、XGBoost原理 1、基本组成元素 2、整体思路 (1)训练过程——构建XGBoost模型…

XGBoost 原理介绍

1.简介 XGBoost的全称是eXtreme Gradient Boosting,它是经过优化的分布式梯度提升库,旨在高效、灵活且可移植。XGBoost是大规模并行boosting tree的工具,它是目前最快最好的开源 boosting tree工具包,比常见的工具包快10倍以上。…

「Flink实时数据分析系列」6.基于时间和窗口的算子

来源 | 「Stream Processing with Apache Flink」 作者 | Fabian Hueske and Vasiliki Kalavri 翻译 | 吴邪 大数据4年从业经验,目前就职于广州一家互联网公司,负责大数据基础平台自研、离线计算&实时计算研究 校对 | gongyouliu 编辑 | auroral-L 全…

大数据Hadoop之——Flink DataStream API 和 DataSet API

文章目录 一、DataStream API概述二、什么是DataStream ?三、DataStream 数据处理过程1)Data Sources(数据源)1、Data Sources 原理2、Data Sources 实现方式1)基于文件2)基于套接字3)基于集合4…

数据挖掘常用算法整理

前言: 找工作时(IT行业),除了常见的软件开发以外,机器学习岗位也可以当作是一个选择,不少计算机方向的研究生都会接触这个,如果你的研究方向是机器学习/数据挖掘之类,且又对其非常感…

C++ 26 常用算法

目录 一、概述 1.1 常用遍历算法 1.1.1 算法简介 1.1.2 for_each遍历算法 1.1.3 transform遍历算法 1.2 常用查找算法 1.2.1 算法简介 1.2.2 find 查找算法 1.2.3 find_if 查找算法 1.2.4 adjacent_find 查找算法 1.2.5 binary_search 查找算法 1.2.6 count 查找算法…

干货 | 轻松看懂机器学习十大常用算法

通过本篇文章可以对ML的常用算法有个常识性的认识,没有代码,没有复杂的理论推导,就是图解一下,知道这些算法是什么,它们是怎么应用的,例子主要是分类问题。 每个算法都看了好几个视频,挑出讲的最…

常用十种算法

目录 1、二分查找算法(非递归)二分查找算法(非递归)介绍二分查找算法(非递归)代码实现 2、分治算法分治算法介绍分治算法的基本步骤分治算法最佳实践汉诺塔 3、动态规划动态规划算法介绍应用场景——背包问题 4、KMP算法*next数组生成KMP 算法介绍应用场…

Java常用算法

Java常用算法 一、二分查找算法(非递归) 1、介绍 ​ 二分查找法只适用于从有序的数列中进行查找(比如数字和字母等),将数列排序后再进行查找。 ​ 二分查找法的运行时间为对数时间O(㏒₂n) ,即查找到需要的目标位置最多只需要㏒…

五大常用算法学习笔记

一。分治算法:快速排序、归并排序、大整数乘法、二分查找、递归(汉诺塔) 基本概念:把一个复杂的问题分成若干个相同或相似的子问题,再把子问题分成更小的子问题… , 知道最后子问题可以简单的直接求解&…

常见算法

首页 论坛 新闻 文章 下载 源码 网友作品 合作开发 招聘 刻盘服务 编程爱好者光盘 请登陆或者注册新用户 用户名 密 码 记住密码 注册新用户 忘记密码了 您所在位置:编程爱好者论坛 — C/C语言讨论区 — 我见到过的一些常用算法 C/C语言讨论区:…

最常用算法汇总(一)

一、贪心算法 贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整…

十大常用算法

前言 最近在研究一些经常用到的东西想把它们做一个汇总,想了想用到最多的应该是排序算法,所以对排序算法做了个总结,并自己用C实现了一下。 一、算法概述 0.1 算法分类 十种常见排序算法可以分为两大类: 非线性时间比较类排序…

常用十大算法

这里的讲解图主要使用的是尚硅谷韩顺平老师的图,请周知。 目录 二分查找(非递归) 分治算法 动态规划算法 KMP算法 贪心算法 普利姆(Prim)算法 克鲁斯卡尔(Kruskal)算法 迪杰斯特拉&a…

常见十大算法

优劣术语 - 稳定性 原本a在b前,ab,排序之后位置任然不变。不稳定性则相反 - 内排序 所有排序都在内存中完成。外排序数据放磁盘,排序通过磁盘内存的数据传输 - 事件复杂度 算法执行耗费的时间 - 空间复杂度 算法执行耗费的内存 In/out-place: 不占/占额…

常见的10种算法

常见的10种算法 数据结构研究的内容:就是如何按一定的逻辑结构,把数据组织起来,并选择适当的存储表示方法把逻辑结构组织好的数据存储到计算机的存储器里。 算法研究的目的是为了更有效的处理数据,提高数据运算效率。数据的运算是…

常用的10 种算法

译者:claudio jandan.net/2014/05/31/10-algorithms.html Reddit 有篇帖子介绍了算法对我们现在生活的重要性,以及哪些算法对现代文明所做贡献最大。如果对算法有所了解,读这篇文章时你可能会问 “作者知道算法为何物吗?”&#x…

常用的十种算法

十种算法 1、二分查找算法(非递归) 1、介绍: 1)二分查找只适用于从有序的数列中进行查找(比如数字和字母等),将数列排序后再进行查找 2)二分查找算法的运行时间为对数时间O&…

基础夯实:基础数据结构与算法(二)

基础夯实:基础数据结构与算法(二) 常见的10种算法1、递归算法例题1:计算n!例题2:斐波那契数列例题3:递归将整形数字转换为字符串例题4:汉诺塔例题5:猴子吃桃例题6&#x…

蓝桥杯知识点汇总:基础知识和常用算法

文章目录 JAVA基础语法:算法竞赛常用的JAVA API:算法和数据结构简单算法简单数据结构图论数学贪心动态规划 补充省赛题解待更: 此系列包含蓝桥杯(软件类)所考察的绝大部分知识点。一共分为 基础语法, 常用…