Decision Trees
-
好处
- 可解释
- 可以处理数值和类别特征
-
坏处
- 因为是一次次分裂出来的,所以不稳定,容易被数据噪音影响,需要集成学习帮助
- 复杂的树会过拟合
- 计算时并行不容易,性能上容易吃亏
Random Forest
- 训练多个决策树来提升稳定性
- 每个树独立训练
- 投票来决定分类,回归用平均
- 随机从哪里来呢?
- Bagging:训练时随机替换了采样,拿了之后放回去再拿,eg [1, 2, 3, 4, 5] -> [1, 2, 2, 3, 4]
- 随机选择部分的特征列,比如一个表格随机采样一些行,再从行随机采样一些列
- 无论样本还是特征在训练时都是不一样的
Gradient Boosting Decision Trees(GBDT)
-
顺序训练多颗树
-
在时间步 t=1, …, 假设 $F_t(x)$ 是过去训练的所有的t-1树的输出求和
- 在残差数据上训练一个新的树 $f_t$ :${(x_i,y_i-F_t(x_i)) }_{i=1,…}$
- $F_{t+1}(x)=F_t(x)+f_t(x)$
- 也就是每次预测真实值和上一次预测值的差
-
如果用均方误差作为损失,那么残差等于 $-\part L /\part F$,所以它被称为梯度提升
Summary
- 决策树:一个用于分类/回归的可解释性模型
- 集成树来降低偏移和放茶
- 随机森林:并行训练多棵树
- 梯度提升树:顺序训练残差
- 树在工业界应用广泛
- 简单,好调,经常给出满意的结果