【发布时间】:2021-11-21 17:32:08
【问题描述】:
我想将函数 pdp::partial 映射到嵌套的 randomForest 模型。然后,我将使用输出通过 facet_wrap() 为每个组绘制 3d 部分依赖图。将函数映射到模型时,我收到一个错误,即无法在训练数据中找到预测变量 - 但是当我检查 tibble 时它们就在那里,所以我不知道该怎么做。
library(tidyverse)
library(pdp)
library(randomForest)
data(boston)
glimpse(boston)
#Make groups, nest data by groups, apply random forest model to nested data
boston %>%
mutate(grp=ifelse(age<80, "young", "old"))%>%
nest(data= -grp)%>%
mutate(fit = map(data, ~ randomForest(cmedv ~ ., data = boston, importance = TRUE)))%>%
{.->>GrpModels}
#Map pdp::partial to fitted models for two predictor variables
GrpModels%>%
mutate(p=map2(fit,data, ~pdp::partial(fit,train=data, pred.var=c("lstat", "rm"))))%>%
unnest(p)%>%{.->>checkpdp}
错误:
mutate()列p有问题。我p = map2(...)。 x lstat, 在训练数据中找不到 rm。
【问题讨论】:
标签: r tidyr random-forest purrr