机器学习面试——集成学习篇

这里是LeeTioN的博客

一、集成学习概论

什么是集成学习?

集成学习(Ensemble Learning)通过构建并结合多个基学习器来完成学习任务,比如分类问题下,集成学习通过一定的方式组合若干个基分类器的预测结果来对问题进行更精准的预测,具有更高的鲁棒性和泛化能力。

集成学习一般有哪几类?

Bagging:全称Bootstrap Aggregation。Bagging方法中每一个基学习器的数据来源,都是将整体样本和所有特征进行一种有放回的抽取。每个基学习器在“不同”的数据集中学习出一个模型,最后的预测结果通过所有基学习器共同决定。分类问题采用投票的方式,回归问题采用平均值的方式。

Boosting:用所有的数据去训练基学习器,每一个基学习器相互依赖,基于前面所有的学习器的结果,学习他们与真实值之间的残差,集中关注预测出错的地方,来形成一个新的学习器。是一种串行的学习方式。

Bagging和Boosting的区别?
样本选择:

Bagging: 训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。
Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。

样例权重:

Bagging: 使用均匀取样,每个样例的权重相等。
Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。

预测函数:

Bagging: 所有预测函数的权重相等。
Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。

并行计算:

Bagging: 各个预测函数可以并行生成。
Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。

二、GBDT

一位大佬总结得很好 机器学习算法GBDT的面试要点总结-上篇,我按照他的思路框架来写一下。

什么是GBDT?

GBDT(Gradient Boosting Decision Tree)全称梯度下降树,是Boosting家族的一种,采用加法模型,通过不断减少训练过程中产生的残差来将分类或回归问题不断优化。

GBDT如何选择特征?

GBDT的弱分类器默认选择的是CART,所以GBDT的特征选择遵循CART的特征选择方法。其实也可以选择其他弱分类器的,选择的前提是低方差和高偏差。框架服从Boosting 框架即可。

GBDT如何做特征工程?

2014年Facebook发表了一篇关于CTR预估的论文,提到了将GBDT和LR模型融合做分类的方法。原文下载
GBDT是一种非线性模型,其思想使其具有天然优势可以发现多种有区分性的特征以及特征组合,决策树的路径可以直接作为LR输入特征使用,省去了人工寻找特征、特征组合的步骤。
详细解读CTR预估中GBDT与LR融合方案。

GBDT由CART 回归树组成,那么如何运用到分类问题?

GBDT可以用来分类,但不代表GBDT使用的是分类树。GBDT的核心是每轮的训练是在上一轮的训练的残差基础之上进行训练的。这里的残差就是当前模型的负梯度值 。这个要求每轮迭代的时候,弱分类器的输出的结果相减是有意义的,而残差相减是有意义的,但是类别相减是没有意义的。还有一点需要注意,在GBDT运用分类的问题时,CART选取特征已经不是用Gini指数来挑选了

对于二分类问题,在GBDT中的每一个叶子节点的估计值即是一个概率值,我们则可以通过概率值来预测样本的类别。

这篇文章中详细地讲述了GBDT用于分类问题的方法梯度提升树(GBDT)原理小结,强烈推荐。

GBDT的优缺点?
优点

可以灵活处理各种类型的数据,包括连续值和离散值。
相对于SVM来说,在相对少的调参时间情况下,预测的准备率也可以比较高。
使用一些健壮的损失函数,对异常值的鲁棒性非常强。比如 Huber损失函数和Quantile损失函数。

缺点

由于弱学习器之间存在依赖关系,难以并行训练数据。不过可以通过自采样的SGBT来达到部分并行。

GBDT的梯度提升体现在什么方面?

GBDT的损失函数对于目标函数 f(x) f ( x ) 求导,每一轮的迭代都会用线性相加的方式更新目标函数 f

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值