【视频】Boosting集成学习原理与R语言提升回归树BRT预测短鳍鳗分布生态学实例-2

简介: 【视频】Boosting集成学习原理与R语言提升回归树BRT预测短鳍鳗分布生态学实例

【视频】Boosting集成学习原理与R语言提升回归树BRT预测短鳍鳗分布生态学实例-1

https://developer.aliyun.com/article/1489361


梯度提升

Gradient Boosting 也是基于顺序集成学习。这里的基础学习器是按顺序生成的,这样当前的基础学习器总是比前一个更有效,即整个模型随着每次迭代而顺序改进。

这种类型的提升的不同之处在于错误分类结果的权重不会增加,相反,梯度提升方法试图通过添加一个添加弱学习者的新模型来优化先前学习者的损失函数,以减少损失函数。

这里的主要思想是克服先前学习者预测中的错误。这种类型的提升具有三个主要组成部分:

1.需要改进的损失函数。

2.用于计算预测和形成强学习器的弱学习器。

3.将规范化损失函数的加法模型。

与 AdaBoost 一样,梯度提升也可用于分类和回归问题。

image.png

XGBoost

XGBoost 是 Gradient Boosting 方法的高级版本,字面意思是 eXtreme Gradient Boosting。陈天启开发的 XGBoost 属于分布式机器学习社区(DMLC)的范畴。

该算法的主要目的是提高计算速度和效率。Gradient Descent Boosting 算法以较慢的速度计算输出,因为它们按顺序分析数据集,因此 XGBoost 用于提升或极大提升模型的性能。

XGBoost 旨在专注于计算速度和模型效率。XGBoost 提供的主要功能有:

并行创建决策树。

实施用于评估大型复杂模型的分布式计算方法。

使用核外计算分析庞大的数据集。

实施缓存优化以充分利用资源。

image.png

R语言生态学建模:提升回归树(BRT)预测短鳍鳗生存分布和影响因素

这是一个简短的教程,在R中拟合BRT(提升回归树)模型。我们的目标是使BRT(提升回归树)模型应用于生态学数据,并解释结果。

本教程的目的是帮助你学习如何在R中开发一个BRT模型。

示例数据

有两套短鳍鳗的记录数据。一个用于模型训练(建立),一个用于模型测试(评估)。在下面的例子中,我们加载的是训练数据。存在(1)和不存在(0)被记录在第2列。环境变量在第3至14列。

> head(train)

image.png

拟合模型

拟合gbm模型,你需要决定使用什么设置,本文为你提供经验法则使用的信息。这些数据有1000个地点,包括202条短鳍鳗的存在记录。你可以假设:1. 有足够的数据来建立具有合理复杂性的相互作用模型  2. 大约0.01的lr学习率可能是一个合理的初始点。下面的例子显示如何确定最佳树数(nt)。

step(data= train,  x = 3:13,
 family = "bernoulli",  comp = 5,
 lr = 0.01, bag.fr = 0.5)

对提升回归树模型进行交叉验证优化。

使用1000个观测值和11个预测因子,创建10个50棵树的初始模型。

image.png

image.png

上面我们使用了交叉验证的。我们定义了:数据;预测变量;因变量--表示物种数据的列号;树的复杂度--我们首先尝试树的复杂度为5;学习率--我们尝试用0. 01。

运行一个如上所述的模型,将输出进度报告,做出图形。首先,你能看到的东西。这个模型是用默认的10倍交叉验证法建立的。黑色实心曲线是预测偏差变化的平均值,点状曲线是1个标准误差(即在交叉验证上测量的结果)。红线表示平均值的最小值,绿线表示生成该值的树的数量。模型对象中返回的最终模型是在完整的数据集上建立的,使用的是最优的树数量。

image.png

length(fitted)

返回的结果包含 fitted - 来自最终树的拟合值,fitted.vars - 拟合值的方差, residuals - 拟合值的残差,contribution - 变量的相对重要性。statistics - 相关的评估统计量。cv.statistics 这些是最合适的评估统计数据。

我们在每个交叉验证中计算每个统计量(在确定的最佳树数下,根据所有交叉验证中预测偏差的平均变化进行计算),然后在此呈现这些基于交叉验证的统计量的平均值和标准误差。weights - 拟合模型时使用的权重(默认情况下,每个观测值为 "1",即权重相等)。trees. fitted - 阶段性拟合过程中每一步所拟合的树的数量记录;training.loss.values - 训练数据上偏差的阶段性变化 ,cv.values - 阶段性过程中每一步所计算的预测偏差的CV估计值的平均值。

你可以用摘要函数查看变量的重要性

image.png

> summary(lr )

image.png

选择设置

以上是对设置的初步猜测,使用了Elith等人(2008)中讨论的经验法则。它做出的模型只有650棵树,所以我们的下一步将是减少lr。例如,尝试lr = 0.005,争取超过1000棵树。

step(data=train,  x = 3:13,  
  tree.co  = 5,
+ lr = 0.005

image.png

为了探索其他设置是否表现更好,你可以将数据分成训练集和测试集,或者使用交叉验证结果,改变tc、lr和bagging,然后比较结果。

简化模型

简化会建立了许多模型,所以它可能很慢。在其中,我们评估了简化lr为0.005的模型的价值,但只测试剔除最多5个变量("n.drop "参数;默认是自动规则一直持续到预测偏差的平均变化超过gbm.step中计算的原始标准误差)。

image.png

对于我们的运行,估计要剔除的最佳变量数是1;可以使用红色垂直线指示的数字。现在,建立一个剔除1个预测变量的模型,使用[[1]]表示我们要剔除一个变量。


【视频】Boosting集成学习原理与R语言提升回归树BRT预测短鳍鳗分布生态学实例-3

https://developer.aliyun.com/article/1489363

相关文章
|
4天前
|
存储 算法 Windows
课程视频|R语言bnlearn包:贝叶斯网络的构造及参数学习的原理和实例(下)
课程视频|R语言bnlearn包:贝叶斯网络的构造及参数学习的原理和实例
11 0
|
4天前
|
算法 数据可视化 数据挖掘
课程视频|R语言bnlearn包:贝叶斯网络的构造及参数学习的原理和实例(上)
课程视频|R语言bnlearn包:贝叶斯网络的构造及参数学习的原理和实例
14 0
|
3天前
|
机器学习/深度学习 算法 前端开发
【Python机器学习专栏】集成学习中的Bagging与Boosting
【4月更文挑战第30天】本文介绍了集成学习中的两种主要策略:Bagging和Boosting。Bagging通过自助采样构建多个基学习器并以投票或平均法集成,降低模型方差,增强稳定性。在Python中可使用`BaggingClassifier`实现。而Boosting是串行学习,不断调整基学习器权重以优化拟合,适合弱学习器。Python中可利用`AdaBoostClassifier`等实现。示例代码展示了如何在实践中运用这两种方法。
|
3天前
|
机器学习/深度学习 算法 前端开发
【Python机器学习专栏】集成学习算法的原理与应用
【4月更文挑战第30天】集成学习通过组合多个基学习器提升预测准确性,广泛应用于分类、回归等问题。主要步骤包括生成基学习器、训练和结合预测结果。算法类型有Bagging(如随机森林)、Boosting(如AdaBoost)和Stacking。Python中可使用scikit-learn实现,如示例代码展示的随机森林分类。集成学习能降低模型方差,缓解过拟合,提高预测性能。
|
3天前
|
分布式计算 DataWorks 关系型数据库
DataWorks操作报错合集之DataWorks集成实例绑定到同一个vpc下面,也添加了RDS的IP白名单报错:数据源配置有误,请检查,该怎么处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
16 0
|
3天前
|
机器学习/深度学习 算法 数据挖掘
【视频】决策树模型原理和R语言预测心脏病实例|数据分享(下)
【视频】决策树模型原理和R语言预测心脏病实例|数据分享
12 0
|
3天前
|
机器学习/深度学习 算法 搜索推荐
【视频】决策树模型原理和R语言预测心脏病实例|数据分享(上)
【视频】决策树模型原理和R语言预测心脏病实例|数据分享
12 1
|
4天前
|
数据可视化 数据挖掘 Python
【视频】因子分析简介及R语言应用实例:对地区经济研究分析重庆市经济指标
【视频】因子分析简介及R语言应用实例:对地区经济研究分析重庆市经济指标
18 2
|
4天前
|
前端开发 数据挖掘 数据建模
课程视频|R语言bnlearn包:贝叶斯网络的构造及参数学习的原理和实例(中)
课程视频|R语言bnlearn包:贝叶斯网络的构造及参数学习的原理和实例
14 0
|
4天前
|
资源调度 安全
R语言nlme、nlmer、lme4用(非)线性混合模型non-linear mixed model分析藻类数据实例(下)
R语言nlme、nlmer、lme4用(非)线性混合模型non-linear mixed model分析藻类数据实例