gpt4 book ai didi

r - 使用 LIME 预测 R 中的 logit 模型?

转载 作者:行者123 更新时间:2023-12-05 06:31:18 25 4
gpt4 key购买 nike

所以我正在尝试使用 LIME 来理解 R 中 logit 模型的预测。我知道我“不需要”这样做,但我正在尝试说明它对一个模型的作用,人们可以简单地将其理解为演示文稿的起点。

但我无法正常工作。我确信这是由于 model.predict 方面的原因,但我的几个解决方案都没有奏效。

基本上这是我想做的:

model.logit <- glm(formula = formula, data = build.dat, family = binomial(link = "logit"))


train.x <- build.dat[ , all.vars(formula[[3]])]
test.x <- reject.dat[1:100, all.vars(formula[[3]])]

explainer <- lime(train.x, as_classifier(model.logit ), n_bins = 20, quantile_bins = TRUE)

explain.me <- lime::explain(test.x[2 , ], explainer, n_labels = 1, n_features = 8, n_permutations = 5000,
feature_select = "forward_selection", type = "response" )

现在我得到了错误

Error in match.arg(type) :'arg' should be one of “link”, “response”, “terms”

但是在“lime”代码中移动我的“type =”response””并不能解决这个问题。

而且我已经尝试创建一个函数“predict_model.glm”,我认为这可能会纠正这个问题,因为我认为在使用 randomForest 并让它工作时会发生什么:

predict_model.glm <- function(x, newdata, type = "response" ) {
res <- as.data.frame(c(predict(x, newdata = newdata, type = type), 1-predict(x, newdata = newdata, type = type)))

}

但这似乎只会增加错误。

我确信这是因为我错过了“石灰”方面正在寻找的东西(因此我无法使用“predict_model.glm”功能纠正这个问题),但我似乎无法在任何地方找到澄清。

任何帮助都会很棒,谢谢!

最佳答案

您必须在 predict_model.glm 中转换预测的输出。作为第一步,我建议打印 type 和调用 predict 结果的第一行。根据传入的类型,对 glm 的调用和返回的结果将有所不同 - ?predict_model 暗示:对于“原始”,它是单个 res,对于“概率”,它是概率(或者对于真正的线性模型:数值结果)。

总的来说,据我(希望)了解你的情况,一个类似于那个的功能可能会让你向前迈出一步:

predict_model.glm <- function(x, newdata, type, ...) { 
print(type)
res <- predict(x, newdata);
print(res[1])
data.frame(Response = res)
}

关于r - 使用 LIME 预测 R 中的 logit 模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51843277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com