机器学习之集成学习(二)

1.随机森林(RF)

RF是对bagging的进化版,首先都是有放回的进行采样,获得n个训练集从而训练n个弱分类器,但是RF在随机选取的训练集的基础上对于特征的选择也是随机的,随机的选取一部分的特征进行弱分类器的构建,同时在划分建树的过程中也是从这些随机选取的部分特征中选择最优的特征。(使用的为同质个体学习器树模型,对于分类问题的集成策略为投票表决法,对于回归问题的集成策略为平均法)

2.Adaboost

Adaboost是先为训练数据赋予相等的一个权重,然后基于训练数据训练出一个弱分类器,随后计算出该分类器的错误率(错误分类的样本/所有样本的数目),再结合错误率对每个样本的权重进行更新,使得分错的样本其权重变大,同时还会结合错误率为每个分类器赋予不同的权重值。(使用的为同质个体学习器树模型,对于分类问题的集成策略为加权表决法,对于回归问题的集成策略为采用的是对加权的弱学习器取权重中位数对应的弱学习器作为强学习器的方法)

3.GBDT

首先需要明确一点,GBDT中的树都是回归树,为什么?因为该算法由多棵决策树组成,所有树的结论累加起来做最终答案。回归树用于预测实数值,只有实数值其加减才是有意义的,若用分类树,类别的相加毫无意义。

对于建树过程可以参考:https://blog.csdn.net/zpalyq110/article/details/79527653     https://blog.csdn.net/qq_26598445/article/details/80853873

GBDT属于一种加法模型,通过前向分布算法进行求解。

对于回归问题损失函数一般用平方差,它的优点是实现简单便于理解,但是它的缺点也很突出,对于异常值的点会因为平方而得到放大,使得模型的鲁棒性变差。通过建树的过程可以发现,第二棵树是对第一颗树的残差进行拟合,但是这里有一点需要明确,因为案例中所给的损失函数是平方损失函数,因此对它求导之后恰巧和残差的计算方法相同,所以说GBDT并不是说不断的对残差进行拟合,而是对负梯度进行拟合,那里的残差应该是理解为负梯度,上面也分析了平方损失函数的缺点,所以可以把损失函数换成别的损失函数(回归问题常用的还有绝对值损失函数和huber损失函数),一定要明确GBDT是不断对负梯度进行拟合,只是损失函数为平方损失函数时梯度算法恰巧和残差相同,换用其它损失函数负梯度不一定和残差相等,这时候可以称为伪残差。跟普通的梯度下降比,这里的参数是一个模型,梯度也是通过学习到的一个模型,相当于模型的梯度下降。

对于分类问题,GBDT的分类算法从思想上和GBDT的回归算法没有区别,但是由于样本输出不是连续的值,而是离散的类别,导致我们无法直接从输出类别去拟合类别输出的误差。

为了解决这个问题,主要有两个方法,一个是用指数损失函数,此时GBDT退化为Adaboost算法。另一种方法是用类似于逻辑回归的对数似然损失函数的方法。也就是说,我们用的是类别的预测概率值和真实概率值的差来拟合损失。

这个损失函数并不是像Logistic回归的损失函数那样是通过极大似然推导出来的,而是设计出来的。

4.XGBoost

对于XGBoost讲解最好的文章:https://blog.csdn.net/qq_22238533/article/details/79477547

通过一步步分析推导来理解

原文地址:https://www.cnblogs.com/dyl222/p/11093653.html

时间: 2024-10-31 23:22:32

机器学习之集成学习(二)的相关文章

机器学习(十三) 集成学习和随机森林(上)

一.什么是集成学习 二.Soft Voting Classifier 更合理的投票,应该有的权值 三.Bagging 和 Pasting 四.oob (Out-of-Bag) 和关于Bagging的更多讨论 原文地址:https://www.cnblogs.com/zhangtaotqy/p/9581237.html

机器学习算法--集成学习

1. 个体和集成 集成学习通过构建并结合多个"个体学习器"来完成学习任务.个体学习器通常由一个现有的学习算法从训练数据产生,若集成中只包含同种类型的个体学习器,称为同质集成:若包含不同类型的个体学习器,为异质集成.同质集成中的个体学习器也成为"基学习器". 如何产生并结合"好而不同"的个体学习器,恰是集成学习研究的核心. 根据个体学习器的生成方式,目前的集成学习方法大致分为两大类: (1)个体学习器间存在强依赖关系,必须串行生成的序列化方法,代表

机器学习之集成学习(一)

详细参考:https://www.cnblogs.com/pinard/p/6131423.html 首先明确集成学习它本身不是一个单独的机器学习算法,而是通过构建并结合多个机器学习器来完成学习任务. 集成学习有两个主要的问题需要解决,第一是如何得到若干个个体学习器,第二是如何选择一种结合策略,将这些个体学习器集合成一个强学习器.对于个体学习器第一种就是所有的个体学习器都是一个种类的,或者说是同质的.比如都是决策树个体学习器,或者都是神经网络个体学习器.第二种是所有的个体学习器不全是一个种类的,

机器学习之集成学习和随机森林

一.集成学习 集成学习就是合并多个分类器的预测.一般会在一个项目快结束的时候使用集成算法,一旦建立了一些好的分类器,就可以使用集成把它们合并成一个更好的分类器.著名的集成方法:投票分类.bogging.pasting.boosting.stacking.和一些其它算法. 1.1 投票分类(少数服从多数) 令人惊奇的是这种投票分类器得出的结果经常会比集成中最好的一个分类器结果更好.事实上,即使每一个分类器都是一个弱学习器(意味着它们也就比瞎猜好点),集成后仍然是一个强学习器(高准确率),只要有足够

机器学习之集成学习

1. 概念梳理: AdaBoost: 运行过程:训练数据中的每一个样本,并赋一个权重,这些权重值构成向量D,已开始这些权重值一样. 第一次训练完,得到一个弱分类器,计算该分类器的错误率,然后调整每个样本的权重值,对同一个训练数据进行第二次训练得到第二个分类器.(第一次分对的样本权重减小,分错的权重提高.)并且AdaBoost为每个分类器都分配了一个权重值alpha. 这样,样本权重D和alpha不断训练和调整,知道错误率为0或者分类器的数目达到要求为止. bagging:从原始数据集选择S次后得

机器学习(十三) 集成学习和随机森林(下)

五.随机森林和 Extra-Trees 六.Ada Boosting 和 Gradient Boosting 七.Stacking 八.学习scikit-learn文档, 官方学习文档: http://scikit-learn.org http://scikit-learn.org/stable/user_guide.html 今年,Kaggle刚刚上线了Kaggle Learn模块,使用Kaggle的数据,来一点点进行机器学习实战.可以参考:https://www.kaggle.com/lea

集成学习

本篇博客主要是对周志华"机器学习"中集成学习这一章的摘抄,总结,以及自己使用过程中的一点经验. 1.集成学习的基本概念.条件及意义 集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务,有时也被称为多分类器系统(multi-classifier system).基于委员会学习(committee-base learning)等. 弱学习器:泛化性能略优于随机猜测的学习器:例如在二分类问题上精度略高于50%的分类器. 基学习器:集成中只包含同种类型的个体学

大白话5分钟带你走进人工智能-第二十八节集成学习之随机森林概念介绍(1)

                                                      第二十八节集成学习之随机森林概念介绍(1) 从本系列开始,我们讲解一个新的算法系列集成学习.集成学习其实是怎么样去应用决策树解决一些问题. 在机器学习领域集成学习是一种非常简单直接的提升分类器回归器预测效果的一种思路.决策树有一个困境,当层数太深的时候会有过拟合问题,当我不想过拟合,就通过预剪枝给它砍掉一部分深度,此时损失又容易太大了,导致在训练集上预测的又不怎么准.所以对于决策树很难去找

Python机器学习:7.1 集成学习

集成学习背后的思想是将不同的分类器进行组合得到一个元分类器,这个元分类器相对于单个分类器拥有更好的泛化性能.比如,假设我们从10位专家那里分别得到了对于某个事件的预测结果,集成学习能够对这10个预测结果进行组合,得到一个更准确的预测结果. 后面我们会学到,有不同的方法来创建集成模型,这一节我们先解决一个基本的问题:为什么要用集成学习?她为什么就比单个模型效果要好呢? 本书是为初学者打造的,所以集成学习这里我们也只关注最基本的集成方法:投票法(majority voting).投票法意味着我们在得