R语言 “错误:矩阵必须具有相等的维数”,尽管看起来维数相等

bbmckpt7  于 2023-01-28  发布在  其他
关注(0)|答案(2)|浏览(251)
pred <- predict(fit, x, type="response", s=cv$lambda.min)

confusion_matrix <- confusionMatrix(data = pred, reference = testXsp)

混淆矩阵中的错误。矩阵(数据=预测值,参考=测试Xsp):矩阵的维数必须相等

dim(pred)
[1] 751864 1

dim(testXsp)
[1] 751864 1

dim(testXsp) == dim(pred)
[1] TRUE TRUE

尺寸似乎是相同的,那么为什么我得到这个错误消息?

gcuhipw9

gcuhipw91#

confusionMatrix如果data是矩阵,则它必须是平方。

> caret:::confusionMatrix.matrix
function (data, positive = NULL, prevalence = NULL, mode = "sens_spec", 
    ...) 
{
    if (length(unique(dim(data))) != 1) {
        stop("matrix must have equal dimensions")
    }
    classTable <- as.table(data, ...)
    confusionMatrix(classTable, positive, prevalence = prevalence, 
        mode = mode)
}
<bytecode: 0x126452f88>
<environment: namespace:caret>

注意matrix类的方法甚至没有reference参数,它是使用reference的默认方法,也许您应该查看confusionMatrix的帮助页面。

ruarlubt

ruarlubt2#

一种可能是预测矩阵中包含一个或多个NA值。请尝试使用以下命令:

na.omit(pred)

然后,重新运行上面的代码。如果这不起作用,请发布您正在使用的包来适应您的模型。这将允许更详细的解决方案!
最美好的祝愿-马特

相关问题