从随机森林建部分依赖情节提取数据绘制

问题描述 投票:1回答:1

我已经建立了从我随机森林的预测偏依赖情节。我想,以提取用于构建情节和在ggplot重建它的数据(特别是置信区间和预测值)。如何访问用于制作的情节和置信区间的数据?

下面有类似一些代码与一个包提供的数据集挖掘。

library(randomForest)
library(rfUtilities)
data(airquality)
airquality <- na.omit(airquality)
rf.ozone <- randomForest(y=airquality[,"Ozone"], 
airquality[,2:ncol(airquality)])
rf.partial.ci(m=rf.ozone, x=airquality, yname="Ozone", xname="Temp", lci = 
.025, uci=.975)
partial_P_data  =rf.partial.ci(m=rf.ozone, x=airquality, yname="Ozone", 
xname="Temp", lci = .025, uci=.975) # original attempt to locate data

下面有什么默认打印看起来likeenter image description here

r random-forest confidence-interval
1个回答
1
投票

这是我在看包的源代码后,找到了解决办法。它是用来制造阴谋的功能的修改。

rf.data.ci <- function(m, x, yname, xname, lci=0.25, uci=0.75, delta=FALSE) {
if(!any(class(m) %in% c("randomForest","list"))) stop("m is not a 
randomForest object")
if(m$type != "regression") stop("classification is not supported")
conf.int <-(uci-lci)*100
temp <- sort(x[, xname])
y.hat.mean <- vector()
y.hat.lb <- vector()
y.hat.ub <- vector()
y <- stats::predict(m, x)
for (i in 1:length(temp)){
x[, xname] <- temp[i]
y.hat <- stats::predict(m, x)
if (delta == TRUE){ y.hat <- y.hat - y }
y.hat.mean[i] <- stats::weighted.mean(y.hat)
y.hat.lb[i] <- stats::quantile(y.hat, lci)
y.hat.ub[i] <- stats::quantile(y.hat, uci)
}
m.ci <- as.data.frame(cbind(temp, y.hat.mean, y.hat.lb, y.hat.ub))
}# creates data_set CI and predictions for partial dependcy plots, based on 
rfutilities

有可能在这个功能还是留下了一些不必要的垃圾,但它会重现用于制作图中的数据。

© www.soinside.com 2019 - 2024. All rights reserved.