XGBOOST算法完整推论

本文详细介绍了XGBOOST算法,从ID3、C4.5、CART三种决策树算法的基本原理开始,深入讲解了CART分类树的生成算法。接着,重点阐述了XGBOOST的全称、树的定义、推导过程以及如何学习树的结构,包括XGBOOST手动还原例题,展示了训练过程中的参数选择。文章以实例详细解析了每个步骤,包括信息增益、基尼指数、损失函数等关键概念,帮助读者理解XGBOOST的工作机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

XGBOOSTXGBOOSTXGBOOST


ID3:

信息增益(information gain)
Gain(D,a)=Ent(D)−∑v=1V∣Dv∣∣D∣Ent(Dv)(1)Gain(D,a)=Ent(D)-\sum_{v=1}^V\dfrac{|D^v|}{|D|}{Ent(D^v)}\quad\quad(1)Gain(D,a)=Ent(D)v=1VDDvEnt(Dv)(1)
其中:Ent(D)=−∑k=1yPklog2PkEnt(D)=-\sum_{k=1}^y{P_klog_2P_k}Ent(D)=k=1yPklog2Pk也称为熵。
\quad\quad决策树的本质是训练数据集中归纳出一组分类规则,我们需要的是一个训练数据矛盾较小的决策树,同时具有很好的泛化能力。Ent(D)Ent(D)Ent(D)的值越小,则DDD的训读就越高,熵表示随机变量不确定性的度量。
表一:贷款申请样本数据表表一:贷款申请样本数据表

ID 年龄 有工作 有自己房子 信贷情况 类别
1 青年 一般
2 青年
3 青年
4 青年 一般
5 青年 一般
6 中年 一般
7 中年
8 中年
9 中年 非常好
10 中年 非常好
11 老年 非常好
12 老年
13 老年
14 老年 非常好
15 老年 一般

例题一:计算上述个样本的信息增益
H(D)=−915log2915−615log2615=0.971H(D)=-\dfrac{9}{15}log_2\dfrac{9}{15}-\dfrac{6}{15}log_2\dfrac{6}{15}=0.971H(D)=159log2159156log2156=0.971

g(D,A1)=H(D)−[515H(D1)+515H(D2)+515H(D3)]g(D,A_1)=H(D)-[\dfrac{5}{15}H(D_1)+\dfrac{5}{15}H(D_2)+\dfrac{5}{15}H(D_3)]g(D,A1)=H(D)[155H(D1)+155H(D2)+155H(D3)]

\quad\quad\quad\quad=0.971−[515(−25log225)−35log235)=0.971-[\dfrac{5}{15}(-\dfrac{2}{5}log_2\dfrac{2}{5})-\dfrac{3}{5}log_2\dfrac{3}{5})=0.971[155(52log252)53log253)

\quad\quad\quad\quad\quad\quad\quad\quad+515(−35log235)−25log225)+\dfrac{5}{15}(-\dfrac{3}{5}log_2\dfrac{3}{5})-\dfrac{2}{5}log_2\dfrac{2}{5})+155(53log253)52log252)

\quad\quad\quad\quad\quad\quad\quad\quad+515(−45log245)−15log215)]+\dfrac{5}{15}(-\dfrac{4}{5}log_2\dfrac{4}{5})-\dfrac{1}{5}log_2\dfrac{1}{5})]+155(54log254)51log251)]

\quad\quad\quad\quad=0.971−0.888=0.971-0.888=0.9710.888
\quad\quad\quad\quad=0.083=0.083=0.083
g(D,A2)=H(D)−[515H(D1)+1015H(D2)]g(D,A_2)=H(D)-[\dfrac{5}{15}H(D_1)+\dfrac{10}{15}H(D_2)]g(D,A2)=H(D)[155H(D1)+1510H(D2)]
\quad\quad\quad\quad\quad=0.971−0.647=0.971-0.647=0.9710.647
\quad\quad\quad\quad\quad=0.324=0.324=0.324
g(D,A3)=H(D)−[615H(D1)+915H(D2)]g(D,A_3)=H(D)-[\dfrac{6}{15}H(D_1)+\dfrac{9}{15}H(D_2)]g(D,A3)=H(D)[156H(D1)+159H(D2)]

\quad\quad\quad\quad\quad=0.971−0.551=0.971-0.551=0.9710.551
\quad\quad\quad\quad\quad=0.420=0.420=0.420
g(D,A4)=H(D)−[415H(D1)+615H(D2)+515H(D3)]g(D,A_4)=H(D)-[\dfrac{4}{15}H(D_1)+\dfrac{6}{15}H(D_2)+\dfrac{5}{15}H(D_3)]g(D,A4)=H(D)[154H(D1)+156H(D2)+155H(D3)]

\quad\quad\quad\quad\quad=0.971−0.608=0.971-0.608=0.9710.608
\quad\quad\quad\quad\quad=0.363=0.363=0.363

C4.5:

\qquad 特征A对训练数据集D的信息增益比gR(D,A)g_R(D,A)gR(D,A)定义为其信息增益g(D,A)g(D,A)g(D,A)与训练数据集D关于特征A的值的熵HA(D)H_A(D)HA(D)之比即:gainRatio(D,A)=g(D,A)HA(D)(2)gainRatio(D,A)=\frac{g(D,A)}{H_A(D)}\quad\quad(2)gainRatio(D,A)=HA(D)g(D,A)(2)
其中:HA(D)=∑i=1n∣Di∣∣D∣log2∣Di∣∣D∣H_A(D)=\sum_{i=1}^n\frac{|D_i|}{|D|}log_2\frac{|D_i|}{|D|}HA(D)=i=1nDDilog2DDi
例如:对年龄求HA(D)H_A(D)HA(D)
HA1(D)=−515(−25log25−35log35)H_{A_1}(D)=-\dfrac{5}{15}(-\dfrac{2}{5}log\dfrac{2}{5}-\dfrac{3}{5}log\dfrac{3}{5})HA1(D)=155(52log5253log53)

  =−515(−35log35−25log25)\quad\quad\quad\quad=-\dfrac{5}{15}(-\dfrac{3}{5}log\dfrac{3}{5}-\dfrac{2}{5}log\dfrac{2}{5})=155(53log5352log52)

  =−515(−45log45−15log15)\quad\quad\quad\quad=-\dfrac{5}{15}(-\dfrac{4}{5}log\dfrac{4}{5}-\dfrac{1}{5}log\dfrac{1}{5})=155(54log5451log51)

  =0.888\quad\quad\quad\quad=0.888=0.888
gainRatio(D,A1)=g(D,A1)HA1(D)=0.0830.888=0.093gainRatio(D,A_1)=\dfrac{g(D,A_1)}{H_{A1}(D)}=\dfrac{0.083}{0.888}=0.093gainRatio(D,A1)=HA1(D)g(D,A1)=0.8880.083=0.093

同理:gainRatio(D,A2)=0.3240.647=0.501gainRatio(D,A_2)=\dfrac{0.324}{0.647}=0.501gainRatio(D,A2)=0.6470.324=0.501

gainRatio(D,A3)=0.4200.551=0.762\quad\quad gainRatio(D,A_3)=\dfrac{0.420}{0.551}=0.762gainRatio(D,A3)=0.5510.420=0.762

gainRatio(D,A4)=0.3630.608=0.597\quad\quad gainRatio(D,A_4)=\dfrac{0.363}{0.608}=0.597gainRatio(D,A4)=0.6080.363=0.597
\quad增益率准则对可取值数目较少的属性有所偏好,因此C4.5算法并不是直接选取增益率最大的候选划分属性,而是使用了一个启发式:先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益最高的。
剪枝
\quad预剪枝:在决策树生成过程过程中,在每个节点上划分之前先进行估计,若当前节点的划分不能带来决策树的泛化性能提升,则停止划分并将当前节点标记为叶节点。
\quad后剪枝:是先从训练集中生成一棵完整的决策树,然后自底向上对非叶节点进行考察,若将该节点对应的子树替换为叶节点能带来决策树泛化性能的提升,则将该子树替换为叶节点。
\quad决策树的剪枝,往往是通过极小化决策树整体的损失函数或代价函数来实现,决策树学习的损失函数可以定义为:Cα(T)=∑t=1∣T∣NtHt(T)+α∣T∣(3)C_\alpha(T)=\sum_{t=1}^{|T|}N_tH_t(T)+\alpha|T|\quad\quad(3)Cα(T)=t=1TNtHt(T)+αT(3)
其中:∣T∣|T|T为叶子节点个数,ttt是树∣T∣|T|T的叶节点,该叶节点有NtN_tNt个样本点,其中kkk类的样本点有NtkN_{tk}Ntk个。
Ht(T)=−∑kNtkNtlog2NtkNt(4)H_t(T)=-\sum_{k}\dfrac{N_{tk}}{N_t}log_2\dfrac{N_{tk}}{N_t}\quad\quad(4)Ht(T)=kNtNtklog2NtNtk(4)
在损失函数中
C(T)=∑t=1∣T∣NtHt(T)=−∑t=1∣T∣∑k=1KNtklog2NtkNt(5)C(T)=\sum_{t=1}^{|T|}N_tH_t(T)=-\sum_{t=1}^{|T|}\sum_{k=1}^{K}N_{tk}log_2\dfrac{N_{tk}}{N_t}\quad\quad(5)C(T)=t=1TNtHt(T)=t=1Tk=1KNtklog2NtNtk(5)
Cα(T)=C(T)+α∣T∣C_\alpha(T)=C(T)+\alpha{|T|}Cα(T)=C(T)+αT

例:∣T∣{|T|}T其实就是模型的复杂度。

颜色 测试人员 结果
yellow adult 1
yellow child 0

1°1^°1°局部剪枝前,该节点的损失为:Cα(T)=C(T)+α∣T∣=0+2α=2αC_\alpha(T)=C(T)+\alpha{|T|}=0+2\alpha=2\alphaCα(T)=C(T)+αT=0+2α=2α
2°2^°2°局部剪枝后,该节点的损失为:Cα(T)=C(t)+α∣t∣=C(t)+αC_\alpha(T)=C(t)+\alpha{|t|}=C(t)+\alphaCα(T)=C(t)+αt=C(t)+α

其中:C(t)=NtHt=2(−12log12−12log12)=2C(t)=N_tH_t=2(-\dfrac{1}{2}log\dfrac{1}{2}-\dfrac{1}{2}log\dfrac{1}{2})=2C(t)=NtHt=2(21log2121log21)=2

故:Cα(T)=2+αC_\alpha(T)=2+\alphaCα(T)=2+α,定义α=特征个数2\alpha=\frac{特征个数}{2}α=2

CART

\quadCART同样是由特征选择树的生成及剪枝组成,既可用于分类也可用于回归,常用Gini系数度量。
\quadCART由两步组成,①决策树的生成基于训练数据生成决策树,生成的树尽量大。②决策树的剪枝,用验证数据集对已经生成的树进行剪枝,并选择最优子树,此时用损失函数最小作为剪枝的标准。
**例:**还以前面表格为例
A1,A2,A3,A4\quad A_1,A_2,A_3,A_4A1,A2,A3,A4分别表示年龄、有工作、有自己房子和信贷情况这四个特征并以1、2、3表示青中老年,以1、2表示有工作和有自己房子的值为是和否,以1、2、3表示信贷情况的值为非常好、好、一般,求特征A的基尼指数。
Gain(D,A1=1)=515[2×25×(1−25)+1015[2×710×(1−710)]=0.44Gain(D,A_1=1)=\frac{5}{15}[2×\frac{2}{5}×(1-\frac{2}{5})+\frac{10}{15}[2×\frac{7}{10}×(1-\frac{7}{10})]=0.44Gain(D,A1=1)=155[2×52×(152)+1510[2×107×(1107)]=0.44

Gain(D,A1=2)=515[2×35×(1−35)+1015[2×610×(1−610)]=0.48Gain(D,A_1=2)=\frac{5}{15}[2×\frac{3}{5}×(1-\frac{3}{5})+\frac{10}{15}[2×\frac{6}{10}×(1-\frac{6}{10})]=0.48Gain(D,A1=2)=155[2×53×(153)+1510[2×106×(1106)]=0.48

Gain(D,A1=3)=515[2×45×(1−45)+1015[2×510×(1−510)]=0.44Gain(D,A_1=3)=\frac{5}{15}[2×\frac{4}{5}×(1-\frac{4}{5})+\frac{10}{15}[2×\frac{5}{10}×(1-\frac{5}{10})]=0.44Gain(D,A1=3)=155[2×54×(154)+1510[2×105×(1105)]=0.44
即:A1、A3A_1、A_3A1A3都可以,选A1A_1A1青年一类,(中、老年)为一类。
有工作和有自己的房子都是二份,可以不用切分,则信贷情况A4A_4A4:
Gain(D,A4=1)=415×0+1115[2×511×(1−511)]=0.36Gain(D,A_4=1)=\dfrac{4}{15}×0+\dfrac{11}{15}[2×\dfrac{5}{11}×(1-\dfrac{5}{11})]=0.36Gain(D,A4=1)=154×0+1511[2×115×(1115)]=0.36

Gain(D,A4=2)=0.47Gain(D,A_4=2)=0.47Gain(D,A4=2)=0.47

Gain(D,A4=3)=0.32Gain(D,A_4=3)=0.32Gain(D,A4=3)=0.32
则:Gain(D,A4=3)Gain(D,A_4=3)Gain(D,A4=3)最小,故选为最优切分点。
{ Gain(D,A1=3)=0.44Gain(D,A2=1)=0.32=515×(1×0×2)+1015×(410×610×2)=0.32Gain(D,A3=1)=0.27=615×(1×0×2)+915×(39×69×2)=0.27Gain(D,A4=3)=0.32\begin{cases} Gain(D,A_1=3)=0.44\\&&&&\\ Gain(D,A_2=1)=0.32=\frac{5}{15}×(1×0×2)+\frac{10}{15}×(\frac{4}{10}×\frac{6}{10}×2)=0.32\\&&&&\\ Gain(D,A_3=1)=0.27=\frac{6}{15}×(1×0×2)+\frac{9}{15}×(\frac{3}{9}×\frac{6}{9}×2)=0.27\\&&&&\\ Gain(D,A_4=3)=0.32 \end{cases}

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值