n レベルの因子変数y
があり、予測と実際の結果の両方が利用可能であるとします。混同行列を作成するにはどうすればよいですか?
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 のカウント数
等