全文下载链接: http://tecdat.cn/?p=22482

最近咱们被客户要求撰写对于加强回归树的钻研报告,包含一些图形和统计输入。

在本文中,在R中拟合BRT(晋升回归树)模型。咱们的指标是使BRT(晋升回归树)模型利用于生态学数据,并解释后果。

引言

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

 示例数据

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

> head(train)

拟合模型

拟合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棵树的初始模型。

下面咱们应用了穿插验证的。咱们定义了:数据;预测变量;因变量--示意物种数据的列号;树的复杂度--咱们首先尝试树的复杂度为5;学习率--咱们尝试用0. 01。

运行一个如上所述的模型,将输入进度报告,做出图形。首先,你能看到的货色。这个模型是用默认的10倍穿插验证法建设的。彩色实心曲线是预测偏差变动的平均值,点状曲线是1个标准误差(即在穿插验证上测量的后果)。红线示意平均值的最小值,绿线示意生成该值的树的数量。模型对象中返回的最终模型是在残缺的数据集上建设的,应用的是最优的树数量。

length(fitted)

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

咱们在每个穿插验证中计算每个统计量(在确定的最佳树数下,依据所有穿插验证中预测偏差的均匀变动进行计算),而后在此出现这些基于穿插验证的统计量的平均值和标准误差。weights - 拟合模型时应用的权重(默认状况下,每个观测值为 "1",即权重相等)。trees. fitted - 阶段性拟合过程中每一步所拟合的树的数量记录;training.loss.values - 训练数据上偏差的阶段性变动 ,cv.values - 阶段性过程中每一步所计算的预测偏差的CV估计值的平均值。
你能够用摘要函数查看变量的重要性

> summary(lr )

抉择设置

以上是对设置的初步猜想,应用了Elith等人(2008)中探讨的教训法令。它做出的模型只有650棵树,所以咱们的下一步将是缩小lr。例如,尝试lr = 0.005,争取超过1000棵树。

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

为了摸索其余设置是否体现更好,你能够将数据分成训练集和测试集,或者应用穿插验证后果,扭转tc、lr和bagging,而后比拟后果。

简化模型

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

对于咱们的运行,预计要剔除的最佳变量数是1;能够应用红色垂直线批示的数字。当初,建设一个剔除1个预测变量的模型,应用[[1]]示意咱们要剔除一个变量。


点击题目查阅往期内容

R语言样条曲线、决策树、Adaboost、梯度晋升(GBM)算法进行回归、分类和动静可视化

左右滑动查看更多

01

02

03

04

step(  x= pred.list[[1]], )

当初这曾经造成了一个新的模型,然而思考到咱们并不特地想要一个更简略的模型(因为在这种规模的数据集中,蕴含的变量奉献很小是能够承受的),咱们不会持续应用它。

绘制模型的函数和拟合值

由咱们的函数创立的BRT模型的拟合函数能够用plot来绘制。

>  plot( lr005 )

这个函数的附加参数容许对图进行平滑示意。依据环境空间内观测值的散布,拟合函数能够给出与每个预测因子无关的拟合值散布。

 fits( lr005)

每张图上方的数值示意与每个非因素预测因子无关的拟合值的加权平均值。

绘制交互作用

该代码评估数据中成对的交互作用的水平。

 inter( lr005)

返回一个列表。前两个局部是对后果的总结,首先是5个最重要的交互作用的排名列表,其次是所有交互作用的表格。

f$intera

你能够像这样绘制交互作用。

persp( lr005,  z.range=c(0,0.6)

对新数据进行预测

如果您想对一组地点进行预测(而不是对整个地图进行预测),个别的程序是建设一个数据框架,行代表地点,列代表您模型中的变量。咱们用于预测站点的数据集在一个名为test的文件中。"列须要转换为一个因子变量,其程度与建模数据中的程度统一。应用predict对BRT模型中的站点进行预测,预测后果在一个名为preds的向量中。

preds <- predict(lr005,test,deviance(obs=test, pred=preds)

> d <- cbind(obs, preds)> e <- evaluate(p=pres, a=abs)

gbm中预测的一个有用的特点是能够预测不同数量的树。

tree<- seq(100, 5000, by=100)predict( n.trees=tree, "response")

下面的代码会造成一个矩阵,每一列都是模型对tree.list中该元素所指定的树数量的预测,例如,第5列的预测是针对tree.list[5]=500棵树。当初来计算所有这些后果的偏差,而后绘制。

> for (i in 1:50) { calc.devi(obs,+ pred[,i])+ }> plot(tree.list,deviance

空间预测

这里咱们展现了如何对整张地图进行预测。

> plot(grids)

咱们用一个常量值("因子 "类)创立一个data.frame,并将其传递给预测函数。

> p <- predict(grids, lr005,> plot(p)


本文摘选 R语言生态学建模:加强回归树(BRT)预测短鳍鳗生存散布和影响因素 ,点击“浏览原文”获取全文残缺材料。

点击题目查阅往期内容

Python决策树、随机森林、奢侈贝叶斯、KNN(K-最近街坊)分类剖析银行拉新流动开掘潜在贷款客户
R语言逻辑回归(Logistic Regression)、回归决策树、随机森林信用卡守约剖析信贷数据集R语言基于Bagging分类的逻辑回归(Logistic Regression)、决策树、森林剖析心脏病患者
R语言样条曲线、决策树、Adaboost、梯度晋升(GBM)算法进行回归、分类和动静可视化
R语言用主成分PCA、 逻辑回归、决策树、随机森林剖析心脏病数据并高维可视化
matlab应用分位数随机森林(QRF)回归树检测异样值
R语言用逻辑回归、决策树和随机森林对信贷数据集进行分类预测
R语言中应用线性模型、回归决策树主动组合特色因子程度
R语言中自编基尼系数的CART回归决策树的实现
Python对商店数据进行lstm和xgboost销售量工夫序列建模预测剖析
R语言基于树的办法:决策树,随机森林,Bagging,加强树
R语言实现偏最小二乘回归法 partial least squares (PLS)回归
R语言多项式回归拟合非线性关系
R语言逻辑回归(Logistic回归)模型分类预测病人冠心病危险
R语言用部分加权回归(Lowess)对logistic逻辑回归诊断和残差剖析
R语言混合效应逻辑回归(mixed effects logistic)模型剖析肺癌数据