假设我有一个因素变量
这个问题针对n=2的情况已经得到了答案,请参见R: how to make a confusion matrix for a predictive model?。 我的尝试 这是我目前为止的进展。
y
,它有n个级别,我既有预测值又有实际结果。如何构建混淆矩阵?set.seed(12345)
y_actual = as.factor(sample(c('A','B', 'C', 'D', 'E'), 100, replace = TRUE))
set.seed(12346)
y_predict = as.factor(sample(c('A','B', 'C', 'D', 'E'), 100, replace = TRUE))
这个问题针对n=2的情况已经得到了答案,请参见R: how to make a confusion matrix for a predictive model?。 我的尝试 这是我目前为止的进展。
ones = data.frame(total = rep(1,100));
confusion = aggregate(ones, list(Prediction = predict, Reality = real), sum, a.action=0)
confusion
Prediction Reality total
1 A A 12
2 B A 5
3 C A 15
4 A B 15
5 B B 7
6 C B 8
7 A C 12
8 B C 16
9 C C 10
现在需要将其转化为矩阵形式。
背景
混淆矩阵的水平标签是“真实类别”,垂直标签是“预测类别”。矩阵元素仅仅是如下计数:
元素(1,1) = 真实类别为A且预测类别也为A的数量
元素(1,2) = 真实类别为A但预测类别为B的数量
等等
table(y_actual, y_predict)
? - A5C1D2H2I1M1N2O1R2T1