Xgboost算法介绍和XGBClassifier方法的代码实现

本文介绍了XGBoost的基本原理,包括CART回归树和Boosting集成学习,详细阐述了XGBoost的目标函数和正则化项。通过XGBClassifier展示了如何配置参数并实现代码,包括数据集上的实例、准确率计算、特征重要性分析以及交叉验证来寻找最佳参数。
摘要由CSDN通过智能技术生成

XGBoost

XGBoost,eXtreme Gradient Boosting,全名叫极端梯度提升,应用机器学习领域一个强有力的工具,其基本思想为:一棵树一棵树逐渐地往模型里面加,每加一棵CRAT决策树时,要使得整体的效果(目标函数有所下降)有所提升。使用多棵决策树(多个单一的弱分类器)构成组合分类器,并且给每个叶子节点赋与一定的权值。

CART 回归树

CART算法是由Breiman等人首先提出,它包括分类树和回归树两种;两者的不同之处是,分类树的样本输出(即响应值)是类的形式;而回归树的样本输出是数值的形式,这时没法用信息增益、信息增益率、基尼系数来判定树的节点分裂了,我们会采用新的方式:预测误差,常用的有均方误差、对数误差等。节点的确定有时用节点内样本均值,有时是最优化算出来的,比如Xgboost。

Boosting 集成学习

目前集成学习方法大致可分为两大类:

  • 个体学习器之间存在强依赖关系、必须串行生成的序列化方法,这种方法的代表是Boosting,由多个相关联的树联合决策;(相关联的意思是:下一棵决策树输入样本会与前面决策树的训练和预测相关)
  • 个体学习器间不存在强依赖关系、可同时生成的并行化方法,它的代表是BaggingRandomForest

简单原理介绍

模型

模型由k棵CART树组成,表示为
模型
这里的K就是树的棵数,F表示所有可能的CART树,f表示一棵具体的CART树

目标函数

目标函数
等式右边第一部分是损失函数,第二部分是正则项,这里的正则化项由K棵树的正则化项相加而来

训练xgboost

训练目的:最小化目标函数
如果K棵树的结构都已经确定,那么整个模型剩下的就是所有K棵树的叶子节点的值,模型的正则化项也可以设为各个叶子节点的值的平方和。此时,整个目标函数其实就是一个K棵树的所有叶子节点的值的函数,我们就可以使用梯度下降或者随机梯度下降来优化目标函数。

加法训练

分步骤优化目标函数,首先优化第一棵树,完了之后再优化第二棵树,直至优化完K棵树。
在这里插入图片描述
假设在第t步时,我们添加了一棵最优的CART树f_t
此时目标函数表示为
目标函数最优
其中constant为前t-1棵树的复杂度。
如果我们选择的损失函数为MSE,则
MSE下的目标函数
这个式子含有 f t ( x i ) f_t(x_i) ft(xi)的一次和二次项,对最优结果的求解很方便,对一般的损失函数,我们只需将其作泰勒二阶展开
泰勒展开
其中
展开式参数
g i g_i gi h i h_i hi可分别理解为前t-1棵树组成的模型对第i个训练样本预测的损失函数的一阶导和二阶导。
同时, g i g_i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值