假设我有一个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 的情况,这个问题已经得到解答。见
我试过的
这是我走了多远
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
ETC