1.集成学习1.1什么是算法?(一)(组图)

算法工程师、技术软件求职机器学习必记八脚散文

更多算法/业务/HR人脸等笔试题和面试题——>个性签名自征!

1. 综合学习

1.1 什么是集成学习算法?

集成学习算法本身并不是一个单独的机器学习算法,而是通过构建和组合多个机器学习器来完成学习任务。可以说是极百甲的强项,在机器学习算法上能有很高的准确率。缺点是模型的训练过程可能比较复杂,效率不是很高。

目前,有两种常见的集成学习算法:基于 Bagging 的算法和基于 Boosting 的算法。基于 Bagging 的代表算法包括随机森林,而基于 Boosting 的代表算法包括 Adaboost、GBDT、XGBOOST 等。

1.2 集成学习的主要框架有哪些?

集成学习的主流框架有3种,Bagging(并行)、Boosting(串行)、Stacking

1.3 常用的bagging(Bootstrap AGgregation 的简称)算法有哪些?

多重采样(bootstrap(带替换的随机抽样)每次从训练集中抽取一个固定大小的训练集A,随机重采样),训练多个分类器,集体投票,旨在降低方差

如果是分类算法预测,则T个弱学习器投出的票数最多的类别或类别之一为最终类别。如果是回归算法,则将T个弱学习器得到的回归结果进行算术平均,得到最终的模型输出。常用bagging算法:随机森林算法

1.4 常用的boosting算法有哪些?

基分类器相互堆叠,专注于错误分类的样本,旨在减少方差。

Boosting的主要思想:迭代学习。

AdaBoost、GBDT、XGBoost 都属于 Boosting 思想。

涉及两部分,加法模型和前向步算法。加性模型是指由一系列弱分类器线性相加形成一个强分类器。

Forward step是指在训练过程中,下一次迭代生成的分类器在上一轮的基础上进行训练。

它是一种框架算法,主要是通过对样本集的运算得到样本子集,然后利用弱分类算法对样本子集进行训练,生成一系列基分类器。可以用来提高其他弱分类算法的识别率机器学习防止过拟合,即将其他弱分类算法作为基分类算法放入Boosting框架中,通过Boosting框架对训练样本集的运算得到不同的训练样本子集.训练样本子集生成基分类器;每次得到一个样本集,利用基分类算法在该样本集上生成一个基分类器,这样经过给定的训练轮数n,就可以生成n个基分类器。然后Boosting框架算法对n个基分类器进行加权融合,产生最终结果分类器。

Boosting 是一种与 Bagging 非常相似的技术。其基本原理:首先从初始训练集中训练一个基学习器,然后根据基学习器的性能调整训练样本的分布,增加误分类样本的权重,降低正确分类样本的权重,这样上一个base learner做错的训练样本会在后续得到更多的关注,然后根据调整后的样本分布训练下一个base learner;重复此过程,直到基学习器的数量达到预先指定的值 T,最后对 T 个基学习器进行加权组合。

过程:1、给定初始训练数据,训练第一个基学习器;2、根据base learner的表现调整样本,对前一个learner的错误样本投入更多关注;3、使用调整后的样本训练下一个基础学习器;4、重复上述过程T次,将T个学习器与权重组合

1.5 常用的堆叠算法有哪些?

多次采样,训练多个分类器,以输出为最终输入特征,由k-NN、随机森林和朴素贝叶斯基分类器组成,其预测结果通过Logistic回归组合为元分类器。

2. 随机森林

2.1 简述随机森林算法的原理

随机森林是一种基于决策树(分类树或回归树)作为基分类器的集成算法。它结合了多个独立的决策树,然后通过投票或取均值的方式得到最终的预测结果。机器学习方法。

1. 一个样本容量为 N 的样本被替换抽取 N 次,一次一个,最终形成 N 个样本。这N个样本用于训练决策树作为决策树根节点的样本。

2.当每个样本有M个属性时,当决策树的每个节点都需要分裂时,从这M个属性中随机选择m个属性,满足条件m 0,错误率

错误率=0.5,α=1;

α

图片[1]-1.集成学习1.1什么是算法?(一)(组图)-老王博客

4) 更新样本权重:第一次学习完成后,需要重新调整样本权重,这样第一次分类被误分类的样本权重可以在下一次集中关注学习。学习; 其中,h(xi)=yi表示第i个样本的训练是正确的,如果不相等则表示分类错误。Z 是归一化因子:Zt=sum(D)

5) 重复学习,这样经过t轮学习,你会得到t个弱学习算法,权重,弱分类器的输出,AdaBoost算法的最终输出:

H(X)>0 为 1 类;高(X)

3.4 为什么Adaboost不适合使用高维稀疏特征?

3.5 Adaboost算法的优缺点?

4. GBDT

4.1 简述GBDT的原理

DT-Decision Tree决策树,GB是Gradient Boosting,是一种学习策略。GBDT 的含义是采用 Gradient Boosting 策略训练的 DT 模型。

梯度提升决策树。一共构建了T棵树。构造第t棵树时,需要对前t-1棵树的训练样本的分类回归产生的残差进行拟合。每次以与数据集相同的方式构建树,拟合的目标就变成了 t-1 树的输出的残差。不可并行化。GBDT 是一种提升算法。

Boosting,迭代,是通过迭代多棵树来共同做出决策。如何做到这一点?难道每棵树都是独立训练的。比如A人,第一棵树认为是10岁,第二棵树认为是0岁,第三棵树认为是20岁,所以我们取10岁的平均值最后的结论?-当然不是!且不说这是投票方式而不是GBDT,只要训练集不变,独立训练3次的三棵树肯定是一模一样的,完全没有任何意义。如前所述,GBDT将所有树的结论累加得出最终结论,因此可以想象每棵树的结论不是年龄本身,而是年龄的累加。GBDT的核心是每棵树都学习到之前所有树结论的残差。这个残差是加了预测值之后的真实值的累积。比如A的真实年龄是18岁,但是第一棵树的预测年龄是12岁,也就是6岁,也就是残差6岁。然后在第二棵树中,我们将 A 的年龄设置为 6 岁来学习。如果第二棵树真的可以将A分成6岁的叶子节点,那么两棵树累加的结论就是A的真实年龄;如果第二棵树的结论是5岁,A还有1岁的残差,第三棵树A的年龄变成1岁,继续学习。这就是 GBDT 中的梯度提升,很简单。这个残差是加了预测值之后的真实值的累积。比如A的真实年龄是18岁,但是第一棵树的预测年龄是12岁,也就是6岁,也就是残差6岁。然后在第二棵树中,我们将 A 的年龄设置为 6 岁来学习。如果第二棵树真的可以将A分成6岁的叶子节点,那么两棵树累加的结论就是A的真实年龄;如果第二棵树的结论是5岁,A还有1岁的残差,第三棵树A的年龄变成1岁,继续学习。这就是 GBDT 中的梯度提升,很简单。这个残差是加了预测值之后的真实值的累积。比如A的真实年龄是18岁,但是第一棵树的预测年龄是12岁,也就是6岁,也就是残差6岁。然后在第二棵树中,我们将 A 的年龄设置为 6 岁来学习。如果第二棵树真的可以将A分成6岁的叶子节点,那么两棵树累加的结论就是A的真实年龄;如果第二棵树的结论是5岁,A还有1岁的残差,第三棵树A的年龄变成1岁,继续学习。这就是 GBDT 中的梯度提升,很简单。也就是6岁,也就是残6岁。然后在第二棵树中,我们将 A 的年龄设置为 6 岁来学习。如果第二棵树真的可以将A分成6岁的叶子节点,那么两棵树累加的结论就是A的真实年龄;如果第二棵树的结论是5岁机器学习防止过拟合,A还有1岁的残差,第三棵树A的年龄变成1岁,继续学习。这就是 GBDT 中的梯度提升,很简单。也就是6岁,也就是残6岁。然后在第二棵树中,我们将 A 的年龄设置为 6 岁来学习。如果第二棵树真的可以将A分成6岁的叶子节点,那么两棵树累加的结论就是A的真实年龄;如果第二棵树的结论是5岁,A还有1岁的残差,第三棵树A的年龄变成1岁,继续学习。这就是 GBDT 中的梯度提升,很简单。第三棵树A的年龄变成1岁,继续学习。这就是 GBDT 中的梯度提升,很简单。第三棵树A的年龄变成1岁,继续学习。这就是 GBDT 中的梯度提升,很简单。

它仍然是年龄预测。为简单起见,训练集中只有 A、B、C 和 D 4 人,他们的年龄分别为 14、16、24 和 26 岁。其中,A、B分别为高一、高三学生;C和D是应届毕业生和工作两年的员工。如果使用传统的回归决策树进行训练,会得到如下图1所示的结果:

现在我们使用 GBDT 来执行此操作。因为数据太少,我们将叶子节点的数量限制为两个,即每棵树只有一个分支,只学习两棵树。我们将得到如下图 2 所示的结果:

第一个树枝与图1相同。由于A和B的年龄比较相似,C和D的年龄比较相似,所以分成两组,以每组的平均年龄作为预测值。此时计算残差(残差的意思是:A的预测值+A的残差=A的实际值),所以A的残差是16-15=1(注意A的预测值是指对前面所有树的累加和,这里前面只有一棵树,所以直接是15。如果还有树,需要累加作为A)的预测值。那么,A、B、C、D的残差分别为-1、1、-1、1。然后我们用残差替换A、B、C、D的原始值,去第二棵树学习。如果我们的预测值等于它们的残差,我们只需要将第二棵树的结论累加到第一棵树上。真实年龄可以从一棵树上得到。这里的数据显然是我能做到的,第二棵树只有两个值1和-1,直接分裂成两个节点。此时,每个人的残差为0,即每个人都得到了真实的预测值。

也就是说,A、B、C、D的预测值现在和真实年龄是一致的。完美的!:

A:14岁高中生,购物少,常问高年级问题;预测年龄 A = 15 – 1 = 14

B:16岁高中生;购物少,小辈经常问的问题;预测年龄 B = 15 + 1 = 16

C:24岁应届毕业生;购物很多,经常向老年人提问;预测年龄 C = 25 – 1 = 24

D:26岁,工作满两年;经常逛街,经常被老师和小弟问问题;预测年龄 D = 25 + 1 = 26

那么梯度在哪里表现出来呢?其实回想一下,当你回到第一棵树的末尾时,不管此时的代价函数是什么,是均方误差还是均方误差,只要它以误差为衡量标准,残差向量(-1, 1, -1, 1)是它的全局最优方向,即Gradient。

4.2 GBDT常用的损失函数有哪些?

绝对值损失 |y – f(x)|

4.3 GBDT是如何进行分类的?

4.4 为什么GBDT不适合使用高维稀疏特征?

4.5 GBDT算法的优缺点?

5. XGBoost

5.1 XGBoost 简要说明

一共构建了T棵树。构建第t棵树时,需要对前t-1棵树的训练样本分类回归产生的残差进行拟合。每次拟合生成一棵新树时,遍历所有可能的树,选择目标函数成本(cost)最小的树。但是,这在实践中很难实现,因此需要对步骤进行分解。构建新树时,一次只生成一个分支,并选择最佳分支。如果生成分支的目标函数值(成本)比不生成时大或者改善效果不明显,则放弃生成分支(相当于truncate,截断)。可以并行处理,效率高于GBDT,并且效果优于GBDT。XGBoost 是一种提升算法。

5.2 XGBoost 和 GBDT 有什么区别?

XGB 增加了常规项目,普通 GBDT 没有。防止过拟合

5.3 为什么XGBoost可以并行训练?

5.4 XGBoost 如何防止过拟合?

5.5 为什么 XGBoost 这么快?

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论