集成学习(ensemble learning)(四)
文章目录
- 一、GBDT概述
- 二、GDBT原理
- 1、负梯度拟合
- 2、GBDT回归算法
- 3、GBDT分类算法
- (1)二元GBDT分类算法
- (2)多元GBDT分类算法
- 4、GBDT常用损失函数
- (1)分类任务
- (2)回归任务
- 5、GBDT的正则化
- 三、从参数空间到函数空间理解GBDT+XGBoost
- 1、泰勒公式
- 2、最优化方法
- (1)梯度下降法(Gradient Descend Method)
- (2)牛顿法
- 3、从参数空间到函数空间
- (1)概述
- (2)GBDT:梯度下降从参数空间到函数空间
- (3)XGBoost:牛顿法从参数空间到函数空间
该篇为集成学习的第四篇,主要关注GDBT(Gradient Boosting Decison Tree, 梯度提升树)。在本文的第三部分中,从参数空间到函数空间的角度出发,理解GBDT+XGBoost的原理。
从传送下之前的文章:
- 集成学习(ensemble learning)(一)
- 集成学习(ensemble learning)(二)
- 集成学习(ensemble learning)(三)
一、GBDT概述
GBDT 是一种迭代的前向分布的算法,其弱分类器为CART回归树。
在GBDT的迭代中,假设前一轮迭代得到的强学习器是 ft−1(x)f_{t−1}(x)ft−1(x),利用前向分布算法,本步的模型可写成 ft(x)=ft−1(x)+ht(x)f_t(x)=f_{t-1}(x)+h_t(x)ft(x)=ft−1(x)+ht(x),损失函数是L(y,ft(x))L(y,f_{t}(x))L(y,ft(x))。
则本轮迭代的目标是找到一个CART回归树模型的弱学习器 ht(x)h_t(x)ht(x),让本轮的损失函数 L(y,ft(x)=L(y,ft−1(x)+ht(x))L(y,f_t(x)=L(y,f_{t−1}(x)+h_t(x))L(y,ft(x)=L(y,ft−1(x)+ht(x)) 最小。也就是说,本轮迭代找到决策树,要让样本的损失尽量变得更小。
GBDT主要的优点:
- 可以灵活处理各种类型的数据,包括连续值和离散值。
- 在相对少的调参时间情况下,预测的准确率也可以比较高。这个是相对SVM来说的。
- 使用一些健壮的损失函数,对异常值的鲁棒性非常强。比如 Huber损失函数和Quantile损失函数。
GBDT的主要缺点:
- 由于弱学习器之间存在依赖关系,难以并行训练数据。 不过可以通过自采样的SGBT来达到部分并行。
二、GDBT原理
1、负梯度拟合
目标:让样本的损失尽量变得更小,何如解决损失函数拟合方法的问题?
Freidman提出了用损失函数的负梯度来拟合本轮损失的近似值,进而拟合一个CART回归树。第 ttt 轮的第 iii 个样本的损失函数的负梯度表示为
(1)rti=−[∂L(yi,f(xi))∂f(xi)]f(x)=ft−1(x)r_{ti}=- \left[ \frac{\partial{L(y_i,f(x_i))}}{\partial f(x_i)} \right]_{f(x)=f_{t-1}(x)} \tag{1}rti=−[∂f(xi)∂L(yi,f(xi))]f(x)=ft−1(x)(1)
利用 (xi,rti),i=1,2,...,m(x_i,r_{ti}),i=1,2,...,m(xi,rti),i=1,2,...,m,可以拟合一颗CART回归树,得到第 ttt 颗回归树,其对应的叶节点区域 Rtj,j=1,2,...,JR_{tj},j=1,2,...,JRtj,j=1,2,...,J。其中 JJJ 为叶子节点的个数。
针对每一个叶子节点里的样本,求出使损失函数最小,也就是拟合叶子节点最好的的输出值
ctjc_{tj}ctj 如下:
(2)ctj=argmin⎵c∑xi∈RtjL(yi,ft−1(xi)+c)c_{tj}=\underbrace{arg\ min}_c\sum_{x_i\in R_{tj}}L(y_i,f_{t-1}(x_i)+c)\tag{2}ctj=carg minxi∈Rtj∑L(yi,ft−1(xi)+c)(2)
则本轮的决策树拟合函数如下:
(3)ht(x)=∑j=1JctjI(x∈Rtj)h_t(x)=\sum_{j=1}^Jc_{tj}I(x\in R_{tj})\tag{3}ht(x)=j=1∑JctjI(x∈Rtj)(3)
从而本轮最终得到的强学习器的表达式如下:
(4)ft(x)=ft−1(x)+∑j=1JctjI(x∈Rtj)f_t(x)=f_{t-1}(x)+\sum_{j=1}^{J}c_{tj}I(x\in R_{tj})\tag{4}ft(x)=ft−1(x)+j=1∑JctjI(x∈Rtj)(4)
一种通用的拟合损失误差的办法:通过损失函数的负梯度来拟合,则无论是分类问题还是回归问题,均可通过其损失函数的负梯度的拟合,就可以用GBDT来解决我们的分类回归问题。区别仅仅在于损失函数不同所导致的负梯度不同。
2、GBDT回归算法
输入:训练集样本 T=(x1,y1),(x2,y2),...,(xm,ym)T={(x_1,y_1),(x_2,y_2),...,(x_m,y_m)}T=(x1,y1),(x2,y2),...,(xm,ym), 最大迭代次数 TTT,损失函数 LLL。
输出:强学习器 f(x)f(x)f(x)
(1)初始化弱学习器
f0(x)=argmin⎵c∑i=1mL(yi,c)f_0(x)=\underbrace{arg\ min}_c\sum_{i=1}^mL(y_i,c)f0(x)=carg mini=1∑mL(yi,c)
(2) 对迭代轮数 t=1,2,...,Tt=1,2,...,Tt=1,2,...,T 有:
a) 对样本 i=1,2,...,mi=1,2,...,mi=1,2,...,m,计算负梯度
rti=−[∂L(yi,f(xi))∂f(xi)]f(x)=ft−1(x)r_{ti}=- \left[ \frac{\partial{L(y_i,f(x_i))}}{\partial f(x_i)} \right]_{f(x)=f_{t-1}(x)}rti=−[∂f(xi)∂L(yi,f(xi))]f(x)=ft−1(x)
b) 利用 (xi,rti),i=1,2,...,m(x_i,r_{ti}),i=1,2,...,m(xi,rti),i=1,2,...,m,可以拟合一颗CART回归树,得到第 ttt 颗回归树,其对应的叶节点区域 Rtj,j=1,2,...,JR_{tj},j=1,2,...,JRtj,j=1,2,...,J。其中 JJJ 为叶子节点的个数。
c) 对叶子区域 j=1,2,...,Jj=1,2,...,Jj=1,2,...,J 计算最佳拟合值:
ctj=argmin⎵c∑xi∈RtjL(yi,ft−1(xi)+c)c_{tj}=\underbrace{arg\ min}_c\sum_{x_i\in R_{tj}}L(y_i,f_{t-1}(x_i)+c)ctj=carg minxi∈Rtj∑L(yi,ft−1(xi)+c)
d) 更新强学习器
ht(x)=∑j=1JctjI(x∈Rtj)h_t(x)=\sum_{j=1}^Jc_{tj}I(x\in R_{tj})ht(x)=j=1∑JctjI(x∈Rtj)
(3)得到强学习器 f(x)f(x)f(x) 的表达式
f(x)=fT(x)=f0(x)+∑t=1T∑j=1JctjI(x∈Rtj)f(x)=f_T(x)=f_{0}(x)+\sum_{t=1}^T\sum_{j=1}^{J}c_{tj}I(x\in R_{tj})f(x)=fT(x)=f0(x)+t=1∑Tj=1∑JctjI(x∈Rtj)
3、GBDT分类算法
由于样本输出不是连续的值,而是离散的类别,导致我们无法直接从输出类别去拟合类别输出的误差。
解决方法:
- 使用指数损失函数。GBDT退化为Adaboost算法。
- 对数似然损失函数。用类别的预测概率值和真实概率值的差来拟合损失。
本文仅关注对数似然损失函数的GBDT分类。
(1)二元GBDT分类算法
对于二元GBDT,如果用类似于 Logistic Regression 的对数似然损失函数,则损失函数为:
L(y,f(x))=log(1+exp(−yf(x)))L(y,f(x))=log(1+exp(-yf(x)))L(y,f(x))=log(1+exp(−yf(x)))
其中,y∈{+1,−1}y∈\{+1,-1\}y∈{+1,−1}。则此时的负梯度误差为
rti=−[∂L(y,f(xi))∂f(xi)]f(x)=ft−1(x)=yi1+exp(yif(xi))r_{ti}=-\left[\frac{∂L(y,f(x_i))}{∂f(x_i)}\right]_{f(x)=f_{t-1}(x)}=\frac{y_i}{1+exp(y_if(x_i))}rti=−[∂f(xi)∂L(y,f(xi))]f(x)=ft−1(x)=1+exp(yif(xi))yi
对于生成的决策树,我们各个叶子节点的最佳负梯度拟合值为
ctj=argmin⎵c∑xi∈Rtjlog(1+exp(−yift−1(xi)+c)))c_{tj}=\underbrace{arg\ min}_c\sum_{x_i\in R_{tj}}log(1+exp(-y_if_{t-1}(x_i)+c)))ctj=carg minxi∈Rtj∑log(1+exp(−yift−1(xi)+c)))
由于上式比较难优化,我们一般使用近似值代替
ctj=∑xi∈Rtjrtj∑xi∈Rtj∣rtj∣(1−∣rtj∣)c_{tj}=\frac{\sum_{x_i\in R_{tj}}r_{tj}}{\sum_{x_i\in R_{tj}}|r_{tj}|(1-|r_{tj}|)}ctj=∑xi∈Rtj∣rtj∣(1−∣rtj∣)∑xi∈Rtjrtj
除了负梯度计算和叶子节点的最佳负梯度拟合的线性搜索,二元GBDT分类和GBDT回归算法过程相同。
(2)多元GBDT分类算法
多元GBDT要比二元GBDT复杂一些,对应的是多元逻辑回归和二元逻辑回归的复杂度差别。假设类别数为K,则此时我们的对数似然损失函数为:
L(y,f(x))=−∑k=1Kyklogpk(x)L(y,f(x))=-\sum_{k=1}^Ky_klogp_k(x)L(y,f(x))=−k=1∑Kyklogpk(x)
其中,如果样本输出类别为 kkk,则yk=1y_k=1yk=1。第 kkk 类的概率 pk(x)p_k(x)pk(x) 的表达式为:
pk(x)=exp(fk(x))∑l=1Kexp(fl(x))p_k(x)=\frac{exp(f_k(x))}{\sum_{l=1}^Kexp(f_l(x))}pk(x)=∑l=1Kexp(fl(x))exp(fk(x))
集合上两式,我们可以计算出第 ttt 轮的第 iii 个样本对应类别 lll 的负梯度误差为
rti=−[∂L(yi,f(xi))∂f(xi)]f(x)=fl,t−1(x)=yil−pl,t−1(xi)r_{ti}=-\left[\frac{∂L(y_i,f(x_i))}{∂f(x_i)}\right]_{f(x)=f_{l,t-1}(x)}={y_{il}}-p_{l,t-1}(x_i)rti=−[∂f(xi)∂L(yi,f(xi))]f(x)=fl,t−1(x)=yil−pl,t−1(xi)
观察上式可以看出,其实这里的误差就是样本 iii 对应类别l的真实概率和 t−1t−1t−1 轮预测概率的差值。
对于生成的决策树,我们各个叶子节点的最佳负梯度拟合值为
ctjl=argmin⎵cjl∑i=0m∑k=1KL(yk,ft−1,l(x)+∑j=0JcjlI(xi∈Rtj))c_{tjl}=\underbrace{arg\ min}_{c_{jl}}\sum_{i=0}^m\sum_{k=1}^KL(y_k,f_{t-1,l}(x)+\sum_{j=0}^Jc_{jl}I(x_i\in R_{tj}))ctjl=cjlarg mini=0∑mk=1∑KL(yk,ft−1,l(x)+j=0∑JcjlI(xi∈Rtj))
由于上式比较难优化,我们一般使用近似值代替
ctjl=K−1K∑xi∈Rtjlrtjl∑xi∈Rtil∣rtil∣(1−∣rtil∣)c_{tjl}=\frac{K-1}{K}\frac{\sum_{x_i\in R_{tjl}}r_{tjl}}{\sum_{x_i\in R_{til}}|r_{til}|(1-|r_{til}|)}ctjl=KK−1∑xi∈Rtil∣rtil∣(1−∣rtil∣)∑xi∈Rtjlrtjl
除了负梯度计算和叶子节点的最佳负梯度拟合的线性搜索,多元GBDT分类和二元GBDT分类以及GBDT回归算法过程相同。
4、GBDT常用损失函数
(1)分类任务
对于分类算法,其损失函数一般有 对数损失函数 和 指数损失函数 两种:
指数损失函数
L(y,f(x))=exp(−yf(x))L(y,f(x))=exp(−yf(x))L(y,f(x))=exp(−yf(x))
其负梯度计算和叶子节点的最佳负梯度拟合参见Adaboost原理篇。
对数损失函数——见2.3.1和2.3.2
- 二元分类
- 多元分类
(2)回归任务
常用的损失函数为均方差、绝对损失、Huber损失和分位数损失。
均方差损失——最常见
L(y,f(x))=(y−f(x))2L(y,f(x))=(y-f(x))^2L(y,f(x))=(y−f(x))2绝对损失
L(y,f(x))=∣y−f(x)∣L(y,f(x))=|y-f(x)|L(y,f(x))=∣y−f(x)∣
其对应负梯度误差为:
sign(yi−f(xi))sign(y_i-f(x_i))sign(yi−f(xi))Huber损失
Huber损失是均方差和绝对损失的折衷产物,对于远离中心的异常点,采用绝对损失,而中心附近的点采用均方差。这个界限一般用分位数点度量。损失函数如下:
L(y,f(x))={12(y−f(x))2,if ∣y−f(x)∣≤δδ(∣y−f(x)∣−δ2),if ∣y−f(x)∣>δL(y,f(x))= \begin{cases} \frac{1}{2}(y-f(x))^2, & \text {if $|y-f(x)|\leq\delta$} \\ \delta(|y-f(x)|-\frac{\delta}{2}), & \text{if $|y-f(x)|>\delta$} \end{cases}L(y,f(x))={21(y−f(x))2,δ(∣y−f(x)∣−2δ),if ∣y−f(x)∣≤δif ∣y−f(x)∣>δ
对应的负梯度误差为:
r(yi,f(xi))={yi−f(xi),if ∣y−f(x)∣≤δδsign(yi−f(xi)),if ∣y−f(x)∣>δr(y_i,f(x_i))= \begin{cases} y_i-f(x_i), & \text {if $|y-f(x)|\leq\delta$} \\ \delta sign(y_i-f(x_i)), & \text{if $|y-f(x)|>\delta$} \end{cases}r(yi,f(xi))={yi−f(xi),δsign(yi−f(xi)),if ∣y−f(x)∣≤δif ∣y−f(x)∣>δ分位数损失
它对应的是分位数回归的损失函数,表达式为
L(y,f(x))=∑y≥f(x)θ∣y−f(x)∣+∑y<f(x)(1−θ)∣y−f(x)∣L(y,f(x))=\sum_{y\geq f(x)}\theta|y-f(x)|+\sum_{y<f(x)}(1-\theta)|y-f(x)|L(y,f(x))=y≥f(x)∑θ∣y−f(x)∣+y<f(x)∑(1−θ)∣y−f(x)∣
其中 θθθ 为分位数,需要在回归前指定。对应的负梯度误差为:
r(yi,f(xi))={θ,if yi≥f(xi)θ−1,if yi<f(xi)r(y_i,f(x_i))= \begin{cases} \theta, & \text {if $y_i\geq f(x_i)$} \\ \theta-1, & \text{if $y_i < f(x_i)$} \end{cases}r(yi,f(xi))={θ,θ−1,if yi≥f(xi)if yi<f(xi)
对于Huber损失和分位数损失,主要用于健壮回归,也就是减少异常点对损失函数的影响。
5、GBDT的正则化
GBDT的正则化主要有三种方式。
第一种:设置步长(learning rate)
定义为 ν\nuν,对于前面的弱学习器的迭代
fk(x)=fk−1(x)+hk(x)f_k(x)=f_{k−1}(x)+h_k(x)fk(x)=fk−1(x)+hk(x)
加上了正则化项,则有
fk(x)=fk−1(x)+νhk(x)f_k(x)=f_{k−1}(x)+\nu h_k(x)fk(x)=fk−1(x)+νhk(x)
其中 ν\nuν 的取值范围为 0<ν≤10<\nu\leq10<ν≤1。对于同样的训练集学习效果,较小的 ν\nuν 意味着需要更多的弱学习器的迭代次数。通常我们用步长和迭代最大次数一起来决定算法的拟合效果。
第二种:子采样比例(subsample)
子采样比例(subsample):取值为 (0,1](0,1](0,1]。注意:这里是 无放回抽样。
选择小于1的比例可以减少方差,即防止过拟合,但是会增加样本拟合的偏差,因此取值不能太低。推荐在 [0.5,0.8][0.5, 0.8][0.5,0.8] 之间。
使用了子采样的GBDT有时也称作随机梯度提升树(Stochastic Gradient Boosting Tree, SGBT)。由于使用了子采样,程序可以通过采样分发到不同的任务去做boosting的迭代过程,最后形成新树,从而减少弱学习器难以并行学习的弱点。
第三种:弱学习器即CART回归树进行正则化剪枝。
三、从参数空间到函数空间理解GBDT+XGBoost
1、泰勒公式
定义:是一个用函数在某点的信息,描述其附近取值的公式。
基本形式
f(x)=f(x0)0!+f′(x0)1!(x−x0)+f′′(x0)2!(x−x0)2+...+f(n)(x0)n!(x−x0)nf(x)=\frac{f(x_0)}{0!}+\frac{f'(x_0)}{1!}(x-x_0)+\frac{f''(x_0)}{2!}(x-x_0)^2+...+\frac{f^{(n)}(x_0)}{n!}(x-x_0)^nf(x)=0!f(x0)+1!f′(x0)(x−x0)+2!f′′(x0)(x−x0)2+...+n!f(n)(x0)(x−x0)n
其中一阶泰勒展开式就是求一阶导,二阶展开式即求二阶导。x0x_0x0为已知,公式表示 f(x)f(x)f(x) 在 x0x_0x0 附近的展开。
GDBT 或是 xgb 都是一个参数迭代的过程,因此这里表示一个迭代形式的泰勒函数:假设
xt=xt−1+Δxx^t=x^{t-1}+\Delta xxt=xt−1+Δx
将 f(xt)f(x^t)f(xt) 在 x(t−1)x^{(t-1)}x(t−1) 处进行展开:
f(xt)=f(xt−1+Δx)≈f(xt−1)+f′(xt−1)Δx+f′′(xt−1)Δx22f(x^t)=f(x^{t-1}+\Delta x)\approx f(x^{t-1})+f'(x^{t-1})\Delta x+f''(x^{t-1})\frac{\Delta x^2}{2}f(xt)=f(xt−1+Δx)≈f(xt−1)+f′(xt−1)Δx+f′′(xt−1)2Δx2
2、最优化方法
(1)梯度下降法(Gradient Descend Method)
机器学习中需要最小化损失函数 L(θ)L(θ)L(θ),这个 θθθ 就是要求解的模型参数。GDM常用于求解无约束最优化问题,是一种迭代方法。初始化 θθθ 为 θ0θ^0θ0,不断迭代来更新 θθθ 的值,进行损失函数的极小化。
- 迭代公式: θt=θ(t−1)+Δθθ^t = θ^{(t-1)}+\Delta{θ}θt=θ(t−1)+Δθ
进行一阶泰勒展开:
L(θt)=L(θt−1+Δθ)≈L(θt−1)+L′(θt−1)Δθ\begin{aligned} L(\theta^t)&=L(\theta^{t-1}+\color{red}{\Delta{\theta}}\color{black}{)}\\ &\approx L(\theta^{t-1})+L'(\theta^{t-1})\color{red}{\Delta{\theta}} \end{aligned}L(θt)=L(θt−1+Δθ)≈L(θt−1)+L′(θt−1)Δθ
要使得 L(θt)<L(θ(t−1))L(θ^t) < L(θ^{(t-1)})L(θt)<L(θ(t−1)),则可取:
Δθ=−αL′(θt−1),则:θt=θt−1−αL′(θt−1)\color{red}{\Delta{\theta}}\color{black}{=-\alpha L'(\theta^{t-1})},\text{则:}\theta^t=\theta^{t-1}-\alpha{L'(\theta^{t-1})}Δθ=−αL′(θt−1),则:θt=θt−1−αL′(θt−1) - 其中解释一下为何 Δθ\Delta\thetaΔθ 要取值为上式:首先明确,α\alphaα 的值为正,为了保证 Δθ\Delta\thetaΔθ 恒为负数,则需要乘上 L′(θt−1)L'(θ^{t-1})L′(θt−1) 先保证其为整数,再加上负号即可。
- 其实 α\alphaα 就是我们常用的学习速率
- α\alphaα 如何选取?
通常我们选取一个很小的值,例如 0.01−0.10.01-0.10.01−0.1 之间。
(2)牛顿法
牛顿法就是求取二阶泰勒展开:
L(θt)≈L(θt−1)+L′(θt−1)Δθ+L′′(θt−1)Δθ22\begin{aligned} L(\theta^t) &\approx L(\theta^{t-1})+L'(\theta^{t-1})\color{red}{\Delta{\theta}}\color{black}+L''(\theta^{t-1})\frac{\color{red}{\Delta\theta^2}}{2} \end{aligned}L(θt)≈L(θt−1)+L′(θt−1)Δθ+L′′(θt−1)2Δθ2
假设我们要求的参数 θ\thetaθ 是一维,则记一阶导数为 ggg,二阶导数为 hhh,那么上式可表示为:
L(θt)≈L(θt−1)+gΔθ+hΔθ22\begin{aligned} L(\theta^t) &\approx L(\theta^{t-1})+g\color{red}{\Delta{\theta}}\color{black}+h\frac{\color{red}{\Delta\theta^2}}{2} \end{aligned}L(θt)≈L(θt−1)+gΔθ+h2Δθ2
此时若求取 L(θt)L(θ^t)L(θt) 的极小值,则令 gΔθ+hΔθ22g{\Delta{\theta}}+h\frac{{\Delta\theta^2}}{2}gΔθ+h2Δθ2 极小,求取其一阶导数为 000 时的 Δθ\Delta\thetaΔθ 即可:
∂(gΔθ+hΔθ22)∂Δθ=0Δθ=−gh\begin{aligned} \frac{\partial\left( g\color{red}{\Delta{\theta}}\color{black}+h\frac{\color{red}{\Delta\theta^2}}{2} \right)}{\partial\color{red}\Delta\theta}\color{black} &= 0 \\ \\ \color{red}\Delta\theta=\color{black}-\frac{g}{h} \end{aligned}∂Δθ∂(gΔθ+h2Δθ2)Δθ=−hg=0
则 θt=θt−1+Δθ=θt−1−gh\theta^t=\theta^{t-1}+\color{red}{\Delta\theta}\color{black}=\theta^{t-1}-\frac{g}{h}θt=θt−1+Δθ=θt−1−hg
如果参数 θ\thetaθ 是向量形式,那么可以向高维空间推广,此时的 hhh 为 HHH(海森矩阵)。
3、从参数空间到函数空间
(1)概述
以上介绍的梯度下降和牛顿法均为参数空间的优化算法
如何从参数空间推广到函数空间呢?
- 从 Gradient descend 到 Gradient boosting;
- 从 Newton’s method 到 Newton Boosting
下面介绍GBDT和xgb中使用的函数空间的优化算法,其基本原理还是梯度下降和牛顿法。
两者关系如下:GBDT泛指一切梯度提升树,包括XGB。为了区分二者,可以利用其梯度下降的原理进行区分
- GBDT在函数空间中利用梯度下降进行优化
- XGB 在函数空间利用牛顿法进行优化
(2)GBDT:梯度下降从参数空间到函数空间
其中对于函数空间,仅仅是将参数的拟合换为函数的拟合
,每次仍然迭代的是一个负梯度,只是其最终得到的是增量函数的累加而不是增量参数累加。
GBDT里,迭代项 ft(x)f_t(x)ft(x) 就是我们的决策树,最终将每棵决策树的预测值(函数)加起来。
(3)XGBoost:牛顿法从参数空间到函数空间
对于牛顿法的函数空间优化,其方法类似于梯度下降的函数空间优化。
牛顿法不仅使用目标函数的一阶偏导数,还进一步利用了目标函数的二阶偏导
,这样就考虑了梯度变化的趋势,因而能更全面地确定合适的搜索方向以加快收敛。
- 从参数空间到函数空间理解GBDT+XGBoost
集成学习(ensemble learning)(四)相关推荐
- 集成学习(ensemble learning)(二)
文章目录 一.Bagging原理 1.随机采样(BootStrap) 2.弱分类器和结合决策 二.Bagging算法流程 三.随机森林(Random Forest,RF) 1.特点 2.两个" ...
- 集成学习(ensemble learning)(一)
文章目录 一.集成学习概述 二.个体学习器 三.Boosting 四.Bagging 五.结合策略 1.平均法 2.投票法 3.学习法 (1)核心图解 a.构建新的训练集 b.构建新的测试集 c.最终 ...
- 机器学习-集成学习(ensemble learning)
集成学习ensemble learning:本身不是一个单独的机器学习算法,而是通过构建并结合多个机器学习器来完成学习任务. 可以用两句话形容: 1."三个臭皮匠顶个诸葛亮":一堆 ...
- 集成学习(Ensemble Learning)
在机器学习的有监督学习算法中,我们的目标是学习出一个稳定的且在各个方面表现都较好的模型,但实际情况往往不这么理想,有时我们只能得到多个有偏好的模型(弱监督模型,在某些方面表现的比较好).集成学习就是组 ...
- RDKit |基于集成学习(Ensemble learning)预测溶解度
Ensemble learning 集成学习 集成学习(Ensemble learning)是这样一个过程,按照某种算法生成多个模型,如分类器或者称为专家,再将这些模型按照某种方法组合在一起来解决某个 ...
- 集成学习+ensemble learning
集成学习+ensemble learning Blending is a word introduced by the Netflix winners. It is very close to sta ...
- EL:集成学习(Ensemble Learning)的概念讲解、问题应用、算法分类、关键步骤、代码实现等相关配图详细攻略
EL:集成学习(Ensemble Learning)的概念讲解.算法分类.问题应用.关键步骤.代码实现等相关配图详细攻略 目录 集成学习Ensemble Learning 1.集成学习中弱分类器选择 ...
- 集成学习(ensemble learning)(三)
集成学习系列第三篇(Boosting相关方法),传送前两篇: 集成学习(ensemble learning)(一) 集成学习(ensemble learning)(二) 文章目录 一.Boosting ...
- 集成学习(ensemble learning)干货系列(3)——Boosting方法详解
集成学习(ensemble learning)干货系列(1)--集成学习概述 集成学习(ensemble learning)干货系列(2)--随机森林(Bagging) Boosting基本原理 提升 ...
最新文章
- python中保留两位小数的编写程序_Python中保留两位小数的几种方法
- iOS如何使用三方字体
- 超级计算机的电力消耗,适用超级计算机的一种优化供电方式
- (JAVA) * 使用正则表达式,给字符串排序 * 使用数组排序
- scan-cvs-user.sh
- Java构造方法的继承调用
- 下载所有需要的rpm文件路径
- WebRequest 对象的使用
- 笑谈“委托”与“事件”
- 基于Householder变换的QR分解
- while和do-while的区别
- C++验证哥德巴赫猜想
- 消防信号二总线有没电压_杭后旗医院消防消防设备电源原理
- 2010 模板下载 罗斯文_利用模板建立Access 2010数据库的方法
- sony手机刷linux,索尼Z3 Z3C 5.0系统刷recovery教程_Sony Z3第三方recovery
- 大工微电子器件可靠性基础作业四威布尔分布小题求参数m和t0
- C++定义一个对象和new一个对象的区别与联系
- [转]94个比付费软件更好的免费软件
- 后OA时代:流程再造
- 嵌入式系统硬件处理器架构的发展趋势及比较分析
热门文章
- Java设计模式-中介者模式
- 「后端小伙伴来学前端了」Vue中Props配合自定义方法实现组件间的通信
- Apache Log4j2 远程代码执行 漏洞
- symfony api 错误响应_如何设计一个牛逼的 API 接口
- 8-Qt6 智能指针QPointer
- java paint文字_Java中paint怎么用
- mysql可以关联视图_Mysql 五: 数据库自关联、视图
- java m4a文件拼接_面试官:为啥不提倡字符串拼接?看阿里java开发手册怎么说
- linux挂载文件夹查看命令,findmnt命令查找已挂载的文件系统
- 单单表单独占一行_数据透视表→Alt+D+P?