簡體   English   中英

confusionMatrix.matrix(data = df_name, reference = numeric_vector_name, positive = "increase") 錯誤:矩陣必須具有相等的維度

[英]Error in confusionMatrix.matrix(data = df_name, reference = numeric_vector_name, positive = "increase" ) : matrix must have equal dimensions

我已經連續 3 次在這篇文章的標題中出現錯誤,當我將此錯誤消息輸入 Google 或 Bing 時,在 Stack Overflow 上出現的前幾個類似問題都沒有適合我的特定情況的答案。 以下代碼行來自的腳本位於我的GitHub 存儲庫中,該分析項目位於名為“AIT 622 大數據分析項目腳本”的 R 腳本文件中。

### Classification Forecasting Model #5: Multivariate Adaptive Regression Splines
library(earth)
library(plotmo)
library(plotrix)
marsGrid = expand.grid(.degree = 1:2, .nprune = 2:38)
set.seed(100)
marsModelR1 = train(x = data2014, y = pr_var2014, method = "earth", 
                    preProc = c("center", "scale"), tuneGrid = marsGrid)

# compare the expected classifications in 2015 to the observed classifications in 2015
marsR1Pred = predict(marsModelR1, newdata = data2015)
> dim(marsR1Pred)
[1] 4120    1

我在此處添加以下內容以顯示我認為可能是錯誤消息/警告的來源。 > 長度(pr_var2014) 1 3808

marsR1_PR = postResample(pred = marsR1Pred, obs = pr_var2014)
> marsR1_PR
       RMSE    Rsquared         MAE 
         NA 1.24489e-06          NA

marsModelR1_CFM <- confusionMatrix(data = marsR1Pred, reference = pr_var2014,
                                   positive = "Increase")
> marsModelR1_CFM <- confusionMatrix(data = marsR1Pred, reference = pr_var2014,
+                                    positive = "Increase")
Error in confusionMatrix.matrix(data = marsR1Pred, reference = pr_var2014,  : 
  matrix must have equal dimensions

我已經嘗試了以下 2 次嘗試修復,兩者的結果相同

> marsModelR1_CFM <- confusionMatrix(data = marsR1Pred, 
+                                    reference = sample(pr_var2014, length(marsR1Pred)),
+                                    positive = "Increase")
Error in confusionMatrix.matrix(data = marsR1Pred, reference = sample(pr_var2014,  : 
  matrix must have equal dimensions

> length(pr_var2014)
[1] 3808
> length(marsR1Pred)
[1] 4120
> marsModelR1_CFM <- confusionMatrix(data = marsR1Pred, 
+                                    reference = sample(pr_var2014, 4120),
+                                    positive = "Increase")
Error in confusionMatrix.matrix(data = marsR1Pred, reference = sample(pr_var2014,  : 
  matrix must have equal dimensions

任何建議將不勝感激,此外,所有這些命令都在我的腳本的最后部分。 第 4 部分在底部。

確保您使用的是數據參數的因子,而不是matrix

# this will fail with similar error to yours
confusionMatrix(as.matrix(iris$Species), sample(iris$Species))
# Error in confusionMatrix.matrix(as.matrix(iris$Species), sample(iris$Species)) : 
#  matrix must have equal dimensions

# this will pass as I convert the variable to be a factor variable
confusionMatrix(as.factor(as.matrix(iris$Species)), sample(iris$Species))

對於你的情況:

marsModelR1_CFM <- confusionMatrix(data = as.factor(marsR1Pred), 
                                   reference = sample(as.factor(pr_var2014), 4120),
                                   positive = "Increase")

暫無
暫無

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

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