向数据框添加虚构级别

Adding fictitious levels to a dataframe

我正在尝试使用 caret 包中的 confusionMatrix() 函数。 但是,这需要测试数据集和从训练数据集得出的预测 具有完全相同的水平。因为数据问题,可能会出现需要添加虚构的情况 测试数据集中出现次数为 0 的级别。有什么办法吗?

可复制的玩具示例如下:

test <- data.frame (Feature=c("1200","1000","1000"), Class = c("a","b","b"))
predicted_model <- c("a","a","b","c")

显然,

confusionMatrix(predicted_model,test$Class)

产生错误信息,

 Error in confusionMatrix.default(predicted_model, test$Class) : 
  the data cannot have more levels than the reference

objective是加一个虚构的Classc来测试,这样通过运行

 table(test$Class)

我们得到:

a b c
1 2 0

你会怎么做?谢谢

test <- data.frame (Feature=c("1200","1000","1000"), Class = c("a","b","b"))
test$Class <- factor(test$Class, levels = c("a", "b", "c"))
test
#   Feature Class
# 1    1200     a
# 2    1000     b
# 3    1000     b  


table(test$Class)
# a b c 
# 1 2 0