这是我参与11月更文挑战的第7天,活动详情查看:2021最后一次更文挑战
Boosting模型
Boosting模型 - 多个决策树模型集成后的一种模型
-
简述随机森林模型与Boosting模型之间的区别
随机森林模型与Boosting模型 - 模型集成中的Bagging和Boosting方法
随机森林模型:各个决策树模型的生成 相互独立 - 样本重采样 得到不同训练集 产生不同决策树模型Boosting模型:新的决策树模型生成 - 基于已经生成的决策树模型的结果 - 决策树模型的生成并不是相互独立 - 新的决策树生成依赖前一个决策树模型
-
常见的基于决策树模型的Boosting方法及各自原理是什么?
AdaBoost和GBDT
AdaBoost: 加大此前决策模型中分类错误的数据的权重 - 下一个生成的决策树模型 尽量将这些训练集分类正确
GBDT:计算损失函数梯度(gradient)下降方向 - 定位模型不足 - 建立新的决策树模型 - 应用更广
随机森林模型和GBDT模型的优缺点
随机森林模型、GBDT模型 - 广泛的应用 - 基于决策树模型 - 处理离散型变量和连续型变量同时存在的场景 - 不需数据集过多假设 - 处理比较复杂的问题 - 集成学习方法 - 相比单一决策树模型 - 性能很大提升
面对更大训练集 - 训练速度较慢 - 寻找更快的方法
XGBoost模型
性能更好的Boosting模型
- 简述XGBoost基于GBDT模型优化的原因
在传统GBDT模型的基础上对算法做了以下调整:- 传统GBDT - CART树 基学习器 XGBoost - 还支持线性分类器 -基学习器 L1和L2正则化 的逻辑回归模型/线性回归模型 - 提高了模型的应用范围
- 传统GBDT - 优化 - 损失函数一阶导数信息
XGBoost - 优化 - 损失函数 二阶泰勒展开 - 得到一阶导数和二阶导数 - 加快优化速度
XGBoost - 损失函数中 加入了正则项 - 控制模型的复杂度 - 权衡方差和偏差的角度 - 降低了模型的方差 - 学习出来的模型更简单 - 防止过拟合 - 提高模型**泛化能力 ** - 借鉴随机森林模型 - 对特征进行采样 - 生成决策树的过程中支持列抽样 - 防止过拟合+减少计算量
- 自动处理缺失值 - 将其单独作为一个分支
算法改进 + 性能很大提高【大数据量处理上 - 更进一步的提高计算效率,提升速度(支持并行)】
XGBoost的并行操作
模型上:一次迭代完成后 - 进行下一次迭代
特征上:并行
决策树模型学习最耗时的一个步骤 - 对特征值进行排序【确定最佳分割点】
XGBoost - 训练前 - 预先对数据进行排序 - 保存为块结构 - 后面迭代中会重复使用这个结构 - 大大减少了计算量
块结构 - 并行化成为可能
节点选择 - 计算每个特征的增益 - 选择增益最大的特征作为节点 - 各个特征的增益计算 - 基于块结构实现并行操作