集成学习之GBDT、XGBOOST、RF

2024-08-31 11:38
文章标签 学习 集成 xgboost rf gbdt

本文主要是介绍集成学习之GBDT、XGBOOST、RF,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

GBDT&&XGBOOST

都属于GBM(GradientBoosting Machine)方法,传统GBDT以CART(分类回归树)作为基分类器,利用损失函数的负梯度方向在当前模型的值作为残差的近似值,可以说在RF的基础上又有进一步提升,能灵活的处理各种类型的数据,在相对较小的调参时间下,预测的准确度较高。

XGBOOST基学习器除了树,还支持线性分类器;XGBOOST在代价函数中加入了正则项,用于控制模型的复杂度,防止模型过拟合,当正则项系数为0时与传统的GBDT目标函数相同;XGBOOST支持并行计算(特征排序为block结构,可以运行在MPI和YARN上,自动调用CPU多线程进行并行计算),适合处理大数据;支持列抽样,防止过拟合,减少计算;XGBOOST有shrinkage(缩减)策略,相当于学习速率;XGBOOST用到了二阶导,GBDT只用到一阶导(联想梯度下降和牛顿法);XGBOOST增加了缺失值处理方案,自动学习分裂方向,GBDT的求解不断寻找分割点,将样本集进行分割,分配到分裂开的子节点上,选择依据是减少Loss,用于加速和减小内存消耗XGBOOS可以通过求函数极值点(求导)的方式获得最优解析解,GBDT用梯度下降法迭代求解XGBOOST实现利用了分块、预取、压缩、多线程协作的思想。


GBDT模型的参数:n_estimators:最大弱学习器的个数;learning_rate:弱学习器的权重缩减系数,步长;subsample:不放回子采样,(0,1];init:初始化时候的弱学习器;loss:GBDT模型的损失函数,分类有对数似然损失函数和指数损失函数两种选择,回归有均方差ls,绝对损失lad,huber损失,分位数损失等;alpha:做回归时才有的分位数值。max_features:划分时最大特征数;max_depth:决策树最大深度(10-100常用);min_samples_split:内部节点再划分所需最小样本数;min_samples_leaf:叶子节点最少样本数;min_weight_fraction_leaf:叶子节点最小的样本权重和;max_leaf_nides:最大叶子节点数;min_impurity_split:节点划分最小不纯度(默认1e-7)。

XGBOOST模型的参数:通用参数booster: gbtree和gblinear;silent:0/1,默认为0;nthread:默认为最大可能的线程数。

Booster参数:eta学习率,类似于learningrate,默认0.3;min_child_weight最小叶子节点样本权重和,用于避免过拟合,默认为1;max_depth:决策树的最大深度,用于避免过拟合,默认为6;max_leaf_nodes:树上最大的节点或叶子的数目;gamma:节点分裂所需最小损失函数下降值,默认为0;max_delta_step:每棵树权重改变的最大步长,默认为0;subsample:随机采样的比例,默认值为1;colsample_bytree:随机采样列数的占比,默认为1;colsample_bylevel:树的每一级分裂,列数采样的比例,默认为1;lambda:L2正则化项系数,默认为1;scale_pos_weight:样本类别不均衡时设置为正值可以加快算法的收敛,默认值为1。

学习目标参数:objective:损失函数类型,有binary二分类(logistic),multi多分类(softmax),默认linear;eval_metric:评价指标,有MSE,MAE,RMSE,ERROR,AUC等;seed:随机数的种子,可以复现随机数据的结果,默认为0。


RF

集成学习根据基学习器的生成方式,可分为两大类:即基学习器之间存在强依赖关系,必须串行生成的序列化方法;基学习器之间不存在强依赖关系,可同时生成的并行化方法,前者的代表是Boosting,后者的代表是Bagging和RF。

RF:Random Forest是Bagging的扩展变体,以决策树为基学习器,在决策树的训练过程中引入了随机特征选择,可概括为四部分:随机选择样本、随机选择特征(从样本集的特征集合中随机选择部分特征)、构建决策树、随机森林投票。RF每棵决策树都最大可能的进行生长而不剪枝,在对预测输出进行结合时,RF通常对分类问题使用简单投票法,回归问题使用简单平均法。RF和Bagging的对比:RF的起始性能较差,随着学习器数目增多,随机森林通常会收敛到更低的泛化误差,使用随机性选择的特征,训练效率高。噪声较大时容易产生过拟合

这篇关于集成学习之GBDT、XGBOOST、RF的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1123797

相关文章

SpringBoot集成WebService(wsdl)实践

《SpringBoot集成WebService(wsdl)实践》文章介绍了SpringBoot项目中通过缓存IWebService接口实现类的泛型入参类型,减少反射调用提升性能的实现方案,包含依赖配置... 目录pom.XML创建入口ApplicationContextUtils.JavaJacksonUt

springboot集成easypoi导出word换行处理过程

《springboot集成easypoi导出word换行处理过程》SpringBoot集成Easypoi导出Word时,换行符n失效显示为空格,解决方法包括生成段落或替换模板中n为回车,同时需确... 目录项目场景问题描述解决方案第一种:生成段落的方式第二种:替换模板的情况,换行符替换成回车总结项目场景s

SpringBoot集成redisson实现延时队列教程

《SpringBoot集成redisson实现延时队列教程》文章介绍了使用Redisson实现延迟队列的完整步骤,包括依赖导入、Redis配置、工具类封装、业务枚举定义、执行器实现、Bean创建、消费... 目录1、先给项目导入Redisson依赖2、配置redis3、创建 RedissonConfig 配

SpringBoot集成XXL-JOB实现任务管理全流程

《SpringBoot集成XXL-JOB实现任务管理全流程》XXL-JOB是一款轻量级分布式任务调度平台,功能丰富、界面简洁、易于扩展,本文介绍如何通过SpringBoot项目,使用RestTempl... 目录一、前言二、项目结构简述三、Maven 依赖四、Controller 代码详解五、Service

springboot2.1.3 hystrix集成及hystrix-dashboard监控详解

《springboot2.1.3hystrix集成及hystrix-dashboard监控详解》Hystrix是Netflix开源的微服务容错工具,通过线程池隔离和熔断机制防止服务崩溃,支持降级、监... 目录Hystrix是Netflix开源技术www.chinasem.cn栈中的又一员猛将Hystrix熔

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

MyBatis-Plus 与 Spring Boot 集成原理实战示例

《MyBatis-Plus与SpringBoot集成原理实战示例》MyBatis-Plus通过自动配置与核心组件集成SpringBoot实现零配置,提供分页、逻辑删除等插件化功能,增强MyBa... 目录 一、MyBATis-Plus 简介 二、集成方式(Spring Boot)1. 引入依赖 三、核心机制

SpringBoot集成P6Spy的实现示例

《SpringBoot集成P6Spy的实现示例》本文主要介绍了SpringBoot集成P6Spy的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录本节目标P6Spy简介抛出问题集成P6Spy1. SpringBoot三板斧之加入依赖2. 修改

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

springboot项目中集成shiro+jwt完整实例代码

《springboot项目中集成shiro+jwt完整实例代码》本文详细介绍如何在项目中集成Shiro和JWT,实现用户登录校验、token携带及接口权限管理,涉及自定义Realm、ModularRe... 目录简介目的需要的jar集成过程1.配置shiro2.创建自定义Realm2.1 LoginReal