通俗、有逻辑的写一篇说下Xgboost的原理,供讨论参考

XGBoost详解(原理篇) XGBoost全称为eXtreme Gradient Boosting,即极致梯度提升树。XGBoost是Boosting算法的其中一种,Boosting算法的思想是将许多弱分类器集成在一起,形成一个强分类器(个体学习器间存在强依赖关系,必须串行生成的序列化方法)。Note:关于Boosting算法详见博文集成学习详解_tt丫的博客-优快云博客XGBoost是一种提升树模型,即它将许多树模型集成在一起,形成一个很强的分类器。其中所用到的树模型则是CART回归树模型。 阅读详情
AI摘要

本文深入浅出地介绍了Xgboost的工作原理,包括决策树的概念、Xgboost的建树过程及算法特点。详细解析了Xgboost如何通过贪心策略与最优化方法选择最佳分裂点,以及它在并行计算、防止过拟合等方面的独特优势。

初看Xgboost,翻了多篇博客发现关于xgboost原理的描述实在难以忍受,缺乏逻辑性,写一篇供讨论。

——以下是抛砖引玉。
观其大略,而后深入细节,一开始扎进公式反正我是觉得效率不高,还容易打消人的积极性。

首先说下决策树

  • 决策树是啥?
    举个例子,有一堆人,我让你分出男女,你依靠头发长短将人群分为两拨,长发的为“女”,短发为“男”,你是不是依靠一个指标“头发长短”将人群进行了划分,你就形成了一个简单的决策树,官方细节版本自行baidu或google

  • 划分的依据是啥?
    这个时候,你肯定问,为什么用“头发长短”划分啊,我可不可以用“穿的鞋子是否是高跟鞋”,“有没有喉结”等等这些来划分啊,Of course!那么肯定就需要判断了,那就是哪一种分类效果好,我就选哪一种啊。

  • 分类效果如何评价量化呢?
    怎么判断“头发长短”或者“是否有喉结”…是最好的划分方式,效果怎么量化。直观来说,如果根据某个标准分裂人群后,纯度越高效果越好,比如说你分为两群,“女”那一群都是女的,“男”那一群全是男的,这个效果是最好的,但事实不可能那么巧合,所以越接近这种情况,我们认为效果越好。于是量化的方式有很多,信息增益(ID3)、信息增益率(C4.5)、基尼系数(CART)等等,来用来量化纯度

  • 其他细节如剪枝、过拟合、优缺点、并行情况等自己去查吧。决策树的灵魂就已经有了,依靠某种指标进行树的分裂达到分类/回归的目的(上面的例子是分类),总是希望纯度越高越好。

说下Xgboost的建树过程

Xgboost是很多CART回归树集成

  • 概念1:回归树与决策树
    事实上,分类与回归是一个型号的东西,只不过分类的结果是离散值,回归是连续的,本质是一样的,都是特征(feature)到结果/标签(label)之间的映射。说说决策树和回归树,在上面决策树的讲解中相信决策树分类已经很好理解了。

    回归树是个啥呢?

    直接摘抄人家的一句话,分类树的样本输出(即响应值)是类的形式,如判断蘑菇是有毒还是无毒,周末去看电影还是不去。而回归树的样本输出是数值的形式,比如给某人发放房屋贷款的数额就是具体的数值,可以是0到120万元之间的任意值。

    那么,这时候你就没法用上述的信息增益、信息增益率、基尼系数来判定树的节点分裂了,你就会采用新的方式,预测误差,常用的有均方误差、对数误差等。而且节点不再是类别,是数值(预测值),那么怎么确定呢,有的是节点内样本均值,有的是最优化算出来的比如Xgboost。
    细节http://blog.youkuaiyun.com/app_12062011/article/details/52136117博主讲的不错

  • 概念2:boosting集成学习,由多个相关联的决策树联合决策,什么叫相关联,举个例子,有一个样本[数据->标签]是[(2,4,5)-> 4],第一棵决策树用这个样本训练得预测为3.3,那么第二棵决策树训练时的输入,这个样本就变成了[(2,4,5)-> 0.7],也就是说,下一棵决策树输入样本会与前面决策树的训练和预测相关。

    与之对比的是random foreast(随机森林)算法,各个决策树是独立的、每个决策树在样本堆里随机选一批样本,随机选一批特征进行独立训练,各个决策树之间没有啥毛线关系。

    所以首先Xgboost首先是一个boosting的集成学习,这样应该很通俗了

  • 这个时候大家就能感觉到一个回归树形成的关键点:(1)分裂点依据什么来划分(如前面说的均方误差最小,loss);(2)分类后的节点预测值是多少(如前面说,有一种是将叶子节点下各样本实际值得均值作为叶子节点预测误差,或者计算所得)

是时候看看Xgboost了

首先明确下我们的目标,希望建立K个回归树,使得树群的预测值尽量接近真实值(准确率)而且有尽量大的泛化能力(更为本质的东西),从数学角度看这是一个泛函最优化,多目标,看下目标函数:

L(ϕ)=∑il(ŷ i−yi)+∑kΩ(fk)

其中 i 表示第i个样本, l((ŷ i−yi) 表示第 i 个样本的预测误差,误差越小越好,不然你算得上预测么?后面 ∑kΩ(fk) 表示树的复杂度的函数,越小复杂度越低,泛化能力越强,这意味着啥不用我多说。表达式为
Ω(f)=γT+12λ||w||2

T 表示叶子节点的个数,w表示节点的数值(这是回归树的东西,分类树对应的是类别)

直观上看,目标要求预测误差尽量小,叶子节点尽量少,节点数值尽量不极端(这个怎么看,如果某个样本label数值为4,那么第一个回归树预测3,第二个预测为1;另外一组回归树,一个预测2,一个预测2,那么倾向后一种,为什么呢?前一种情况,第一棵树学的太多,太接近4,也就意味着有较大的过拟合的风险)

ok,听起来很美好,可是怎么实现呢,上面这个目标函数跟实际的参数怎么联系起来,记得我们说过,回归树的参数:(1)选取哪个feature分裂节点呢;(2)节点的预测值(总不能靠取平均值这么粗暴不讲道理的方式吧,好歹高级一点)。上述形而上的公式并没有“直接”解决这两个,那么是如何间接解决的呢?

先说答案:贪心策略+最优化(二次最优化,恩你没看错)

通俗解释贪心策略:就是决策时刻按照当前目标最优化决定,说白了就是眼前利益最大化决定,“目光短浅”策略,他的优缺点细节大家自己去了解,经典背包问题等等。

这里是怎么用贪心策略的呢,刚开始你有一群样本,放在第一个节点,这时候 T=1 , w 多少呢,不知道,是求出来的,这时候所有样本的预测值都是w(这个地方自己好好理解,决策树的节点表示类别,回归树的节点表示预测值),带入样本的label数值,此时loss function变为

L(ϕ)=∑il(w−yi)+γ+12λ||w||2

如果这里的 l(w−yi) 误差表示用的是平方误差,那么上述函数就是一个关于 w 的二次函数求最小值,取最小值的点就是这个节点的预测值,最小的函数值为最小损失函数。

暂停下,这里你发现了没,二次函数最优化!
要是损失函数不是二次函数咋办,哦,泰勒展开式会否?,不是二次的想办法近似为二次。

接着来,接下来要选个feature分裂成两个节点,变成一棵弱小的树苗,那么需要:(1)确定分裂用的feature,how?最简单的是粗暴的枚举,选择loss function效果最好的那个(关于粗暴枚举,Xgboost的改良并行方式咱们后面看);(2)如何确立节点的w以及最小的loss function,大声告诉我怎么做?对,二次函数的求最值(细节的会注意到,计算二次最值是不是有固定套路,导数=0的点,ok)

那么节奏是,选择一个feature分裂,计算loss function最小值,然后再选一个feature分裂,又得到一个loss function最小值…你枚举完,找一个效果最好的,把树给分裂,就得到了小树苗。

在分裂的时候,你可以注意到,每次节点分裂,loss function被影响的只有这个节点的样本,因而每次分裂,计算分裂的增益(loss function的降低量)只需要关注打算分裂的那个节点的样本。原论文这里会推导出一个优雅的公式,我不想敲latex公式了,

这里写图片描述

想研究公式的去这里吧
http://matafight.github.io/2017/03/14/XGBoost-%E7%AE%80%E4%BB%8B/….

接下来,继续分裂,按照上述的方式,形成一棵树,再形成一棵树,每次在上一次的预测基础上取最优进一步分裂/建树,是不是贪心策略?!

凡是这种循环迭代的方式必定有停止条件,什么时候停止呢:
(1)当引入的分裂带来的增益小于一个阀值的时候,我们可以剪掉这个分裂,所以并不是每一次分裂loss function整体都会增加的,有点预剪枝的意思(其实我这里有点疑问的,一般后剪枝效果比预剪枝要好点吧,只不过复杂麻烦些,这里大神请指教,为啥这里使用的是预剪枝的思想,当然Xgboost支持后剪枝),阈值参数为 γ 正则项里叶子节点数T的系数(大神请确认下);
(2)当树达到最大深度时则停止建立决策树,设置一个超参数max_depth,这个好理解吧,树太深很容易出现的情况学习局部样本,过拟合;
(3)当样本权重和小于设定阈值时则停止建树,这个解释一下,涉及到一个超参数-最小的样本权重和min_child_weight,和GBM的 min_child_leaf 参数类似,但不完全一样,大意就是一个叶子节点样本太少了,也终止同样是过拟合;
(4)貌似看到过有树的最大数量的…这个不确定
具体数学推导细节(只要是那个节点分裂增益计算的公式),请参看作者(论文作者哦)介绍,很细致!http://www.52cs.org/?p=429,上面那个也可以
问题1:节点分裂的时候是按照哪个顺序来的,比如第一次分裂后有两个叶子节点,先裂哪一个?
答案:呃,同一层级的(多机)并行,确立如何分裂或者不分裂成为叶子节点,来源
https://wenku.baidu.com/view/44778c9c312b3169a551a460.html

看下Xgboost的一些重点

  • w 是最优化求出来的,不是啥平均值或规则指定的,这个算是一个思路上的新颖吧;

  • 正则化防止过拟合的技术,上述看到了,直接loss function里面就有;

  • 支持自定义loss function,哈哈,不用我多说,只要能泰勒展开(能求一阶导和二阶导)就行,你开心就好;

  • 支持并行化,这个地方有必要说明下,因为这是xgboost的闪光点,直接的效果是训练速度快,boosting技术中下一棵树依赖上述树的训练和预测,所以树与树之间应该是只能串行!那么大家想想,哪里可以并行?!
    没错,在选择最佳分裂点,进行枚举的时候并行!(据说恰好这个也是树形成最耗时的阶段)

    Attention:同层级节点可并行。具体的对于某个节点,节点内选择最佳分裂点,候选分裂点计算增益用多线程并行。—–

    较少的离散值作为分割点倒是很简单,比如“是否是单身”来分裂节点计算增益是很easy,但是“月收入”这种feature,取值很多,从5k~50k都有,总不可能每个分割点都来试一下计算分裂增益吧?(比如月收入feature有1000个取值,难道你把这1000个用作分割候选?缺点1:计算量,缺点2:出现叶子节点样本过少,过拟合)我们常用的习惯就是划分区间,那么问题来了,这个区间分割点如何确定(难道平均分割),作者是这么做的:

    方法名字:Weighted Quantile Sketch
    大家还记得每个样本在节点(将要分裂的节点)处的loss function一阶导数gi和二阶导数 hi ,衡量预测值变化带来的loss function变化,举例来说,将样本“月收入”进行升序排列,5k、5.2k、5.3k、…、52k,分割线为“收入1”、“收入2”、…、“收入j”,满足(每个间隔的样本的 hi 之和/总样本的 hi 之和)为某个百分比 ϵ (我这个是近似的说法),那么可以一共分成大约 1/ϵ 个分裂点。
    数学形式,我再偷懒下(可是latex敲这种公式真的很头疼):
    这里写图片描述
    而且,有适用于分布式的算法设计;

  • XGBoost还特别设计了针对稀疏数据的算法,
    假设样本的第i个特征缺失时,无法利用该特征对样本进行划分,这里的做法是将该样本默认地分到指定的子节点,至于具体地分到哪个节点还需要某算法来计算,

    算法的主要思想是,分别假设特征缺失的样本属于右子树和左子树,而且只在不缺失的样本上迭代,分别计算缺失样本属于右子树和左子树的增益,选择增益最大的方向为缺失数据的默认方向(咋一看如果缺失情况为3个样本,那么划分的组合方式岂不是有8种?指数级可能性啊,仔细一看,应该是在不缺失样本情况下分裂后(有大神的请确认或者修正),把第一个缺失样本放左边计算下loss function和放右边进行比较,同样对付第二个、第三个…缺失样本,这么看来又是可以并行的??);

  • 可实现后剪枝
  • 交叉验证,方便选择最好的参数,early stop,比如你发现30棵树预测已经很好了,不用进一步学习残差了,那么停止建树。

  • 行采样、列采样,随机森林的套路(防止过拟合)

  • Shrinkage,你可以是几个回归树的叶子节点之和为预测值,也可以是加权,比如第一棵树预测值为3.3,label为4.0,第二棵树才学0.7,….再后面的树还学个鬼,所以给他打个折扣,比如3折,那么第二棵树训练的残差为4.0-3.3*0.3=3.01,这就可以发挥了啦,以此类推,作用是啥,防止过拟合,如果对于“伪残差”学习,那更像梯度下降里面的学习率;

  • xgboost还支持设置样本权重,这个权重体现在梯度g和二阶梯度h上,是不是有点adaboost的意思,重点关注某些样本

看下Xgboost的工程优化

这部分因为没有实战经验,都是论文、博客解读来的,所以也不十分确定,供参考。

  • Column Block for Parallel Learning
    总的来说:按列切开,升序存放;
    方便并行,同时解决一次性样本读入炸内存的情况

    由于将数据按列存储,可以同时访问所有列,那么可以对所有属性同时执行split finding算法,从而并行化split finding(切分点寻找)-特征间并行
    可以用多个block(Multiple blocks)分别存储不同的样本集,多个block可以并行计算-特征内并行

  • Blocks for Out-of-core Computation
    数据大时分成多个block存在磁盘上,在计算过程中,用另外的线程读取数据,但是由于磁盘IO速度太慢,通常更不上计算的速度,
    将block按列压缩,对于行索引,只保存第一个索引值,然后只保存该数据与第一个索引值之差(offset),一共用16个bits来保存 offset,因此,一个block一般有 216 个样本。
  • …

与GDBT、深度学习对比下

Xgboost第一感觉就是防止过拟合+各种支持分布式/并行,所以一般传言这种大杀器效果好(集成学习的高配)+训练效率高(分布式),与深度学习相比,对样本量和特征数据类型要求没那么苛刻,适用范围广。

说下GBDT:有两种描述版本,把GBDT说成一个迭代残差树,认为每一棵迭代树都在学习前N-1棵树的残差;把GBDT说成一个梯度迭代树,使用梯度迭代下降法求解,认为每一棵迭代树都在学习前N-1棵树的梯度下降值。有说法说前者是后者在loss function为平方误差下的特殊情况。这里说下我的理解,仍然举个例子:第一棵树形成之后,有预测值 ŷ i ,真实值(label)为 yi ,前者版本表示下一棵回归树根据样本 (xi,yi−ŷ i) 进行学习,后者的意思是计算loss function在第一棵树预测值附近的梯度负值作为新的label,也就是对应xgboost中的 −gi

这里真心有个疑问:
Xgboost在下一棵树拟合的是残差还是负梯度,还是说是一阶导数+二阶导数, −gi(1+hi) ?可能人蠢,没看太懂,换句话说GBDT残差树群有一种拟合的(输入样本)是 (xi,yi−ŷ i) ,还一种拟合的是 (xi,−gi) ,Xgboost呢?

Xgboost和深度学习的关系,陈天奇在Quora上的解答如下:
不同的机器学习模型适用于不同类型的任务。深度神经网络通过对时空位置建模,能够很好地捕获图像、语音、文本等高维数据。而基于树模型的XGBoost则能很好地处理表格数据,同时还拥有一些深度神经网络所没有的特性(如:模型的可解释性、输入数据的不变性、更易于调参等)。
这两类模型都很重要,并广泛用于数据科学竞赛和工业界。举例来说,几乎所有采用机器学习技术的公司都在使用tree boosting,同时XGBoost已经给业界带来了很大的影响。

参考文献/博文

(有的可能需要vpn)
原论文-https://arxiv.org/pdf/1603.02754v1.pdf
博客1-http://blog.youkuaiyun.com/a358463121/article/details/68617389
博客2-http://blog.youkuaiyun.com/sb19931201/article/details/52557382
博客3-http://blog.youkuaiyun.com/xiaocong1990/article/details/55107239
博客4-
http://blog.youkuaiyun.com/totoro1745/article/details/53328725?utm_source=itdadao&utm_medium=referral
资料5-http://matafight.github.io/2017/03/14/XGBoost-%E7%AE%80%E4%BB%8B/
资料6-https://wenku.baidu.com/view/44778c9c312b3169a551a460.html

机器学习---xgboost算法 问题上表现的十分顶尖,本节将较详细的介绍XGBoost的算法原理。成和剪枝分别对应了经验风险最小化和结构风险最小化, XGBoost的决策树生成是结构风险最小。式(1.1)称为经验风险最小化,训练得到的模型复杂度较高。出结果, 是模型的输出结果;等式右边第⼀部分是模型的训练误差,第⼆部分是正则化项,这里。其中,F是假设空间,假设空间是在已知属性和属性可能取值的情况下,对所有可能满足目标的情。最小化,结构风险最小化的模型往往对训练数据以及未知的测试数据都有较好的预测。的正则化项是K棵树的正则化项相加而来的。 阅读详情

相关推荐

天池龙珠计划寒假训练营学习笔记:利用XGBoost进行分析的完整流程

天池龙珠计划寒假训练营学习笔记:利用XGBoost进行分析的完整步骤 工具:天池NoteBook 训练数据10.9MB 训练数据下载链接:https://tianchi-media.oss-cn-beijing.aliyuncs.com/DSW/7XGBoost/train.csv 声明: 本文主要内容来源于天池龙珠计划寒假训练营教材,部分内容有修改。 原文地址: 添加链接描述 1、XGBoost 的优缺点: 1.1 XGBoost的主要优点: 简单易用。相对其他机器学习库,用户可以轻松使用XGBoost

AI_SupplyChain的博客 953

XGBoost模型详解

1.什么是XGBoost?   GBDT,它是一种基于boosting增强策略的加法模型,训练的时候采用前向分布算法进行贪婪的学习,每次迭代都学习一棵CART树来拟合之前 t−1t-1t−1 棵树的预测结果与训练样本真实值的残差。XGBoost对GBDT进行了一系列优化,比如损失函数进行了二阶泰勒展开、目标函数加入正则项、支持并行和默认缺失值处理等,在可扩展性和训练速度上有了巨大的提升,但其核心思想没有大的变化。 2.XGBoost的核心原理 2.1 如何构造目标函数?   对于一个给定有 nnn 个样本和

weixin_44852067的博客 2万+

XGBoost分类全解:原理、调参与工程落地

机器学习中,分类任务是工业界最常面对的建模场景。从逻辑回归到支持向量机,传统方法依赖人工特征工程,而梯度提升树通过串行生长决策树自动组合特征,显著降低特征工程成本。XGBoost作为梯度提升的代表实现,在二分类、多分类及回归任务中表现出色,其核心优势在于对损失函数做二阶泰勒展开,引入Hessian矩阵提升收敛效率,并通过正则化项控制模型复杂度,有效缓解过拟合。在实际工程应用中,XGBoost无需GPU即可高效运行,对缺失值鲁棒,支持并行计算与增量更新,尤其在信贷风控、用户流失预测等表格数据场景中成为默认起跑

weixin_28746213的博客 133

XGBoost算法介绍

XGBoost算法介绍一、简介二、基本原理三、目标函数新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 一、简介   XGBoost(eXtreme Gradient Boosting)又叫极度梯度提升树,是boosting

Silence的博客 5万+

昇腾910安装驱动出错,降低Centos7.6的内核版本

Centos7.6 启动内核修改,解决昇腾910安装驱动错误的问题。

深蓝 3300

C# 8. 在新窗口中使用chart控件波形移动显示

1. 添加新窗口 在Form1中新建button控件,名称为buttonStartWaveDisp,这样单击就能调出Form2窗口 在Form1中增加如下: private void buttonStartWaveDisp_Click(object sender, EventArgs e) { if((form2 == null) || (form2.IsDisposed == true)) { form2 = new Form2();

TrueLink的博客 1432

xgboost通俗_通俗易懂XGBoost算法入门

写在开头:如果大家有时间,还是比较推荐研读xgboost原论文和作者的slide讲解,本文主要讲解XGB的原理,让大家能明白XGB算法模型的框架就可以,具体实现细节可以看帮助文档。XGBoost通常使用的工具包有两种:一个是XGBoost原生的包,一个是接口sklearn-learn的包,两种包的使用方法大同小异,推荐使用原生的包。一、目标函数:了解一个算法,首选要先看目标函数(损失函数)的定义。...

weixin_42659252的博客 524

用gm/Id方法设计简单折叠式共源共栅放大器

gm/Id

qq_45541367的博客 2万+

机器学习算法:集成学习 XGBoost

论文 XGBoost: A Scalable Tree Boosting System 文档 XGBoost Documentation Introduction to Boosted Trees 可伸缩且灵活的梯度提升 原理 xgboost原理 xgboost的原理没你想像的那么难 xgboost入门与实战(原理篇) 通俗、有逻辑的写一篇说下Xgboost的原理,...

guangyacyb的博客 266

超大规模AI集群跨数据中心互联:Scale-Across技术实现与部署实践

分布式系统通过将计算任务分散到多个节点协同执行,实现算力的横向扩展。其核心原理在于网络通信、数据同步和资源调度机制的技术协同。在AI基础设施领域,分布式架构能有效突破单数据中心算力瓶颈,支撑万亿参数大模型训练。特别是面对长距离传输时延和带宽稳定性挑战,需要采用RDMA、确定性网络等关键技术。Scale-Across作为分布式系统的高级形态,通过跨地域多数据中心互联,构建逻辑统一的AI算力池,为超大规模AI训练和全球推理服务提供核心支撑。本文聚焦AI集群跨数据中心互联的技术路径,涵盖全栈优化、网络自治等实践方

chouxuyi9789的博客 400

SDM量化噪声等效到PLL输出的传递函数推导

在历年文章或书本中少见SDM量化噪声等效到PLL输出的传递函数推导。需了解SDM量化噪声的本质,配合欧拉方程简化,并将Z域转化成S域。最终结合断环处等效到PLL输出的传递函数,方可完成。

u010486560的博客 1407

机器学习视频推荐-绝对的通俗易懂(线性回归,逻辑回归,朴素贝叶斯分类器,K-近邻,SVM,决策树,随机森林,XGboost,k-means聚类)

目录机器学习流程有监督算法(回归,分类)1.分类(classification)与回归(regression)的区别与关系2.线性回归3.逻辑回归(是一个分类算法,可处理二元分类及多元分类)3.1逻辑回归解决二分类问题4.K近邻算法(k-nearest neighbor classification算法)5.朴素贝叶斯分类器(Naive Bayes Classifier)-判垃圾邮件6.SVM(支持向量机-线性分类器)7.决策树(处理非线情况)7.1使用决策树判断是否打golf8.随机森林9.XGBoost

Mr_DaYang的博客 2000

实战指南:如何用Frida绕过某梆加固的Anti-Frida检测(附完整脚本)

本文深入剖析了企业级加固方案中的Anti-Frida检测机制,并提供了实战对抗策略。通过分析基于文件系统、内存特征、行为及环境的多层次检测原理,文章详细介绍了如何定位检测逻辑、绕过maps文件扫描、对抗内存与行为特征检测,并附上了针对某梆加固的完整绕过脚本与系统化工程方案。

weixin_42527589的博客 600

【分类算法】XGBoost算法超详细讲解

本文详细介绍了XGBoost算法,包括其原理、核心理论、实现流程和实战应用。XGBoost是GBDT的优化升级版,通过二阶泰勒展开和正则化策略显著提升预测精度、训练效率和泛化能力。文章从通俗理解入手,用学生成绩预测案例说明其迭代修正的预测机制,并深入剖析目标函数、泰勒展开、正则化等数学基础。重点讲解了决策树的最优权重求解和节点分裂增益计算,揭示算法优化本质。最后通过房价预测实战展示完整Python实现,验证XGBoost在结构化数据预测中的卓越表现。该算法兼具高精度、高效率和强泛化性,是机器学习领域工业级应

DeepModel的博客 2149

保姆级教程:在SIwave 2024 R2中搞定TDR仿真,手把手教你分析USB 3.0差分线阻抗

本文提供了一份详细的SIwave 2024 R2 TDR仿真教程,重点讲解如何分析USB 3.0差分线阻抗。从项目准备、参数配置到结果分析,逐步指导工程师完成完整的仿真流程,并分享实战经验和高级技巧,帮助提升信号完整性分析能力。

weixin_33670786的博客 497

Ceres&OpenCV 单目相机标定(论文复现)

Ceres&OpenCV 单目相机标定(论文复现)

dayuhaitang1的博客 370

GBDT核心原理与调参实战:从决策树到XGBoost/LightGBM选型指南

集成学习中的梯度提升决策树(GBDT)是处理表格型数据的常用基线模型。它通过串行训练多棵浅决策树,每轮拟合损失函数的负梯度(即残差),并借助学习率累加预测,从而逐步逼近真实目标。相比深度学习,GBDT不依赖海量数据,对特征尺度不敏感,能自然建模非线性交互,且多数实现内置缺失值处理,在结构化数据、点击率预估、风控等场景中表现出色。实际工程中,调参重点在于控制学习率、树深度与叶子节点约束;过拟合、训练速度和特征重要性的可信度也是常见挑战。XGBoost、LightGBM、CatBoost等框架在速度、精度和类别

weixin_29047919的博客 277

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

XGBoost原理精讲:从目标函数到分裂算法的全面解析

集成学习是机器学习中一类通过组合多个弱模型来提升预测精度的重要方法,其中梯度提升决策树(GBDT)及其进阶版本在结构化数据建模中表现尤为突出。XGBoost作为GBDT的极致工程实现,通过引入二阶泰勒展开对损失函数进行近似,并融合正则化项来控制模型复杂度,从而在拟合能力与泛化性能之间取得平衡。其分裂增益计算与稀疏感知机制,使得模型能够高效处理缺省值和高维稀疏特征。在实际业务场景中,XGBoost凭借稳健的默认参数和成熟的生产部署生态,广泛应用于回归、分类、排序等任务,是特征工程与模型优化的可靠选择。理解其目

weixin_34204722的博客 249

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

机器学习 | GBDT+XGBoost知识补充及梳理

GBDT+XGBoost知识补充及梳理1 前言2 面试被问到的相关点参考 1 前言 2 面试被问到的相关点 参考

RUC_Lee的博客 2135

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

机器学习面试150题:不只是考SVM xgboost 特征工程

机器学习面试150题:不只是考SVM xgboost 特征工程 v_JULY_v 2020-08-29 12:15:29 11761 收藏 476 分类专栏: BAT AI面试1000题系列 版权 前言 本博客曾经在10~13年连续4年整理过各大公司数据结构和算法层面的笔试题、面试题,与此同时,2012年起,AI越发火热,各大公司开始陆续招AI方面的人才,很多同学也会从网上找各种各样的机器学习笔试题、面试题,但和数据结构方面的题不同,AI的题网上极少。 2017年起,我和团队开始整理BAT机器学习面试1

weixin_52416367的博客 473

经典的机器学习200道面试题(附参考答案)

点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达来 源:https://blog.youkuaiyun.com/sinat_35512245/article/details/78796328本文总结了往年BAT机器学习面试题,干货满满,值得收藏。想要入职大厂可谓是千军万马过独木桥。为了通过层层考验,刷题肯定是必不可少的。这份刷题宝典拿好哦!1.请简要介绍下SVM。SVM,全称是supp...

小白学视觉 7705

XGBoost实战指南:从梯度提升原理到Python代码与调参

机器学习中,梯度提升树是处理结构化数据的利器,而XGBoost凭借高效的并行训练、内置正则化与缺失值处理,成为风控、营销响应、销量预测等场景的常用模型。它通过串行训练多棵决策树,逐步拟合残差并结合二阶导数信息,在精度和速度上都有出色表现。从Python环境搭建开始,完成二分类和回归任务只需少量代码,配合早停与网格搜索还能自动优化超参数。掌握特征重要性和阈值选择,可以进一步提升模型稳定性。本文结合工程实践,系统梳理XGBoost的核心概念、代码实现、参数调节技巧及常见踩坑点,帮助新手快速建立完整建模流程。

weixin_32296621的博客 226

计算机基础知识-博客整理(可以在这记录进度)

https://hit-alibaba.github.io/interview/ 进度:random

Evan_Kuo 355
上一篇: 接上篇,CNN在短文本分类中的应用遇到的一些问题/GPU/cuda/tensorflow
下一篇: 二叉树的各种算法(一)python
滚滚的纸盒子
博客等级 码龄10年 136粉丝 31原创
评论 45
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值