集成学习
目录
前言
机器学习的精度在前几年一直没有深度学习精度高,但是最近kaggle比赛竞选出一批优秀的机器学习算法,集成学习。
本文旨在用概括性语言总结集成学习要义
一、类别
集成学习分为bagging和boosting两个方向。
Bagging主要为并行无依赖学习结构模型,Boosting主要为强依赖串行学习结构模型。
二、内容
Bagging主要思想是:通过多个不同分类器,每个分配器内随机采样样本,最终将不同分类器的分类结果或拟合结果通过投票或求均值的方式得到最优结果。
用公式表达则是:prediction=result.mode(),即:对所有分类器的分类结果求众数。
Boosting的主要思想是:先通过一个优化器对数据优化,优化的结果传入第二个优化器......以此类推,直到得到满意的优化结果。后期通过添加优化器权重或改变学习率等手段在满足需求的条件下适当删掉部分优化器,提高训练速度。
用公式简单表达则是:,即当前强优化器等于次级强优化器加当前弱优化器。同时,当前强优化器也等于包括当前弱优化器在内的之前的所有弱优化器的总和:
三、Bagging
典型代表包括:随机森林
随机森林思想:通过多个不同优化器,每个优化器内随机采样样本和特征,最终将不同分类器的分类结果或拟合结果通过投票或求均值的方式得到最优结果。
随机森林既可以做分类也可以做回归。分类通过投票方式选出最优结果。回归通过求均值等方式求最优结果。
随机森林通过“袋外错误”机制代替交叉验证机制,实现自适应找到最优数据切分和随机方案。“袋外错误”指的是,在每一个优化器优化好自己的模型后,测试集所得预测值与真实值不相等的样本个数占测试集总样本个数的比例。所得“袋外错误”对应一组数据切分和随机方案,多次求取“袋外错误”找到“袋外错误”最低的一组数据切分和随机方案,作为最优方案进行训练。
四、Boosting
典型代表包括:GBDT(梯度提升决策树,cart树),XGBOOST
梯度下降:求解无约束条件下的最优结果
GBDT:简单来说就是先通过一个优化器对数据优化,优化的结果传入第二个优化器......以此类推,直到得到满意的优化结果。
详细点来说就是GBDT会将第一个带权重cart决策树训练所得负梯度,传递给第二个带权重cart决策树继续优化,后级进行持续优化过程中,中间传递的负梯度值不断减小,从而精度越来越高,通过类似线性回归中参数更新过程,对每个cart决策树权重进行更新,从而得到最优模型。
GBDT,梯度提升决策树。梯度指的是以梯度优化基准,提升指的是模型性能提升,决策树指的是cart决策树。连起来解读就是:以梯度为各个cart决策树优化基准的优化器。
XGBOOST,在GBDT损失函数的基础上加了一项惩罚项。
接下来,说一说这个惩罚项是如何构建的。
先说一说,惩罚项是如何降低过拟合的:已知原GBDT的损失函数由预测值和真实值所组成的函数构成,假如加上一项关于样本和权重的函数,也就是惩罚项(默认正值),对该损失函数求导后所得梯度值变大了,此时进行梯度更新,使得更新跨度变大,加速了梯度更新过程在训练次数相同时所得权重更小,从而降低了模型复杂度,削弱了过拟合过程。
XGBOOST的惩罚项考虑到基于叶子节点个数的模型复杂度和当前强学习器损失,将损失函数中的预测值通过泰勒展开式,展开成了前一级强学习器预测值与带偏微分关系的当前弱学习器预测值和的形式,进而将损失函数约等于了当前真实值与前一级预测值的损失与当前预测值的微分表达式的和的形式,最终将损失表示为:当前弱学习器预测值多项式+叶节点个数多项式。
五、优缺点分析
1、优点
随机森林:
- :精度高,表现好
- :能处理高维数据,不用特征选择
- :能筛选出重要特征
- :能检测出特征之间的相互影响
- :模型泛化能力强
- :训练速度快
- :对于不平衡数据,可以平衡误差
- :对缺省值不敏感
- :实现简单
GBDT:
- :不进行特征缩放也能表现良好
- :适用范围广(连续数据、离散数据)
- :对尖峰噪声鲁棒性强
- :精度高
- :测试时间较短
XGBOOST:
- :支持线性分类器,较GBDT学习器更多样化
- :对缺失值有良好的处理方式
- :支持特征抽样,防止过拟合
- :引入基于叶结点个数的正则化项,防止过拟合
- :每次迭代后降低树的影响,为后续提供更好的学习空间
- :XGBOOST工具支持特征并行学习,多线程模式提高了训练速度
2、缺点
随机森林:
- :在部分噪声较大的分类或回归问题上过拟合
- :处理低维数据时表现较差
GBDT:
- :参数调试较困难,训练时间较长
- :不适用高维稀疏数据
- :训练时间较长
XGBOOST:
- :贪心法预排序耗时占内存
- :部分叶节点分裂增益低,效率较低
- :不支持线上实时训练