Извлечение графических данных из графика частичной зависимости, построенного из случайного леса - PullRequest
0 голосов
/ 04 февраля 2019

Я построил график частичной зависимости для предиктора из моего случайного леса.Я хотел бы извлечь данные (в частности, доверительные интервалы и прогнозируемые значения), используемые для построения графика и перестроить его в 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

Вот как выглядит график по умолчанию enter image description here

1 Ответ

0 голосов
/ 06 февраля 2019

Это решение я нашел после просмотра исходного кода пакетов.Это модификация функции, используемой для построения графика.

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

Вероятно, в этой функции все еще остается ненужный мусор, но он будет воспроизводить данные, использованные для построения графика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...