簡體   English   中英

“錯誤:矩陣必須具有相等的維度”盡管看似相等的維度

[英]"Error: Matrix must have equal dimensions" despite seemingly equal dimensions

pred <- predict(fit, x, type="response", s=cv$lambda.min)

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

confusionMatrix.matrix(data = pred, reference = testXsp) 錯誤:matrix must have equal dimensions

dim(pred)
[1] 751864 1

dim(testXsp)
[1] 751864 1

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

尺寸似乎相同,那為什么我會收到此錯誤消息?

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>

請注意,class matrix的方法甚至不采用reference參數。 這是使用reference的默認方法。 也許您應該查看confusionMatrix的幫助頁面?

這里的一種可能性是您的預測矩陣中包含一個或多個 NA 值。 嘗試使用以下命令:

    na.omit(pred)

之后,重新運行上面的代碼。 如果這不起作用,請發布您正在使用的 package 以適應您的 model。這將提供更詳細的解決方案!

最良好的祝願,-馬特

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM