R创建2*2混淆矩阵的通用解决方案
我的问题与使用R创建2*2混淆矩阵的通用解决方案,r,confusion-matrix,R,Confusion Matrix,我的问题与使用table()函数在R中生成混淆矩阵有关。我正在寻找不使用软件包(如插入符号)的解决方案 假设这些是我们在二元分类问题中的预测和标签: predictions <- c(0.61, 0.36, 0.43, 0.14, 0.38, 0.24, 0.97, 0.89, 0.78, 0.86, 0.15, 0.52, 0.74, 0.24) labels <- c(1, 1, 1, 0, 0, 1, 1, 1, 0
table()
函数在R中生成混淆矩阵有关。我正在寻找不使用软件包(如插入符号)的解决方案
假设这些是我们在二元分类问题中的预测
和标签
:
predictions <- c(0.61, 0.36, 0.43, 0.14, 0.38, 0.24, 0.97, 0.89, 0.78, 0.86, 0.15, 0.52, 0.74, 0.24)
labels <- c(1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0)
我需要一种方法,能够为0和1之间的所有可能阈值(决策边界)一致地生成2*2混淆矩阵,因为我将此作为优化中的输入。有没有办法调整
表
函数,使其始终返回2*2矩阵?您可以将阈值预测作为因子变量来实现这一点:
(conf_matrix <- as.matrix(table(factor(predictions>0.05, levels=c(F, T)), labels)))
# labels
# 0 1
# FALSE 0 0
# TRUE 6 8
(形态矩阵0.05,等级=c(F,T)),标签)
#标签
# 0 1
#假0 0
#真实6 8
是的,谢谢!。我尝试使用table()
参数,如dnn
,exclude
。但是相反,我应该建立一个新的因子来解释这个不存在的类。
conf_matrix <- as.matrix(table(predictions>0.05,labels))
conf_matrix
labels
0 1
TRUE 6 8
(conf_matrix <- as.matrix(table(factor(predictions>0.05, levels=c(F, T)), labels)))
# labels
# 0 1
# FALSE 0 0
# TRUE 6 8