是否有现成的函数可以从R中的xgboost模型获取部分依赖图?我看到使用mlr
包的示例,但似乎需要一个mlr
-特定的包装类。我不太清楚是否有一种方法将xgboost
模型转换为该类。
我一直在开发一个名为pdp
的R包,用于构建局部依赖图--https://github.com/bgreenwell/pdp。我已经成功地将其与XGBoost模型结合使用,但仍处于试验阶段。目前,手稿文件夹中正在编写一份指南/手册,可能会有所帮助。
这似乎可以解决问题,而无需转换为mlr
:https://github.com/FeiYeYe/xgboost/blob/master/R-package/R/plot.xgb.Booster.R
indices_bucket <- which(data[, index] >= pred_var_x[i-1] & data[, index] < pred_var_x[i])
。它获取观察值并对每个观察值进行预测:preds_bucket <- xgboost::predict(object, data[indices_bucket, , drop = FALSE], missing = NA, ntreelimit = ntrees)
,然后获取预测值的中位数:pred_var_y[i - 1] <- median(preds_bucket, na.rm = TRUE)
。 - Anarcho-Chossidindices_bucket
告诉我们感兴趣的预测器 (data[, index]
) 落在哪个桶中的行。这并不是所有的行。然后当调用 predict
时,它仅适用于那些行,而不是所有行。 - Vinh Nguyendata
上没有任何子集调用 predict
。对于感兴趣的预测器(索引),您实际上必须为每一行传递该预测器的每个可能值。这是针对大型数据集进行计算密集型操作的时候。 - Vinh Nguyen
mlr
管道可能是值得的。在使用mlr生成偏差图的教程中有很好的解释。您只需要将“classif.ksvm”替换为“classif.xgboost”,并使用mlr::makeClassifTask()
从数据生成任务即可。 - jakob-r