前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >🤩 Mime1 | 终极机器学习算法大组合筛选你的最佳模型(一)(预后模型篇)

🤩 Mime1 | 终极机器学习算法大组合筛选你的最佳模型(一)(预后模型篇)

作者头像
生信漫卷
发布于 2024-07-12 08:08:36
发布于 2024-07-12 08:08:36
1.6K00
代码可运行
举报
运行总次数:0
代码可运行

写在前面

终于到了周六,这周手术做的有点多了。🫠

下周又是工作量满满的一周。🙃

今天讲一下机器学习的神包,Mime1,之所以写这个名字,是怕大家和Mime包混淆,影响安装。😂

用到的包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rm(list = ls())
# if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager")
# 
# depens<-c('GSEABase', 'GSVA', 'cancerclass', 'mixOmics', 'sparrow', 'sva' , 'ComplexHeatmap' )
# 
# for(i in 1:length(depens)){
#   depen<-depens[i]
#   if (!requireNamespace(depen, quietly = TRUE))  BiocManager::install(depen,update = FALSE)
# }
# 
# if (!requireNamespace("CoxBoost", quietly = TRUE))
#   devtools::install_github("binderh/CoxBoost")
# 
# if (!requireNamespace("fastAdaboost", quietly = TRUE))
#   devtools::install_github("souravc83/fastAdaboost")
# 
# if (!requireNamespace("Mime", quietly = TRUE))
#   devtools::install_github("l-magnificence/Mime")

library(Mime1)

示例数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
load("./Example.cohort.Rdata")
list_train_vali_Data[["Dataset1"]][1:5,1:5]

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
load("./genelist.Rdata")

genelist

创建预后模型并选择最优模型

来小试牛刀一下吧。😘

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
res <- Mime1::ML.Dev.Prog.Sig(train_data = list_train_vali_Data$Dataset1,
                     list_train_vali_Data = list_train_vali_Data,
                     unicox.filter.for.candi = T,
                     unicox_p_cutoff = 0.05,
                     candidate_genes = genelist,
                     mode = 'all', ## 'all', 'single', and 'double'
                     nodesize =5,
                     seed = 123 
                     )

可视化C-index。😘

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cindex_dis_all(res,
               validate_set = names(list_train_vali_Data)[-1],
               order = names(list_train_vali_Data),
               width = 0.35
               )

展示指定模型的C-index。🙊

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cindex_dis_select(res,
                  model="StepCox[forward] + plsRcox",
                  order= names(list_train_vali_Data))

根据特定模型计算的风险评分,绘制不同数据集中患者的生存曲线。💪

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
survplot <- vector("list",2) 
for (i in c(1:2)) {
  print(survplot[[i]]<-rs_sur(res, model_name = "StepCox[forward] + plsRcox",
                              dataset = names(list_train_vali_Data)[i],
                              #color=c("blue","green"),
                              median.line = "hv",
                              cutoff = 0.5,
                              conf.int = T,
                              xlab="Day",pval.coord=c(1000,0.9))
        )
}
aplot::plot_list(gglist=survplot,ncol=2)

计算模型的AUC

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
all.auc.1y <- cal_AUC_ml_res(res.by.ML.Dev.Prog.Sig = res,train_data = list_train_vali_Data[["Dataset1"]],
                            inputmatrix.list = list_train_vali_Data,mode = 'all',AUC_time = 1,
                            auc_cal_method="KM")
all.auc.3y <- cal_AUC_ml_res(res.by.ML.Dev.Prog.Sig = res,train_data = list_train_vali_Data[["Dataset1"]],
                            inputmatrix.list = list_train_vali_Data,mode = 'all',AUC_time = 3,
                            auc_cal_method="KM")
all.auc.5y <- cal_AUC_ml_res(res.by.ML.Dev.Prog.Sig = res,train_data = list_train_vali_Data[["Dataset1"]],
                            inputmatrix.list = list_train_vali_Data,mode = 'all',AUC_time = 5,
                            auc_cal_method="KM")

可视化AUC。😘

这里我们只展示一下1年的。😏

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
auc_dis_all(all.auc.1y,
            dataset = names(list_train_vali_Data),
            validate_set=names(list_train_vali_Data)[-1],
            order= names(list_train_vali_Data),
            width = 0.35,
            year=1)

绘制不同数据集中特定模型的ROC曲线。😘

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
roc_vis(all.auc.1y,
        model_name = "StepCox[forward] + plsRcox",
        dataset = names(list_train_vali_Data),
        order= names(list_train_vali_Data),
        anno_position=c(0.65,0.55),
        year=1)

绘制不同数据集中特定模型的135年的AUC。😘

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
auc_dis_select(list(all.auc.1y,all.auc.3y,all.auc.5y),
               model_name="StepCox[forward] + plsRcox",
               dataset = names(list_train_vali_Data),
               order= names(list_train_vali_Data),
               year=c(1,3,5))

单变量cox回归特定模型的meta分析

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
unicox.rs.res <- cal_unicox_ml_res(res.by.ML.Dev.Prog.Sig = res,
                                   optimal.model = "StepCox[forward] + plsRcox",
                                   type ='categorical' # 'categorical' or 'continuous'
                                   )

metamodel <- cal_unicox_meta_ml_res(input = unicox.rs.res)

meta_unicox_vis(metamodel,
                dataset = names(list_train_vali_Data))

与已知模型相比较

7.1 计算risk score

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
rs.glioma.lgg.gbm <- cal_RS_pre.prog.sig(use_your_own_collected_sig = F,
                                         type.sig = c('LGG','GBM','Glioma'),
                                        list_input_data = list_train_vali_Data)

可视化比较HR。😘

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
HR_com(rs.glioma.lgg.gbm,
       res,
       model_name="StepCox[forward] + plsRcox",
       dataset=names(list_train_vali_Data),
       type = "categorical")

7.2 计算C-index

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cc.glioma.lgg.gbm <- cal_cindex_pre.prog.sig(use_your_own_collected_sig = F,
                                             type.sig = c('Glioma','LGG','GBM'),
                                            list_input_data = list_train_vali_Data)

可视化比较C-index。🌟

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cindex_comp(cc.glioma.lgg.gbm,
            res,
            model_name="StepCox[forward] + plsRcox",
            dataset=names(list_train_vali_Data))

7.3 计算AUC

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
auc.glioma.lgg.gbm.1 <- cal_auc_pre.prog.sig(use_your_own_collected_sig = F,
                                            type.sig = c('Glioma','LGG','GBM'),
                                            list_input_data = list_train_vali_Data,AUC_time = 1,
                                            auc_cal_method = 'KM')

可视化比较AUC。😘

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
auc_comp(auc.glioma.lgg.gbm.1,
         all.auc.1y,
         model_name="StepCox[forward] + plsRcox",
         dataset=names(list_train_vali_Data))
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信漫卷 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
关于二叉树,你应该了解这些。(二叉树的理论基础)
推荐视频——关于二叉树,你该了解这些!| 二叉树理论基础一网打尽,二叉树的种类、二叉树的存储方式、二叉树节点定义、二叉树的遍历顺序_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili
半生瓜的blog
2023/05/12
1650
关于二叉树,你应该了解这些。(二叉树的理论基础)
二叉树:总结篇!(需要掌握的二叉树技能都在这里了)
不知不觉二叉树已经和我们度过了「三十三天」,代码随想录里已经发了「三十三篇二叉树的文章」,详细讲解了「30+二叉树经典题目」,一直坚持下来的录友们一定会二叉树有深刻理解了。
代码随想录
2020/10/30
8610
二叉树:总结篇!(需要掌握的二叉树技能都在这里了)
再也不用怕面试问二叉树了
二叉树是一种非常重要的数据结构。在算法题中经常会使用到,在面试中的占比也是非常大的。
不作声
2020/10/15
3220
再也不用怕面试问二叉树了
二叉树详解(深度优先遍历、前序,中序,后序、广度优先遍历、二叉树所有节点的个数、叶节点的个数)
树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它 叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。 有一个特殊的结点,称为根结点,根节点没有前驱结点除根节点外,其余结点被分成M(M>0)个互不相交的集合T1、T2、……、Tm,其中每一个集合Ti(1<= i <= m)又是一棵结构与树类似的子树。每棵子树的根结点有且只有一个前驱,可以有0个或多个后继,因此,树是递归定义的。
走在努力路上的自己
2024/01/26
2.9K0
二叉树详解(深度优先遍历、前序,中序,后序、广度优先遍历、二叉树所有节点的个数、叶节点的个数)
二叉树的基础---四种遍历方式的 Java 实现
大家好,我是多选参数的程序锅,一个正在“研究”操作系统、学数据结构和算法以及 Java 的硬核菜鸡。本篇将带来的是二叉树的相关知识,知识提纲如图所示。
syy
2020/07/27
2K0
基本数据结构概念
一、线性结构 顺序存储线性表:将元素依次存储在地址连续的存储单元中,物理上相邻; 链式存储线性表:将元素按照逻辑顺序链接在依次,不要求地址连续; 栈:仅在表的一端进行插入、删除操作的线性表,“后进先出”; 队列:仅在表的一端进行插入,另一端进行删除的线性表,“先进先出” 栈和队列有时候笔试会针对”FIFO“这些特性出问题,不过一般理解了,就比较简单。 二、树 2.1概念 二叉树是每个节点最多有两个子树(“左子树”和“右子树”)的树结构。 满二叉树:二叉树的每一层节
xiangzhihong
2018/02/01
5060
基本数据结构概念
二叉树入门就是这么简单!
自知技术有限,不过凭借着对编程的喜爱与兴趣,坚持发表一些文章,或在大神眼中,确实微不足道,也或许能给一些朋友一些启发,由于个人技术的不足,或许文章中会出现一些不足或错误之处,非常感谢大家能不吝指出,坚持写作大半年了,虽说没有什么显著的成就,但是一篇篇文章也给了我满满的记忆,作为一名普通本科的在校学生,每天坚持写一些东西,去做图,去写代码,去看一些书籍,找一些资料,帮助自己理解,再想想如何用自己的语言总结,归纳一下。技术的局限,有时候总会遇到一些盲区,写出来的文章,总是过于叙事化,理论化,缺乏实际经验,本地所模拟的一些例子,可能并不是很合理,也没有那么使用,但我也在尽量的弥补与实际开发应用的距离,总而言之,感谢各位支持,也感谢帮助过我的一个人。
BWH_Steven
2019/11/12
8270
二叉树入门就是这么简单!
关于二叉树,你该了解这些......
说道二叉树,大家对于二叉树其实都很熟悉了,本文呢我也不想教科书式的把二叉树的基础内容在啰嗦一遍,所以一下我讲的都是一些比较重点的内容。
代码随想录
2021/07/16
4600
数据结构——二叉树
树是一种非线性的数据结构,它是由n个有限节点组成的具有层次关系的集合。每一个节点代表一个元素,由父节点和子节点的层次关系连接。它被叫做树的原因是因为看起来像一颗倒挂的树(根朝上,叶子朝下)。
HZzzzzLu
2024/11/26
1300
数据结构——二叉树
令你头疼的[树]
The first step to accepting yourself is to stop comparing yourself to others.
小闫同学啊
2019/07/18
5620
令你头疼的[树]
LeetCode通关:连刷三十九道二叉树,刷疯了!
大家好,我是拿输出博客来督促自己刷题的老三,这一节我们来刷二叉树,二叉树相关题目在面试里非常高频,而且在力扣里数量很多,足足有几百道,不要慌,我们一步步来。我的文章很长,你们 收藏一下。
三分恶
2021/09/08
8580
讲透学烂二叉树(四):二叉树的存储结构—建堆-搜索-排序
数据结构是组织数据的方式,例如树,但是要注意数据结构有两种形式:逻辑结构和存储结构,这两种结构在表示一种数据结构的时候不一定完全相同的,逻辑结构是我们分析数据结构和算法的主要形式,而存储结构则是数据结构在内存中的存储形式。
周陆军
2021/08/15
1.2K0
【树】之二叉树(C语言)(含图解)
树是一种非线性的数据结构,它是由n(n >= 0)个有限结点组成的一个具有层次关系的集合,把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。
半生瓜的blog
2023/05/12
5410
【树】之二叉树(C语言)(含图解)
二叉树:数据结构的分形之美
树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把他叫做树是因为它看起来像一棵倒挂的树,也就说它的根朝上,而叶朝下的。它具有以下的特点:
用户11070251
2024/05/04
1560
二叉树:数据结构的分形之美
【数据结构】树与二叉树(八):二叉树的中序遍历(非递归算法NIO)
  二叉树是一种常见的树状数据结构,它由结点的有限集合组成。一个二叉树要么是空集,被称为空二叉树,要么由一个根结点和两棵不相交的子树组成,分别称为左子树和右子树。每个结点最多有两个子结点,分别称为左子结点和右子结点。
Qomolangma
2024/07/30
2600
【数据结构】树与二叉树(八):二叉树的中序遍历(非递归算法NIO)
数据结构——二叉树
树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。
Eternity._
2024/06/14
1100
数据结构——二叉树
精读《算法 - 二叉树》
二叉树是一种数据结构,并且拥有种类复杂的分支,本文作为入门篇,只介绍一些基本二叉树的题型,像二叉搜索树等等不在此篇介绍。
黄子毅
2022/03/15
3170
前端学数据结构与算法(六):二叉树的四种遍历方式及其应用
上一章我们从0到1的实现了一颗二叉搜索树,以及理解了二叉搜索树的特性与基本操作,这一章介绍关于二叉树的更多操作,也就是树的遍历。主要包括前序遍历、中序遍历、后序遍历、层序遍历,前面三种也叫深度优先遍历(DFS),最后的层序遍历也叫广度优先遍历(BFS),理解这四种遍历方式的不同,再遇到树相关的算法问题时,也就能更加游刃有余。这里不单指二叉搜索树,遍历思想同样适用于多叉树。
飞跃疯人院
2020/10/07
1.2K0
【愚公系列】2023年11月 数据结构(八)-二叉树
数据结构是计算机科学中的一个重要概念,它描述了数据之间的组织方式和关系,以及对这些数据的访问和操作。常见的数据结构有:数组、链表、栈、队列、哈希表、树、堆和图。
愚公搬代码
2023/11/07
3260
数据结构:图文详解二叉树(遍历、类型、操作)
从根节点出发,按照某种次序访问二叉树中的所有结点,使得每个结点被访问1次 且 只被访问1次
Carson.Ho
2020/01/13
7140
数据结构:图文详解二叉树(遍历、类型、操作)
推荐阅读
相关推荐
关于二叉树,你应该了解这些。(二叉树的理论基础)
更多 >
LV.0
百度高级研发工程师
目录
  • 写在前面
  • 用到的包
  • 示例数据
  • 创建预后模型并选择最优模型
  • 计算模型的AUC
  • 单变量cox回归特定模型的meta分析
  • 与已知模型相比较
    • 7.1 计算risk score
    • 7.2 计算C-index
    • 7.3 计算AUC
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档