tidymodels支持校准曲线了
喜大普奔!
tidymodels
终于支持校准曲线了!千呼万唤始出来,几个月前,我还号召大家多去github提issue...
这不,校准曲线就来了!
安装
截止到2022.11.30日,只能安装开发版才有这个功能,cran
上的版本还没有这个功能。
remotes::install_github("tidymodels/probably")
使用
和yardstick
的用法一脉相承,如果你还不知道yardstick
以及tidymodels
系列的使用规范,请参考这篇入门教程:tidymodels用于机器学习的一些使用细节
我们使用这篇推文中的数据:tidymodels不能画校准曲线?。
具体过程就不再演示了,直接使用pred_rf
这个对象进行演示。
suppressMessages(library(tidymodels))
suppressMessages(library(probably))
load(file = "../../000预测模型/pred_rf.rdata")
这个结果就是tidymodels
中得到的标准结果,一切模型衡量指标都是通过这个结果算出来的,包括校准曲线。
结果长这样:
head(pred_rf)
## # A tibble: 6 × 4
## play_type .pred_pass .pred_run .pred_class
## <fct> <dbl> <dbl> <fct>
## 1 pass 0.312 0.688 run
## 2 pass 0.829 0.171 pass
## 3 pass 0.806 0.194 pass
## 4 pass 0.678 0.322 pass
## 5 run 0.184 0.816 run
## 6 run 0.544 0.456 pass
基于分箱的校准曲线
校准曲线是先对概率进行分箱,然后计算平均值得到的,如果你还不明白,请参考这篇推文:一文搞懂临床预测模型的评价!
基于分箱的原理画校准曲线,通过以下函数实现:
pred_rf %>%
cal_plot_breaks(play_type, .pred_pass)
plot of chunk unnamed-chunk-4
有几个参数可以调节:
pred_rf %>%
cal_plot_breaks(play_type, .pred_pass,
num_breaks = 5 , # 选几个点
include_rug=F, # 是否添加地毯线
include_ribbon = T, # 是否添加可信区间
conf_level = 0.95 # 可信区间范围
)
plot of chunk unnamed-chunk-5
基于窗口滑动的校准曲线
但是有时候样本量太少,不方便分箱,tidymodels
提供了一种窗口滑动的方式。
比如一共100个样本,第一次取第1个到第10个样本,然后计算得到一个预测值,第二次取第6个到第15个样本,计算得到一个预测值,第三次取第11个带第20个样本,以此类推,彼此之间是有重复的。
可通过cal_plot_windowed
函数实现这样的校准曲线:
pred_rf %>%
cal_plot_windowed(play_type, .pred_pass)
plot of chunk unnamed-chunk-6
其中step_size
参数控制每次增加多少:
# 每次增加2%
pred_rf %>%
cal_plot_windowed(play_type, .pred_pass, step_size = 0.02)
plot of chunk unnamed-chunk-7
所有这些图都是基于ggplot2
的,可以无缝衔接ggplot2
语法进行美化、修改。
对于分类模型的校准曲线终于有了!大家有需要的可以用起来了。
那么问题又来了,如果是做临床预测模型,可以用tidymodels
吗?我的回答是:不推荐,没必要!
相关文章
- 在 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 的