弱评估器f(x):一般为决策树(cart树),不同boosting算法建立新树的过程不同
损失函数L(x,y):衡量模型预测结果与真实结果的差异
集成结果H(x):汇总所用弱评估器的结果进行输出
L ( y , ∑ k = 1 t − 1 f k ( x ) ) L(y,\sum_{k=1}^{t-1} f_k(x)) L(y,k=1∑t−1fk(x))
f k = t ( x ) f_{k=t}(x) fk=t(x)
H ( x ) = ∑ k = 1 t − 1 f k ( x ) + f ( x ) t H(x)=\sum_{k=1}^{t-1} f_k(x)+f(x)_t H(x)=k=1∑t−1fk(x)+f(x)t
f ( x + △ x ) ≈ f ( x ) + f ′ ( x ) △ x f(x+\triangle x) \approx f(x)+f'(x)\triangle x f(x+△x)≈f(x)+f′(x)△x
4.3 GBDT目标函数求解过程
设定目标函数
o b j = ∑ i = 1 n L ( y i , y i ^ ) obj =\sum_{i=1}^nL(y_i,\widehat{y_i}) obj=i=1∑nL(yi,yi )
n : 所 有 样 本 的 个 数 ; i : 代 表 每 个 样 本 代 入 树 模 型 n: 所有样本的个数;i:代表每个样本代入树模型 n:所有样本的个数;i:代表每个样本代入树模型
代入树模型
o b j = ∑ i = 1 n L ( y i , f ( x i ) t − 1 + f ( x i ) t ) obj =\sum_{i=1}^nL(y_i,f(x_i)_{t-1}+f(x_i)_t) obj=i=1∑nL(yi,f(xi)t−1+f(xi)t)
f ( x i ) t − 1 : 代 表 前 t − 1 棵 树 的 结 果 ; f ( x i ) t : 代 表 本 轮 要 新 建 的 树 模 型 f(x_i)_{t-1}:代表前t-1棵树的结果;f(x_i)_t :代表本轮要新建的树模型 f(xi)t−1:代表前t−1棵树的结果;f(xi)t:代表本轮要新建的树模型
将目标函数进行一阶泰勒展开
o b j ≈ ∑ i = 1 n [ L ( y i , f ( x i ) t − 1 ) + δ ′ L ( y i , f ( x i ) t − 1 ) δ f ( x i ) t − 1 ∗ f ( x i ) t ] obj \approx \sum_{i=1}^n[L(y_i,f(x_i)_{t-1})+ \frac{\delta'L(y_i,f(x_i)_{t-1})}{\delta f(x_i)_{t-1}}*f(x_i)_t] obj≈i=1∑n[L(yi,f(xi)t−1)+δf(xi)t−1δ′L(yi,f(xi)t−1)∗f(xi)t]
f ( x i ) t : 相 当 于 泰 勒 泰 勒 展 开 式 中 的 △ x f(x_i)_t:相当于泰勒泰勒展开式中的\triangle x f(xi)t:相当于泰勒泰勒展开式中的△x
因为L(y_i,f(x_i)_{t-1})是定值,新树要使obj减小的必要条件为:
δ ′ L ( y i , f ( x i ) t − 1 ) δ f ( x i ) t − 1 ∗ f ( x i ) t ≤ 0 \frac{\delta'L(y_i,f(x_i)_{t-1})}{\delta f(x_i)_{t-1}}*f(x_i)_t \leq 0 δf(xi)t−1δ′L(yi,f(xi)t−1)∗f(xi)t≤0
上述不等式成立的充分非必要条件为:
f ( x i ) t = − δ ′ L ( y i , f ( x i ) t − 1 ) δ f ( x i ) t − 1 f(x_i)_t = -\frac{\delta'L(y_i,f(x_i)_{t-1})}{\delta f(x_i)_{t-1}} f(xi)t=−δf(xi)t−1δ′L(yi,f(xi)t−1)
即 建 立 的 新 树 拟 合 结 果 为 前 t − 1 轮 预 测 结 果 对 应 的 目 标 函 数 的 负 梯 度 即建立的新树拟合结果为前t-1轮预测结果对应的目标函数的负梯度 即建立的新树拟合结果为前t−1轮预测结果对应的目标函数的负梯度
最终新树模型生成要求
新树模型拟合上一轮结果的负梯度
使用基尼系数或信息熵,进行最佳分裂点
f ( x + △ x ) ≈ f ( x ) + f ′ ( x ) △ x + 1 2 f ′ ′ ( x ) △ x 2 f(x+\triangle x) \approx f(x)+f'(x)\triangle x + \frac{1}{2} f''(x)\triangle x^2 f(x+△x)≈f(x)+f′(x)△x+21f′′(x)△x2
5.3 XGBT目标函数求解过程
设定目标函数
o b j = ∑ i = 1 n L ( y i , y i ^ ) + ∑ k = 1 t Ω ( f k ) obj =\sum_{i=1}^nL(y_i,\widehat{y_i})+\sum_{k=1}^t\Omega(f_k) obj=i=1∑nL(yi,yi )+k=1∑tΩ(fk)
i : 代 表 每 个 样 本 ; n : 代 表 样 本 个 数 ; k : 代 表 每 一 个 树 模 型 Ω : 代 表 第 K 颗 树 的 复 杂 度 i:代表每个样本; n:代表样本个数; k:代表每一个树模型 Ω:代表第K颗树的复杂度 i:代表每个样本;n:代表样本个数;k:代表每一个树模型Ω:代表第K颗树的复杂度
代入树模型f(x)
o b j = ∑ i = 1 n L ( y i , f ( x i ) t − 1 + f ( x i ) t ) + ∑ k = 1 t − 1 Ω ( f k ) + Ω f t obj =\sum_{i=1}^nL(y_i,f(x_i)_{t-1}+f(x_i)_t)+\sum_{k=1}^{t-1}\Omega(f_k)+\Omega f_t obj=i=1∑nL(yi,f(xi)t−1+f(xi)t)+k=1∑t−1Ω(fk)+Ωft
使用二阶泰勒展开优化目标函数
o b j ≈ ∑ i = 1 n [ L ( y i , f ( x i ) t − 1 ) + δ ′ L ( y i , f ( x i ) t − 1 ) δ f ( x i ) t − 1 ∗ f ( x i ) t + 1 2 δ ′ ′ L ( y i , f ( x i ) t − 1 ) δ f ( x i ) t − 1 ∗ f 2 ( x i ) t ] + ∑ k = 1 t − 1 Ω ( f k ) + Ω f t obj \approx \sum_{i=1}^n[L(y_i,f(x_i)_{t-1})+ \frac{\delta'L(y_i,f(x_i)_{t-1})}{\delta f(x_i)_{t-1}}*f(x_i)_t+\frac{1}{2}\frac{\delta''L(y_i,f(x_i)_{t-1})}{\delta f(x_i)_{t-1}}*f^2(x_i)_t]+\sum_{k=1}^{t-1}\Omega(f_k)+\Omega f_t obj≈i=1∑n[L(yi,f(xi)t−1)+δf(xi)t−1δ′L(yi,f(xi)t−1)∗f(xi)t+21δf(xi)t−1δ′′L(yi,f(xi)t−1)∗f2(xi)t]+k=1∑t−1Ω(fk)+Ωft
公式太长,看着太复杂,设定:
g i = δ ′ L ( y i , f ( x i ) t − 1 ) δ f ( x i ) t − 1 g_i= \frac{\delta'L(y_i,f(x_i)_{t-1})}{\delta f(x_i)_{t-1}} gi=δf(xi)t−1δ′L(yi,f(xi)t−1)
h i = δ ′ ′ L ( y i , f ( x i ) t − 1 ) δ f ( x i ) t − 1 h_i= \frac{\delta''L(y_i,f(x_i)_{t-1})}{\delta f(x_i)_{t-1}} hi=δf(xi)t−1δ′′L(yi,f(xi)t−1)
则 : o b j ≈ ∑ i = 1 n [ L ( y i , f ( x i ) t − 1 ) + g i ∗ f ( x i ) t + 1 2 h i ∗ f 2 ( x i ) t ] + ∑ k = 1 t − 1 Ω ( f k ) + Ω f t 则:obj \approx \sum_{i=1}^n[L(y_i,f(x_i)_{t-1})+ g_i*f(x_i)_t+\frac{1}{2}h_i*f^2(x_i)_t]+\sum_{k=1}^{t-1}\Omega(f_k)+\Omega f_t 则:obj≈i=1∑n[L(yi,f(xi)t−1)+gi∗f(xi)t+21hi∗f2(xi)t]+k=1∑t−1Ω(fk)+Ωft
∑ k = 1 t − 1 Ω ( f k ) : 前 t − 1 颗 树 的 模 型 夫 复 杂 度 , 定 值 ; L ( y i , f ( x i ) t − 1 ) : 第 t − 1 轮 迭 代 后 的 损 失 , 定 值 \sum_{k=1}^{t-1}\Omega(f_k):前t-1颗树的模型夫复杂度,定值;L(y_i,f(x_i)_{t-1}):第t-1轮迭代后的损失,定值 k=1∑t−1Ω(fk):前t−1颗树的模型夫复杂度,定值;L(yi,f(xi)t−1):第t−1轮迭代后的损失,定值
去除常数项(不影响求解最小目标函数)
o b j ≈ ∑ i = 1 n [ g i ∗ f ( x i ) t + 1 2 h i ∗ f 2 ( x i ) t ] + Ω f t obj \approx \sum_{i=1}^n[g_i*f(x_i)_t+\frac{1}{2}h_i*f^2(x_i)_t]+\Omega f_t obj≈i=1∑n[gi∗f(xi)t+21hi∗f2(xi)t]+Ωft
每颗树模型的模型结果为叶子节点上的权重
f ( x i ) t = w q ( x i ) f(x_i)_t=w_{q(x_i)} f(xi)t=wq(xi)
w q ( x i ) : 样 本 x i 所 在 树 模 型 叶 子 节 点 的 权 重 w_{q(x_i)}:样本x_i所在树模型叶子节点的权重 wq(xi):样本xi所在树模型叶子节点的权重
则 : o b j ≈ ∑ i = 1 n [ g i ∗ w q ( x i ) + 1 2 h i ∗ w q ( x i ) 2 ] + Ω f t 则:obj \approx \sum_{i=1}^n[g_i*w_{q(x_i)}+\frac{1}{2}h_i*w^2_{q(x_i)}]+\Omega f_t 则:obj≈i=1∑n[gi∗wq(xi)+21hi∗wq(xi)2]+Ωft
设定树模型复杂度
Ω f t = γ T + 1 2 λ ∑ j = 1 T ∣ w j ∣ 2 \Omega f_t =\gamma T+\frac{1}{2}\lambda\sum_{j=1}^{T}|w_j|^2 Ωft=γT+21λj=1∑T∣wj∣2
T : 叶 子 节 点 的 个 数 T:叶子节点的个数 T:叶子节点的个数
W j : 每 个 叶 子 的 权 重 的 平 方 , L 2 正 则 化 Wj:每个叶子的权重的平方,L2正则化 Wj:每个叶子的权重的平方,L2正则化
则 : o b j ≈ ∑ i = 1 n [ g i ∗ w q ( x i ) + 1 2 h i ∗ w q ( x i ) 2 ] + γ T + 1 2 λ ∑ j = 1 T ∣ w j ∣ 2 则:obj \approx \sum_{i=1}^n[g_i*w_{q(x_i)}+\frac{1}{2}h_i*w^2_{q(x_i)}]+\gamma T+\frac{1}{2}\lambda\sum_{j=1}^{T}|w_j|^2 则:obj≈i=1∑n[gi∗wq(xi)+21hi∗wq(xi)2]+γT+21λj=1∑T∣wj∣2
不同样本落在同一个叶子节点上预测得分是一样的
∑ i = 1 n w q ( x i ) = ∑ j = 1 T w j \sum_{i=1}^nw_{q(x_i)}=\sum_{j=1}^Tw_j i=1∑nwq(xi)=j=1∑Twj
∑ i = 1 n g i = ∑ i ∈ I j g i − 每 一 个 叶 子 节 点 上 样 本 的 一 阶 导 数 和 \sum_{i=1}^ng_i=\sum_{i\in I_j}g_i- 每一个叶子节点上样本的一阶导数和 i=1∑ngi=i∈Ij∑gi−每一个叶子节点上样本的一阶导数和
∑ i = 1 n h i = ∑ i ∈ I j h i − 每 一 个 叶 子 节 点 上 样 本 的 二 阶 导 数 和 \sum_{i=1}^nh_i=\sum_{i\in I_j}h_i-每一个叶子节点上样本的二阶导数和 i=1∑nhi=i∈Ij∑hi−每一个叶子节点上样本的二阶导数和
则 : o b j ≈ ∑ j = 1 T [ w j ( ∑ i ∈ I j g i ) + 1 2 w j 2 ( ∑ i ∈ I j h i ) ] + γ T + 1 2 λ ∑ j = 1 T ∣ w j ∣ 2 则:obj \approx \sum_{j=1}^T[w_j(\sum_{i\in I_j}gi)+\frac{1}{2}w^2_j(\sum_{i\in I_j}hi)]+\gamma T+\frac{1}{2}\lambda\sum_{j=1}^{T}|w_j|^2 则:obj≈j=1∑T[wj(i∈Ij∑gi)+21wj2(i∈Ij∑hi)]+γT+21λj=1∑T∣wj∣2
并模型复杂度和损失函数
o b j ≈ ∑ j = 1 T [ w j ( ∑ i ∈ I j g i ) + 1 2 w j 2 ( ( ∑ i ∈ I j h i ) + λ ) ) ] + γ T obj \approx \sum_{j=1}^T[w_j(\sum_{i\in I_j}gi)+\frac{1}{2}w^2_j((\sum_{i\in I_j}hi)+\lambda))]+\gamma T obj≈j=1∑T[wj(i∈Ij∑gi)+21wj2((i∈Ij∑hi)+λ))]+γT
简化目标函数
设 G j = ∑ i ∈ I j g i 叶 子 节 点 J 所 包 含 的 所 用 样 本 一 阶 导 累 计 之 和 , 是 常 量 设G_j=\sum_{i\in I_j}gi 叶子节点J所包含的所用样本一阶导累计之和,是常量 设Gj=i∈Ij∑gi叶子节点J所包含的所用样本一阶导累计之和,是常量
设 H j = ∑ i ∈ I j h i 叶 子 节 点 J 所 包 含 的 所 用 样 本 二 阶 导 累 计 之 和 , 是 常 量 设H_j=\sum_{i\in I_j}hi 叶子节点J所包含的所用样本二阶导累计之和,是常量 设Hj=i∈Ij∑hi叶子节点J所包含的所用样本二阶导累计之和,是常量
则 : o b j ≈ ∑ j = 1 T [ w j G j + 1 2 w j 2 ( H j + λ ) ] + γ T 则:obj \approx \sum_{j=1}^T[w_jG_j+\frac{1}{2}w^2_j(H_j+\lambda)]+\gamma T 则:obj≈j=1∑T[wjGj+21wj2(Hj+λ)]+γT
对wj求一阶导,求obj极值(最小二乘法)
δ ′ ( w j G j + 1 2 w j 2 ( H j + λ ) ) δ w j = G j + w j ( H j + λ ) = 0 \frac{\delta'(w_jG_j+\frac{1}{2}w^2_j(H_j+\lambda))}{\delta w_j}=G_j+w_j(H_j+\lambda)=0 δwjδ′(wjGj+21wj2(Hj+λ))=Gj+wj(Hj+λ)=0
得 : w j = − G j H j + λ 得:w_j=-\frac{G_j}{H_j+\lambda} 得:wj=−Hj+λGj
简化后obj带入wj
o b j ≈ ∑ j = 1 T [ w j G j + 1 2 w j 2 ( H j + λ ) ] + γ T = − 1 2 ∑ j = 1 T G j 2 H j + λ + γ T obj \approx \sum_{j=1}^T[w_jG_j+\frac{1}{2}w^2_j(H_j+\lambda)]+\gamma T=-\frac{1}{2}\sum_{j=1}^T\frac{G^2_j}{H_j+\lambda}+\gamma T obj≈j=1∑T[wjGj+21wj2(Hj+λ)]+γT=−21j=1∑THj+λGj2+γT
最 终 目 标 函 数 只 与 一 阶 导 和 二 阶 导 、 树 的 节 点 个 数 相 关 , 又 叫 结 构 分 数 最终目标函数只与一阶导和二阶导、树的节点个数相关,又叫结构分数 最终目标函数只与一阶导和二阶导、树的节点个数相关,又叫结构分数
5.4 使用贪心思想求解最优的一棵新树,即每一节点分叉最优
g a i n = − 1 2 G L 2 H L + λ + γ − 1 2 G R 2 H R + λ + γ − ( − 1 2 G l 2 + G R 2 H L + H R + λ + γ ) < 0 gain = -\frac{1}{2}\frac{G^2_L}{H_L+\lambda}+\gamma -\frac{1}{2}\frac{G^2_R}{H_R+\lambda}+\gamma-(-\frac{1}{2}\frac{G^2_l+G^2_R}{H_L+H_R+\lambda}+\gamma)<0 gain=−21HL+λGL2+γ−21HR+λGR2+γ−(−21HL+HR+λGl2+GR2+γ)<0