微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用带有映射功能的嵌套 GBM 的 PDP

如何解决使用带有映射功能的嵌套 GBM 的 PDP

我有一个嵌套的 GBM,我想提取部分依赖,尝试使用以下查询

library(rsample)      # data splitting 
library(gbm)          # basic implementation
library(xgboost)      # a faster implementation of gbm
library(caret)        # an aggregator package for performing many machine learning models
library(h2o)          # a java-based platform
library(pdp)          # model visualization

    basic_gbm <- function(data) {
  mymodel <- gbm(formula = mpg  ~ .,distribution = "gaussian",data = data,n.minobsinnode = 1,bag.fraction = 1
      )
  return(mymodel)
  
}

blah_model <- mtcars %>%
  group_by() %>%
  nest() %>%
  mutate(model = map(data,basic_gbm))

blah_summary <- mtcars %>%
  group_by() %>%
  nest() %>%
  mutate(model = map(data,basic_gbm)) %>%
  mutate(summary = map(model,summary)) %>%
  mutate(all_data = pmap(list(data,summary),.f =left_join,by = character())) %>%
  select(cols=c(all_data)) %>% 
  unnest(cols = c(cols)) %>%
  ungroup()

blah_model %>%
  left_join(blah_summary,by = character()) %>%
  mutate(pred = map(model,partial,pred.var = var,n.trees = model$n.trees,train = data)) -- this does not work

这确实有效,并且是我想要的每个 var 的嵌套 df:

coeffs <- blah_model$model[[1]] %>%
    partial(pred.var = 'disp',n.trees = blah_model$model[[1]]$n.trees,train = blah_model$data[[1]])

然而,它说它没有在训练数据中找到变量——我传递的数据是训练数据。地图中的变量来自汇总函数 - 这些是预测变量。

我举了一个更好的例子

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。