gpt4 book ai didi

r - glmnet R 包中 cv.glmnet 的 "Error in drop(y %*% rep(1, nc))"错误

转载 作者:行者123 更新时间:2023-12-04 17:15:30 24 4
gpt4 key购买 nike

我有一个函数可以返回 cv.glmnet 模型的 auc 值,虽然不是大多数时候,但它经常在执行 cv.glmnet 函数时返回以下错误:

丢弃错误(y %% rep(1, nc)): 在为函数“drop”选择方法时评估参数“x”时出错:y %% rep(1, nc) 中的错误:参数不一致

我已经阅读了一些关于该错误的信息,我能找到的唯一建议是使用 data.matrix() 而不是 as.matrix()。我的函数如下(其中“form”是带有我想要的变量的公式,“dt”是数据框):

auc_cvnet <- function(form, dt, standard = F){
vars = all.vars(form)
depM = dt[[vars[1]]]
indM = data.matrix(dt[vars[-1]])
model = cv.glmnet(indM, depM, family = "binomial", nfolds=3, type.measure="auc", standardize = standard)

pred = predict(model, indM, type = "response")
tmp = prediction(pred, depM)
auc.tmp = performance(tmp, "auc")
return(as.numeric(auc.tmp@y.values))
}

我在另一个函数中实现了这个函数,该函数迭代了几个变量的组合,以查看哪些变量组合运行良好(这是一种非常强力的方法)。无论如何,当错误被抛出时,我打印出迭代的公式,并只用那个公式调用函数,它工作得很好。所以不幸的是,我无法确定哪些调用会引发错误,否则我会尝试提供更多信息。数据框大约有 30 行,当我在具有 110 行的较大数据集上运行代码时没有错误。两个数据集中也没有 NA。

有没有人见过这个或有任何想法?谢谢!

最佳答案

信不信由你,我今天确实遇到了同样的错误。因为我不知道你的数据集,所以我不能确定它是什么,但对我来说,我作为 y 变量(你的 depM)传递的数据是所有 True 值的列。如果我的 y 变量包含 True 和 False 值,cv.glmnet 只会返回有效模型。

我希望我能解释为什么 cv.glmnet 需要 True 和 False,但我对函数本身缺乏了解(事实上,我只是在调整给我的代码)。我只是想我会发布这个,以防它给你一些故障排除帮助。祝你好运!

关于r - glmnet R 包中 cv.glmnet 的 "Error in drop(y %*% rep(1, nc))"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24811598/

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