我正在try 制作一个混淆矩阵,用以下数据显示面部表情的正确/不正确猜测:
> dput(conf_mat)
structure(list(Target = c("Angry", "Angry", "Angry", "Angry",
"Angry", "Angry", "Angry", "Disgusted", "Disgusted", "Disgusted",
"Disgusted", "Disgusted", "Disgusted", "Disgusted", "Fearful",
"Fearful", "Fearful", "Fearful", "Fearful", "Fearful", "Fearful",
"Happy", "Happy", "Happy", "Happy", "Happy", "Happy", "Happy",
"Neutral", "Neutral", "Neutral", "Neutral", "Neutral", "Neutral",
"Neutral", "Sad", "Sad", "Sad", "Sad", "Sad", "Sad", "Sad", "Surprised",
"Surprised", "Surprised", "Surprised", "Surprised", "Surprised",
"Surprised"), Prediction = c("Angry", "Disgusted", "Fearful",
"Happy", "Neutral", "Sad", "Surprised", "Angry", "Disgusted",
"Fearful", "Happy", "Neutral", "Sad", "Surprised", "Angry", "Disgusted",
"Fearful", "Happy", "Neutral", "Sad", "Surprised", "Angry", "Disgusted",
"Fearful", "Happy", "Neutral", "Sad", "Surprised", "Angry", "Disgusted",
"Fearful", "Happy", "Neutral", "Sad", "Surprised", "Angry", "Disgusted",
"Fearful", "Happy", "Neutral", "Sad", "Surprised", "Angry", "Disgusted",
"Fearful", "Happy", "Neutral", "Sad", "Surprised"), N = c(456L,
31L, 14L, 1L, 11L, 46L, 1L, 92L, 454L, 3L, 2L, 1L, 4L, 4L, 2L,
40L, 382L, 1L, 1L, 10L, 124L, 0L, 2L, 0L, 552L, 3L, 2L, 1L, 3L,
2L, 2L, 7L, 528L, 16L, 2L, 8L, 30L, 17L, 4L, 19L, 481L, 1L, 0L,
4L, 20L, 3L, 2L, 4L, 527L)), row.names = c(NA, -49L), class = c("tbl_df",
"tbl", "data.frame"))
根据在线教程,我能够获得:
library(cvms)
plot_confusion_matrix(conf_mat,
class_order=c("Surprised", "Disgusted", "Fearful", "Angry", "Sad", "Happy", "Neutral"),
add_counts=FALSE,
add_row_percentages=FALSE,
add_col_percentages=FALSE
)
上图显示了每个单元在整个数据集中的出现频率.我希望它显示每个预测在各个列中的普遍性如何,以便每列的总和为1.如何做到这一点(不切换到Python)?这是我正在寻找的示例(来自其他人的作品;请注意,轴是翻转的,因此在下面的照片中,行和等于1,而不是列):