1. Bagging & Boosting
bagging
week learner: overfitting
RF: 并行训练,投票
boosting
week learner: underfitting
adboost, gbdt,xgboost:串行训练,累加
2. 梯度树
梯度树 : 基于残差的训练
残差: 真实值 - 预测值
最终预测 = 模型1预测 + 模型2预测 + …+ 模型n预测
3.✍gdbt原理和过程
1.目标函数
2.泰勒一阶展开情况f(x + m),为什么能直接求偏导 能拟合梯度
3.cart拟合(xi, rmi)-> Rmj
4.叶子节点的最佳预测值 cmj :遍历一遍Rmj使得loss最小
5.最后的fm公式
-
目标函数 ( 有m颗树)
f m = ∑ i = 1 m h ( x ; θ i ) = f m − 1 + h ( x ; θ m ) \begin{aligned} f_{m} &=\sum_{i=1}^{m} h\left(x ; \theta_{i}\right) \\ &=f_{m-1}+h\left(x ; \theta_{m}\right) \end{aligned} fm=i=1∑mh(x;θi)=fm−1+h(x;θm) -
Loss function
∑ i = 1 N L ( y i , f m − 1 ( x i ) + h ( x i ; θ m ) ) ∑ i = 1 N L ( y i , f m ( x i ) ) \begin{array}{l} \sum_{i=1}^{N} L\left(y_{i}, f_{m-1}\left(x_{i}\right)+h\left(x_{i} ; \theta_{m}\right)\right) \\ \sum_{i=1}^{N} L\left(y_{i}, f_{m}\left(x_{i}\right)\right) \end{array} ∑i=1NL(yi,fm−1(xi)+h(xi;θm))∑i=1NL(yi,fm(xi))
泰 勒 展 开 f ( x + m ) = f ( x ) + f ′ ( x ) ⋅ m + 1 2 f ′ ′ ( x ) ⋅ m 2 + ⋯ + 1 n ! f 2 ( x ) m n 泰勒展开f(x+m)=f(x)+f^{\prime}(x) \cdot m+\frac{1}{2} f^{\prime \prime}(x) \cdot m^{2}+\cdots+\frac{1}{n !} f^{2}(x) m^{n} 泰勒展开f(x+m)=f(x)+f′(x)⋅m+21f′′(x)⋅m2+⋯+n!1f2(x)mn
f
(
x
)
=
L
(
y
,
f
m
−
1
(
x
i
)
)
f
(
x
+
Δ
x
)
=
L
(
y
i
,
f
m
−
1
(
x
i
)
+
h
(
x
i
;
θ
m
)
)
\begin{array}{l} f(x)=L\left(y, f_{m-1}\left(x_{i}\right)\right) \\ f(x+\Delta x)=L\left(y_{i}, f_{m-1}\left(x_{i}\right)+h\left(x_{i} ; \theta_{m}\right)\right) \end{array}
f(x)=L(y,fm−1(xi))f(x+Δx)=L(yi,fm−1(xi)+h(xi;θm))
拟合梯度的原因:
cart拟合(xi, rmi) Rmj
叶子节点的最佳预测值 cmj :遍历一遍Rmj使得loss最小
最后的fm公式
4. gbdt和rf哪个树更深
RF深, 特点:低偏差,高方差, 求平均 RF希望每个基学习器精度尽量的高。 GBDT基学习器偏差高无所谓,反正后面就是对误差不断的拟合
5. gbdt和xgb的区别
1.GDBT在函数空间中利用梯度下降法进行优化而XGB在函数空间中使用了牛顿法进行优化。即GDBT在优化中使用了一阶导数信息,而XGB对损失函数进行了二阶泰勒展开,用到了一阶和二阶倒数信息。
2.XGB在损失函数中加入了正则项(树叶子节点个数,每个叶子节点上输出score的L2模平方和。对于缺失的样本,XGB可以自动学习出它的分裂方向。
3.GDBT的节点分裂方式使用的是gini系数,XGB通过优化推导出分裂前后的增益来选择分裂节点。
4.XGB在处理每个特征列时可以做到并行。