文件中的Cholmod错误'X和/或Y具有错误的尺寸'../MatrixOps/cholmod_sdmult.c,第90行

时间:2018-04-11 11:46:41

标签: r glmnet

它只是报道:

  

Cholmod错误'X和/或Y的维度错误'在文件../MatrixOps/cholmod_sdmult.c,第90行。

我不知道为什么。

    x.m <- data.matrix(train[,c(1:43)])
    x.m [is.na(x.m)] <- 0
    y.m <- train$NPL
    cv.m <-data.matrix(cv)
    set.seed(356)


    cvfit.m.lasso = cv.glmnet(x.m, y.m, 
                      family = "binomial", 
                      alpha = 1,
                      type.measure = "class")
    par(mfrow=c(1,2))
    plot(cvfit.m.lasso, main = "Lasso")
    coef(cvfit.m.lasso, s = "lambda.min")
    predTrain.M = predict(cvfit.m.lasso, newx=cv.m, type="class")
    table(cv$NPL, predTrain.M)

2 个答案:

答案 0 :(得分:0)

现在已为我修复。这是因为我忘了从测试数据中删除我的Target变量,这就是为什么我得到此错误。

答案 1 :(得分:0)

<块引用>

预测(cvFit, newx= x1[1:5], s="lambda.min")

cbind2(1, newx) %*% nbeta 中的错误: 文件 ../MatrixOps/cholmod_sdmult.c,第 90 行中的 Cholmod 错误“X 和/或 Y 的尺寸错误”

<块引用>

视图(x1) 预测(cvFit, newx= x1[1:5,], s="lambda.min")

也许是因为您的 newx 没有包含用于构建模型的所有预测变量。 我将我的代码 newx = x[1:5] 更改为 newx = x[1:5,],并且它起作用了。 试试看?