导图社区 集成学习
包含bagging与boosting两大类算法,介绍详细,描述全面,希望对感兴趣的小伙伴有所帮助!
这是一篇关于MYSQL-进阶篇(一)的思维导图,包含存储引擎、索引、SQL优化等内容。希望对你有所帮助!
这是一篇关于MYSQL-基础篇(二)的思维导图,包含约束、 多表查询、窗口函数、事务等。有需要的朋友赶紧收藏吧!
这是一篇关于MYSQL-基础篇(一)的思维导图,MySQL是一个流行的关系型数据库管理系统(RDBMS),使用SQL(结构化查询语言)作为其主要的查询语言。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
集成学习(第一部分)
简介
思想;构建并组合多个弱学习器来完成学习任务
图解:
集成学习需要关注的两个问题
单个弱学习器如何训练?
方法一:改变训练数据集的权重
方法二:改变训练数据集的概率分布
如何将各个弱学习器组合成强学习器?
方法一:并行投票法
方法二:串行加权法
集成学习的两大类
Bagging:基学习器间不存在强依赖关系,可同时生成的并行化方法
代表算法
随机森林
算法思路:采用决策树作为弱学习器,并将弱学习器按照Bagging的方式进行集成
随机森林如何随机?(通过改变数据集的概率分布)
方法一:Forest-RI
每次构建训练集都需要从数据集D中随机抽取k个样本,M个特征中随机抽取n个特征
方法二:Forest-RC
每次构建训练集都需要从数据集D的M个特征中随机抽取n个特征做线性加权,形成包含F个新特征的数据集。(权重系数为[-1,1]的随机数)
算法步骤
第一步:选择弱学习器(决策树、KNN、逻辑回归等等)
第二步:根据随机性构造训练集
Forest-RI
Forest-RC
第三步:训练当前的弱学习器
第四步:根据投票机制判断强学习器是否合格
投票机制:所有弱学习器结果的众数
优缺点
优点
训练时树与树之间是相互独立的,训练速度快
泛化误差使用的是无偏估计,模型泛化能力强
自身具有袋装数据集,无需单独换分交叉验证集
面对不平衡、缺失数据集,模型准确率依旧较高
缺点
随机森林在某些噪音较大的分类或回归问题上会过拟合
随机森林参数较多,难以调参
优化
针对参数较多,难以调参问题
先对参数进行熟悉,再根据网格搜索进行调参
参数对模型的影响图解:
Boosting:基学习器间存在强依赖关系,必须串行生成的序列化方法
AdaBoost
算法思路:每轮训练一个弱学习器,前一轮的训练样本权重变化后作为后一轮弱学习器的训练数据,最后将各个弱学习器通过线性加权的方式组合成集成模型
第二步:初始化或更新样本权重
初始化样本权重,即各个样本权重相同
更新样本权重,即降低分类正确的样本权重,提升分类错误的样本权重
第四步:计算当前弱学习器的权重
第一步:计算当前弱学习器的误差率(分类错误的样本数量占所有样本数量的比例)
第二步:根据误差率计算当前弱学习器的权重
第五步:将当前弱学习器加入线性模型并判断是否合格
线性模型
如何判断?
强学习器的准确率
强学习器中弱学习器的数量
AdaBoost具有很高的精度
AdaBoost可将不同的分类算法作为弱分类器,不拘泥于决策树
参数训练比较耗时
数据不平衡容易导致精度遗失
弱分类器的数目不易确定
针对训练耗时:采用前向分布算法加快参数优化
针对若分类器数目不易确定:采用交叉验证辅助确定
GBDT(梯度提升树)
提升树
回归提升树:将多个弱回归器简单相加
分类提升树:将多个弱分类器简单相加
梯度提升树:统一分类、回归提升树
算法思路:采用CART回归树作为弱学习器,根据弱学习器的损失构造新一轮的弱学习器,最终将所有弱学习器线性相加。
第二步:通过计算当前弱学习器的损失函数的负梯度(拟合残差)以及数据集D的特征与样本的随机抽样来构造训练集(随机性)
第四步:将当前弱学习器加入线性模型并判断是否合格
适合低维数据且能处理非线性数据
采用一些健壮的损失函数,对异常值的鲁棒性非常强
由于兼具Bagging与Boosting的优势,理论层次上高于随机森林与adaboost
由于弱学习器之间存在依赖关系,难以并行训练数据
数据维度较高时会加大算法的计算复杂度
由于弱学习器为回归器,因此无法直接用于分类
通过自采样的SGBT来达到部分并行
XGboost:GBDT的高效实现,新增正则项与损失函数的二次泰勒展开拟合
LightGBM:XGBoost的高效实现,将连续的浮点特征离散成k个离散值,并构造宽度为k的Histogram,加快计算速度、节约空间资源