【问题标题】:R glmnet error binary logisticR glmnet错误二进制逻辑
【发布时间】:2011-10-27 15:28:12
【问题描述】:

我正在寻求一些帮助,以找出在我尝试拟合正则化逻辑回归时导致错误的原因(特别是使用 cv.glmnet 找到最佳 lambda 值)。

运行以下命令:

RegLR_CV<-cv.glmnet(x=train.sub.clean[,-c(431)],
                    y=as.factor(train.sub$finalAttrite),
                    family="binomial")

其中表 train.sub.clean 都是数字并且已删除所有零方差变量(使用 caret 包)。

此函数运行一段时间然后产生以下错误。谁能推荐我应该寻找的故障排除方法?它必须是我的数据集,因为包中的玩具示例运行良好。

错误:

as.matrix(cbind2(1, newx) %*% nbeta) 中的错误:评估错误 为函数“as.matrix”选择方法时的参数“x”:错误 在 t(.Call(Csparse_dense_crossprod, y, t(x))) 中:评估错误 为函数“t”选择方法时的参数“x”:错误: dup_mMatrix_as_dgeMatrix 的无效类“NA”

R: R 版本 2.13.0 (2011-04-13) 平台:x86_64-pc-mingw32/x64(64位)

glmnet: 1.7

【问题讨论】:

  • 您应该升级到当前版本 R,如果这不起作用,请发布 sessionInfo() 的结果和一些重现问题的数据。
  • 如果您自己将train.sub.clean[,-c(431)] 显式转换为矩阵会怎样?你能确认那里没有NAs 吗?此外,您正在对逻辑回归进行交叉验证。会不会是你的任何一个结果等级都极少?这使得其中一个子集不包含其中一个值是合理的。

标签: r


【解决方案1】:

当我开始尝试 glmnet 时,我遇到了同样的错误。当我:

1) 使用 model.matrix 将我所有的因子变量转换为虚拟变量

2) 确保所有内容都编码为数字 - 字符变量的存在导致我出现“错误:dup_mMatrix_as_dgeMatrix”的无效类“NA”。

3) 将我的数据框转换为预测变量和结果的两个矩阵,然后将它们提供给 glmnet。

希望对你有帮助

【讨论】:

    【解决方案2】:

    尝试做: cv.glmnet(x=as.matrix(train.sub.clean[,-c(431)]),...) 试试看

    【讨论】:

    • 但这就是答案。尝试需要在 cmets 中
    猜你喜欢
    • 2015-07-11
    • 1970-01-01
    • 2021-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    • 2013-10-10
    • 1970-01-01
    相关资源
    最近更新 更多