共计 2876 个字符,预计需要花费 8 分钟才能阅读完成。
原文链接: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]] 示意咱们要剔除一个变量。
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)
最受欢迎的见解
1.R 语言多元 Logistic 逻辑回归 利用案例
2. 面板平滑转移回归 (PSTR) 剖析案例实现
3.matlab 中的偏最小二乘回归(PLSR)和主成分回归(PCR)
4.R 语言泊松 Poisson 回归模型剖析案例
5.R 语言回归中的 Hosmer-Lemeshow 拟合优度测验
6.r 语言中对 LASSO 回归,Ridge 岭回归和 Elastic Net 模型实现
7. 在 R 语言中实现 Logistic 逻辑回归
8.python 用线性回归预测股票价格
9.R 语言如何在生存剖析与 Cox 回归中计算 IDI,NRI 指标