学习路线参考《机器学习》周志华

其他参考书:《机器学习实战》《数据挖掘》《百面机器学习》

还在更新ing...

1.什么是集成学习?

通过构建并结合多个学习器来完成学习任务。同质:集成的个体学习器(基学习器)相同,异质:集成的个体学习器不同

2.集成学习分为哪几种?有何异同?

(1)个体学习器间存在强依赖关系、必须串行生成的序列化方法;代表:Boosting

(2)个体学习器之间不存在强依赖关系,可同时生成的并行化方法;代表:Bagging,Random Forest

2.1 Boosting

2.1.1 Boosting的基本原理是什么?

Boosting是一族可以将弱学习器提升为强学习器的算法,工作机制:先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续得到更多的关注,然后根据调整后的样本分布来训练下一个基学习器,如此重复进行直到基学习器数目达到事先指定的值T,最终将这T个基学习器进行加权结合。

2.1.2 Adaboost的基本原理是什么?

思想:对分类正确的样本降低了权重,对分类错误的样本升高或保持权重不变。在最后模型融合的时候,也根据错误率对基分类器进行加权融合。

假设前提:二分类问题、损失函数为指数形式。学习T个个体学习器h_t和相应的权重\alpha_t,使得它们的加权和H(\textbf{x})=\sum _{t=1}^T\alpha_t h_t(\textbf{x})能够最小化损失函数l_{exp}(H|D)=\mathbb{E}_{x\sim D}[e^{-f(x)H(x)}]

2.1.3 Boosting Tree 提升树的基本原理是什么?

每一轮都训练一个回归树去拟合当前模型的残差

参考来源:(以下关于梯度提升树、GBDT的参考来源也是这篇文章)

GBDT算法原理以及实例理解(含Python代码简单实现版)-CSDN博客

2.1.4 Gradient Boosting 梯度提升树的基本原理是什么?

此时我们发现GBDT的负梯度就是残差,所以说对于平方损失函数问题,我们要拟合的负梯度就是残差。

实际上只有当用平方和损失函数作为loss时,负梯度和残差才相等。所以残差只是特例,说拟合负梯度才更加具有普适价值,才能更加泛化,当损失函数不再是平方和损失函数时,只能称为拟合负梯度不能才称为拟合残差。

参考来源:

(八)GBDT为什么拟合负梯度(拟合残差?)_为什么gbdt用负梯度当做残差?-CSDN博客

关于最速下降法,梯度下降法中,为什么在负梯度方向函数值下降最快,可参考以下文章

梯度下降法中,为什么在负梯度方向函数值下降最快_为什么负梯度方向是下降最快的方向-CSDN博客

为什么负梯度可以作为残差的近似值?

机器学习笔记之十三——对GBDT的疑问:GBDT的负梯度为什么近似于提升树的残差_负梯度为何是残差-CSDN博客

2.1.5 GBDT 梯度提升决策树的基本原理是什么?

把决策树和提升树组合在一起就是GBDT。以平方损失函数为例,

首先初始化弱学习器,例如将样本均值作为初始学习器的预测值,计算出每个样本的负梯度,将这些残差作为下一个学习器的训练样本值,训练回归树,然后可以得到每个结点都是负梯度的一棵树,此时更新下一个分类器,令

训练下一棵树,每个结点的负梯度为y-f_1(x),也就是上一棵树的基础(y-f_0(x))上加上步长*结点值。最后将每棵树的预测结果加起来,初始树(均值)+步长*(第一棵树预测值+...+最后一棵树预测值)

2.1.6 GBDT的优点和局限性有哪些?

优点:

  • 预测阶段的计算速度快,树与树之间可并行化计算。
  • 在分布稠密的数据集上,泛化能力和表达能力都很好。
  • 采用决策树作为弱分类器使得GBDT模型具有较好的解释性和鲁棒性,能够自动发现特征间的高阶关系,并且也不需要对数据进行特殊的预处理如归一化等。

局限性:

  • GBDT在高维稀疏的数据集上,表现不如支持向量机或者神经网络。
  • 在处理文本分类特征问题上,优势不如在处理数值特征时明显。
  • 训练过程需要串行训练。

2.1.7 XGBoost的基本原理是什么?

eXtreme gradient boosting:与普通GB的区别是在XGBoost的损失函数在H_{t-1}(\textbf{x})处泰勒展开到二次形式,且最小化的目标函数还包含正则项,正则项对叶子节点数和叶子节点值做惩罚。

机器学习分类算法之XGBoost(集成学习算法)_xgboost分类-CSDN博客

视频参考

6.【目标函数】泰勒二阶展开1_哔哩哔哩_bilibili

2.1.8 XGBoost 与GBDT的联系与区别是什么?

  • 加入了正则项来控制模型的复杂度,有利于防止过拟合,从而提高模型的泛化能力。
  • GBDT在模型训练时只使用代价函数的一阶导数,对代价函数进行二阶泰勒展开,可以同时使用一阶和二阶导数。
  • 传统的GBDT采用CART作为基分类器,支持多种类型的基分类器,例如线性分类器(为什么?)

(还有其他的,但是不理解)(来源:《百面机器学习》)

2.2 Bagging

2.2.1 Bagging的基本原理是什么?

能适用于多分类、回归任务

基于自助采样法Bootstrap sampling。给定包含m个样本的数据集,先随机取出一个样本放入采样集中,再把该样本放回初始数据集,使得下次采样时该样本仍有可能被选中,经过m次随机采样操作,得到m个样本的采样集,初始训练集中有的样本在采样集里多次出现,有的则从未出现,没有抽到的样本比例约为36.6%.

照这样可采样出T个含m个训练样本的采样集,然后基于每个采样集训练出一个基学习器,再将这些基学习器进行结合

优点:降低模型的方差,减少了过拟合的风险;并行化处理,适用于大规模数据。
缺点:不适用于处理高度偏斜的类别分布;难以解释组合模型的预测结果;计算成本可能很高。
Bagging对分类任务使用简单投票法,对回归任务采用简单平均法。若分类预测时出现两个类收到同样票数的情形,最简单的方法是随机选择一个,也可以进一步考察学习器投票的置信度来确定最终胜者。

2.2.2 随机森林的原理是什么?

RF在以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性选择,即对基学习器的每个结点,先从该结点的属性集合中随机选择一个包含k个属性的子集,然后再从这个子集中选择一个最优属性用于划分。参数k控制了随机性的引入程度:若令k=d(全部属性的个数),则基决策树的构建与传统决策树相同,若令k=1,则是随机选择一个属性用于划分,一般推荐k=\log_2d
样本扰动+属性扰动
优点:在处理高维数据时表现良好,高度并行,运行速度快;对异常值不敏感;可以同时处理分类和回归问题,泛化性能好;针对分类不平衡数据,随机森林有效
缺点:对于噪声数据敏感;需要一定的计算资源和时间,训练时间比较长;结果不容易解释,很难说明哪些特征对结果的影响最大

2.2.3 学习器结合好处有哪些?

(1)从统计的方面看,由于学习任务的假设空间往往很大,可能有多个假设在训练集上达到同等性能,若使用单学习器可能因误选而导致泛化性能不佳,结合多个学习器可以降低这一风险
(2)从计算的方面看,学习算法往往会陷入局部极小,有的局部极小点所对应的泛化性能可能很糟糕,而通过多次运行之后进行结合,可以降低陷入糟糕局部极小点的风险
(3)从表示的方面看,某些学习任务的真实假设可能不在当前学习算法所考虑的假设空间中,若使用单学习器则无效,通过结合多个学习器,相应的假设空间有所扩大,可能学得更好的近似


2.2.4 常见的结合策略有哪些?

(1)平均法(回归):简单平均法、加权平均法
(2)投票法(分类)
绝对多数投票法:若某标记得票超过半数,则预测为该标记,否则拒绝预测
相对多数投票法:预测为得票最多的标记,若有相同,随机选
加权投票法
若学习任务要求必须提供预测结果,绝对多数投票法退化为相对多数投票法
根据h(x)的类型可以分为:
①类标记:h(x)只能取0或1,称为硬投票
②类概率:h(x)\in [0,1],称为软投票
(3)学习法
用另一个学习器来结合,Stacking算法
Stacking基本流程:Stacking先从初始数据集训练出初级学习器,然后“生成”一个新数据集用于训练次级学习器,在这个新数据集中,初级学习器的输出被当作样例输入特征,而初始样本的标记仍被当作样例标记。假定初级学习器使用不同学习算法生成,即初级集成是异质的
Stacking算法

2.3 如何从减小方差和偏差的角度解释Boosting和Bagging的原理?

从消除基分类器的偏差和方差角度,Boosting是通过逐步聚焦于基分类器分错的样本,减小集成分类器的偏差。Bagging则是采取分而治之的策略,通过对训练样本多次采样,并分别训练出多个 不同的模型,然后做综合,来减小集成分类器的方差。

Logo

永洪科技,致力于打造全球领先的数据技术厂商,具备从数据应用方案咨询、BI、AIGC智能分析、数字孪生、数据资产、数据治理、数据实施的端到端大数据价值服务能力。

更多推荐