imd 统计教程 · 预测模型与机器学习
← 教程首页 返回本模块

mlr3∶最强R机器学习预测模型工具-学习笔记1

聂志强实战医学统计2023-12-16 01:24:34广东


曾几何时,小编回忆自己博士论文中全部机器学习(ML)算法都是基于零零散散的R包,手工编码而成,那个心酸和艰难。不同的机器学习算法,在R语言中要使用不同的软件包(如caret、e1071等各立山头),这就导致代码不通,每个包都要去看help文档。当时羡慕的是python的sklearn库等等、kaggle竞赛算法云云。过去来看R在ML领域显得没那么系统化,甚至略微有些薄弱。尽管R机器学习算法包在posit网站提供了手册,见https://posit.co/resources/cheatsheets,但是非官方又不全。

一、ML工具现状

1.1 mlr3 vs. caret

目前R中ML旧攻略主要都是caret包(上次更新于23年3月,包含238种模型和众多函数,https://cran.r-project.org/web/packages/caret/vignettes/caret.html,官网https://topepo.github.io/caret/)。mlr3框架比较新,这里呈现一些18年的mlr于caret比较的资料https://www.r-bloggers.com/2018/11/mlr-vs-caret/。

文章指出,二者在预处理、learner、resampling、可视化不分伯仲;mlr优秀在task、measure、特有benchmarking、tuning、自带数据、运行速度、框架化caret无特别优秀之处。时间来到2024年,mlr3比mlr更加是质的飞跃,将是新时代的ML框架王者。

1.2 mlr3 vs. tidymodels

相比mlr3底层data.table,ditymodels底层是tibble,运行速度很慢。虽然tidymodels特别容易执行简单的机器学习任务,但mlr3更倾向于高级机器学习,当然mlr3生态中mlr3verse也行相对简化框架。mlr3是面向对象R6的编程逻辑,初始学习会不太适应,但是认真读懂看懂程序后,会发现逻辑都是为了批量标准化复杂的操作。

1.3 其他凌乱R包

散乱的R包包括glmnet(lasso分析)、rms(nomogram列线图、rcs曲线)、e1071+ kernlab  (svm分析)、nnet(多分类、ANN)、rpart(决策树)、gbm(GBRT)、Mass(LDA判别)、xgboost、CatBoost(离散x的xgboost)、h2o包(多线程深度学习)等等。需要逐渐从零散的R包过度到mlr3集成框架中来。

1.4 强烈推荐mlr3

mlr3作为新一代ML框架,是在mlr失败的基础上重新改写的,十分强大,ML理念也是最新的,包括benchmark、tuning等等。而且,他是个完整的生态环境,将来也拥有更宽广的适配场景。小编作为一个摸爬滚打15年统计的老鸟,摸着mlr3book的刹那,就有一种发现宝藏的冲动。嗯,老鸟的眼光应该不会差。mlr3就是一个很强的新事物,需要忘记自己曾经的优势,慢慢认可、模仿、学习。

二、学习笔记

mlr3是19年末开发,旨在提供比其他机器学习框架更多的灵活性,同时仍然提供使用高级功能的简单方法。本文系列笔记均基于书记https://mlr3book.mlr-org.com/。不得不说,老外是真的牛b,不得不服别人永远是原创的神!

以下为小编精心阅读和R代码笔记的ppt,福利见文末。阅读进度较慢,内容较多,目前只放前3章节,每张ppt都是小编一一核对和校稿。


感谢国内公众号,诸如“灵活胖子的科研进步之路、医学和生信笔记等先行者无私翻译的奉献。

本公众号将于2024年1月初建学术交流群3,届时开放二维码,敬请关注。

本文精美PDF获取,链接有效期为1个月截止日期2024.1.16,获取方式请在公众号窗口回复 mlr3笔记1