3d版混淆矩阵可视化
2023-03-07 09:12:34 时间
关于临床预测模型的基础知识,小编之前已经写过非常详细的教程,包括了临床预测模型的定义、常用评价方法、列线图、ROC曲线、IDI、NRI、校准曲线、决策曲线等。
全都是免费获取的代码和数据:R语言临床预测模型合集
以上合集包括了临床预测模型绝大多数的内容,内容肯定比得上一个几千块的培训班!用以上教程完成一篇SCI绝对不是问题!
混淆矩阵大家应该都不陌生,但是3d版的混淆矩阵你见过吗?
今天的3d版混淆矩阵来自一位粉丝求助,图形如下:
doi:10.1007/s12072-021-10188-5
千万不要被这个图难住了,它其实非常简单,你把它的z轴去掉,看看是不是就是普通的混淆矩阵?
这个3d版不过是增加了一个维度,用来表示人数而已。
我们通过R语言可以轻松实现这个图,当然,Excel也很简单!3d柱状图嘛
我们就用这篇推文中的混淆矩阵为例:ROC阳性结果还是阴性结果?
上次用到的数据如下:
psych::headTail(df1)
outcome ca125 pred
1 肿瘤 51.88 猜他不是肿瘤
2 肿瘤 82.46 猜他是肿瘤
3 肿瘤 113.67 猜他是肿瘤
4 肿瘤 63.49 猜他是肿瘤
... <NA> ... <NA>
27 非肿瘤 53.33 猜他不是肿瘤
28 非肿瘤 59.92 猜他不是肿瘤
29 非肿瘤 46.46 猜他不是肿瘤
30 非肿瘤 30.03 猜他不是肿瘤
这个结果变成混淆矩阵是下面这样的:
df1 %>% count(pred, outcome)
pred outcome n
1 猜他不是肿瘤 非肿瘤 15
2 猜他不是肿瘤 肿瘤 1
3 猜他是肿瘤 非肿瘤 5
4 猜他是肿瘤 肿瘤 9
2d混淆矩阵可视化
如果要可视化混淆矩阵,简单的2维非常简单,比如用ggplot2
即可:
library(tidyverse)
ggplot(df1, aes(pred, outcome))+
geom_tile(aes(fill=ca125))+
geom_label(data = df1 %>% count(pred, outcome), aes(pred,outcome,label=n),size=12)+
theme_minimal()+
theme(legend.position = "none")
想要修改更多细节,大家自己动手即可,非常简单!
3d版混淆矩阵可视化
也是很简单,使用barplot3d
这个包即可。
library(barplot3d)
注意这个包画图的顺序:从左到右,从前到后!
# 把混淆矩阵结果放到1个向量里
inputdata <- c(15,5,1,9)
# 定义4个颜色
mycolors <- c("#00468BB2", "#ED0000B2", "#42B540B2", "#0099B4B2")
barplot3d(rows = 2,cols = 2, z = inputdata, # 一共4个数,2行,2列
scalexy=8, # 让柱子胖一点
topcolors=mycolors, # 柱子顶部的颜色
sidecolors=mycolors, # 柱子的填充色
xlabels = c("pred.No","pred.Yes"),
ylabels = c("No","Yes"),
xsub = "Prediction",
ysub = "Outcome",
zsub = "Count"
)
出图如下:
这个图是3d的,画出来之后会单独弹出一个窗口,你可以随意旋转,找到自己喜欢的角度保存即可!
相关文章
- 在 Go 里用 CGO?这 7 个问题你要关注!
- 9款优秀的去中心化通讯软件 Matrix 的客户端
- 求职数据分析,项目经验该怎么写
- 在OKR中,我看到了数据驱动业务的未来
- 火山引擎云原生大数据在金融行业的实践
- OpenHarmony富设备移植指南(二)—从postmarketOS获取移植资源
- 《数据成熟度指数》报告:64%的企业领袖认为大多数员工“不懂数据”
- OpenHarmony 小型系统兼容性测试指南
- 肯睿中国(Cloudera):2023年企业数字战略三大趋势预测
- 适用于 Linux 的十大命令行游戏
- GNOME 截图工具的新旧截图方式
- System76 即将推出的 COSMIC 桌面正在酝酿大变化
- 2GB 内存 8GB 存储即可流畅运行,Windows 11 极致精简版系统 Tiny11 发布
- 迎接 ecode:一个即将推出的具有全新图形用户界面框架的现代、轻量级代码编辑器
- loongarch架构介绍(三)—地址翻译
- Go 语言怎么解决编译器错误“err is shadowed during return”?
- 敏捷:可能被开发人员遗忘的部分
- Denodo预测2023年数据管理和分析的未来
- 利用数据推动可持续发展
- 在 Vue3 中实现 React 原生 Hooks(useState、useEffect),深入理解 React Hooks 的