mlr3:一个完美融合生信与机器学习的R包
点击蓝字 关注我们
小伙伴们好啊,最近大家好像都关注起了机器学习结合生存分析的方向,已经有好几个小伙伴都向大海哥咨询,问道:除了lasso和cox这些,难道没有更好的算法可以结合生存分析了吗?答案一定是有的,这不,大海哥今天要个大家介绍一个非常好用、完美融合生信的R包——mlr3。那么首先我们先来了解一下,它到底好在哪里?
mlr3 是一个用于机器学习的R包,它提供了强大的工具和框架,用于数据预处理、模型选择、超参数优化、模型评估等任务。mlr3 包的目标是提供一种可扩展、灵活且高效的方式来进行机器学习工作,使用户能够更轻松地开发、比较和部署各种机器学习方法
介绍一下其主要优点:
统一的接口:
mlr3提供了统一的接口,使你可以使用相同的语法来处理各种任务,例如数据预处理、特征选择、模型选择等。
可扩展性
mlr3设计为可扩展的,允许用户轻松添加自定义学习器、评估指标、预处理方法等。
并行计算
mlr3支持并行计算,可以在多个核心或集群上并行运行多个任务,提高计算效率。
模块化
mlr3 的模块化设计使得您可以根据需要仅使用所需的功能,避免不必要的加载和计算。
流水线:mlr3允许您创建复杂的机器学习流水线,将数据预处理、特征选择、模型训练等步骤结合在一起。
最重要的是,支持多种模型
mlr3 支持众多常见的机器学习算法,包括分类、回归、聚类、以及我们关注的生存分析等。
那么大海哥今天直入主题,直接结合生存分析来做一次案例教学!大家要认真听讲哦!
首先我们要下载所需的R包,注意,安装mlr3系列的包需要电脑安装gcc以及gcc+环境,同时使用R版本支持最新的Rtool工具,大家自己提前准备一下!
devtools::install_github(“mlr3”)
devtools::install_github(“mlr3proba”)
devtools::install_github(“mlr3extralearners”)
devtools::install_github(“mlr3verse”)
#主要就是这四个
library(mlr3)
library(mlr3proba)
library(mlr3extralearners)
library(mlr3verse)
library(survival)
#导入我们的数据吧
ml<-read.csv(“ML_data.csv”,header=T,row.names=1,check.names=F)
看一下数据。
#然后关键的来了,新建一个预测任务
sur<-Surv(ml$time,ml$status)
task = as_task_surv(ml,time = "time",event="status",target=sur)
看看这是个啥?
然后我们就可以使用多种模型来构建了
具体有哪些呢?可以看一看
#大海哥第一次看到的时候,也是不相信的,但是是真的,而且下面的surv开头的模型都是可以直接对生存函数进行预测的!
#我们来试一下!
#先划分一个数据集,用一下mlr3的方法划分看看
split = partition(task)
#一行代码搞定训练和预测!
xg_p =lrn("surv.xgboost")$train(task, split$train)$predict(task, split$test)
#也可以自己设置参数
#类似于这种lasso<-lrn("classif.glmnet", alpha = 1,predict_type = "prob")
#指定你想要的参数,也可以通过交叉验证来确定合适的参数,mlr3中都有对应的交叉验证算法的哦!
#好了已经结束了!很多小伙伴肯定不相信,那大海哥展示给你看
#看一下C-index指数,一行搞定
xgboost_c1<-c(xgboost_c1,xg_p$score(msrs("surv.cindex")))
这就是最后的结果指标c1指数,不同模型对应的指标也不相同,我们看看有哪些?
高达92种指标。
点击“阅读原文”进入网址