Random Forest
随机森林基于bagging
的集成思想,通过对数据集有放回地采样生成若干子数据集,训练多棵决策树来进行分类或回归任务,减少偏差风险,同时降低过拟合
随机森林的优缺点:
优点:
- 其对于噪声和异常值有较强的鲁棒性
- 不容易过拟合
- 可以处理不平衡的数据集
缺点:
- 训练时间长
- 可解释性较差
GBDT
梯度提升决策树(GBDT)基于boosting
的集成思想,通过组合多个弱学习器(决策树)来构建一个强学习器,每一棵新的树都以纠正之前所有树的错误为目标,回归任务中错误为差值,分类任务中为对数似然
❗迭代开始时的初始基本树按如下方式初始化:
-
分类任务:数据集的
label
对数比例 例如: 二分类下,训练集中正样本占70%,负样本占30%,则初始模型的预测值为,差值为(1-0.847)(实际标签与该样本属于正类的概率之差) 多分类下,假如是3个分类,类别1占0.5,类别2占0.3,类别3占0.2,则初始模型的预测值为 此时,选择某一个类别的占比当作基底即可 -
回归任务:数据集的
label
取均值
Xgboost
Xgboost
是对GBDT
的具体工程化,都是基于梯度提升框架的机器学习算法,但是存在一些差异化:
- 目标函数:
GBDT
最小化损失函数,但Xgboost
在目标函数中加入了考虑叶子节点数量和叶子节点上得分2范数的正则项 - 普通的
GBDT
在优化时主要使用一阶导数信息,Xgboost
使用一阶和二阶导数信息 GBDT
每棵树的构建是顺序计算,Xgboost
在构建单个树的构建过程中使用多线程并行