昨晚,小伙伴收到了大鱼海棠为我们带来的FigureYa182RFSurv,使用随机森林对生存数据降维,根据变量重要性排序并筛选基因组成prognostic signature。

这是我们第二次众筹随机森林相关分析,上次的FigureYa159LR_RF,是在LASSO降维的基础上,采用logistic regression或Random forest的方法,进行5-fold cross-validation评估LASSO selected feature的预测效能。

大鱼海棠为我们带来了众多或经典或酷炫的好用代码,具有丰富的医学统计分析经验。这次建立FigureYa182RFSurv专属讨论群,请大鱼海棠入群答疑。小伙伴就相关问题展开讨论,小丫整理记录下来,留下这宝贵资源。


HSZ:请问这个安装是哪里出问题了,我百度也不知道怎么解决?

大鱼海棠:https://share.weiyun.com/0Qk7bvR6,直接把这个拖到R的library下解压试试,我以前这样做似乎也可以用,在windows里。

ZJH问:老师,您好!imp.cutoff这个重要性阈值的怎么选择?

大鱼海棠:没有固定cutoff。结果导向的,嫌结果太多就设高一点

LGM问:海棠哥好,请教一下筛选出来的特征要组合成预后signature,是还需要进一步使用多因素COX回归来求变量的系数吗?

大鱼海棠:嗯我会建议这样做,但是多因素这部不进行变量筛选了。

Allittis问:海棠老师的意思是直接多因素全部纳入算一个系数即可,是不?

LGM问:不进行逐步回归?

大鱼海棠:对的,因为你已经认为RF得出来的是你感兴趣的变量了。当然你非要再逐步回归,从操作性上来讲没有问题。

零度反应问:如果这个得到的基因太多呢,可不可以再用逐步回归?

大鱼海棠:可以

零度反应:因为之前用过这个,也用过你写的lasso回归的方法,但最后得到的signature基因相对多一点,然后有时auc优势也并不明显

大鱼海棠:survival的auc一般都不会那么高。。因为不仅仅是二分类问题,考虑了time-to-event

零度反应:所以又进行了多因素,最起码基因会少一些,感觉上好那么一丢丢。

LGM问:关于组合成预后signature还想再请教一下

一篇文章使用COX回归得到了感兴趣的基因,但是risk score 的计算居然是表达量跟HR相乘。有这样的处理方式吗?

Allittis:HR的置信区间好大

唐渊:估计是数据没有做归一化处理导致HR 值这么大。

LZQ:scale一下一般会小一些

大鱼海棠:多个数据集验证的话,都会建议每个数据集都要scale,尤其是针对不同平台。

CSJ问:请问R中可以获取基因的coefficients值么,我看原文中提到这个值是由random forest algorithm得到的,但是我在结果中没有找到这个值~

LZQ:这个应该是单因素cox的coef,决策树是无参ML。HR=e^coef
对应的HR值转化一下就得到了。

大鱼海棠:我觉得也是,coef,HR以及对应的95%CI应该是后算的,单因素cox直接summary一下都有。

DMY问:我在分析数据的时候发现如果用TCGA做训练集,而用GEO做验证集,结果发现训练集中获得的关键基因在GEO数据集中不存在,那我应该反过来用GEO做训练集呢?还是先取 TCGA和GEO的交集后再分析?谢谢啦!

砍柴人:先基因取交集啊

DMY:那用随机森林和支持向量机这两种方法筛选关键基因,那个更好呢?还是用组合的方式来筛选@大鱼海棠

大鱼海棠:组合的方式只是为了。。虚假的工作量吧,多写几段method。我不太认可这种做法,尤其是需要其中的指标时。比如LASSO和SVM一起用,那LASSO里的系数怎么办?

DMY:那有没有一个更好的组合呢?比如先差异筛选,再单COX,再随机森林,最后多COX?

大鱼海棠:这些方法最后都是结果导向型,没有什么最好的组合。。

DMY:AUC值通常多少比较合适呢?必须0.7以上么?

大鱼海棠:训练集我会建议0.8以上吧。

砍柴人:训练集0.8以上,那测试集可以得到多少?

大鱼海棠:看运气

DMY:嗯,有时候经常是在TCGA训练集很高,到了GEO验证的时候就很低了,不懂是不是数据需要归一化处理。

大鱼海棠:要归一化处理

DMY:难怪呢,我平时都没做归一化,结果差别很大。有没有同时对所有训练集和验证集进行归一化处理的方法呢?谢谢啦!

大鱼海棠:z-score最方便。个人觉得0-1区间变换最严谨,但是没必要。

DMY:先取基因交集,然后合并所有数据集,再用Z-score归一化,再拆分数据进行分析,是这个逻辑么?谢谢啦

大鱼海棠:分别zscore,不会合并zscore。tcga数据要先log,用TPM。

DMY:谢谢啦,受益匪浅!

CGD:所以请问是先将tcga的tpm数据zscore后再建模,然后在geo的zscore后的数据中验证模型是吗?是这样的顺序吗,感谢!

DMY:前面大鱼海棠 有说,先在TCGA中对tpm进行log2后再zscore

LGM问:能不能再众筹个不同平台数据的标准化?

DMY:感觉可行,数据清理确实很重要。确实跨平台验证会面临很多问题,同一平台也会有批次效应,所以我在处理多GEO数据集的时候都先去除批次效应并合并后,再进行下面分析。

大鱼海棠:你们可以了解一下gene pair,完美回避批次。是一个比较热的,回避标准化的,跨平台数据处理理念,但是数据的量级会比较大。

The one:gene pair[强][强][强],知道这个东西,没尝试过,晚上回去试下!

DMY:我前面看一些教程里面写随机森林对二分类变量预测效果最佳,比如生死,患病与否,但是病人的生存数据里还有生存时间,应该用二分类变量作为结局变量么?如生死,还是以连续性变量生存时间作为结局变量比较好,谢谢啦。

大鱼海棠:有研究不关心时间,只关心生死的,看个人目的吧。随机森林对二分类最佳也没有这种说法,看观测和变量的比例。逻辑回归这种就很robust,而且可以写出关系式,推荐的还是逻辑回归。

DMY:那研究是否复发,或者转移,也是不错的选择哈!

大鱼海棠:是的。

Paul:老师您好,我想请一下xgboost会不会比随机森林树更好一些?

大鱼海棠:没有方法有绝对的优势。。不然老方法就完全淘汰了不是吗?分类算法、聚类算法都是result-oriented。我相信。。你们也会试不同的方法得到自己expected的结果吧!

DMY:感觉都是先用各种方法先分析,那个结果好就用那个,均衡来选择,结果导向,今天又做到一个新知识,谢谢大神!

DMY:请问内部验证应该分配多少样品比例比较好呢?有些文章按照每组50%来分配,有些按照80%训练和20%来分,那个更好呢?

Paul:7:3,1:1的都有用,结果导向。

大鱼海棠:对,结果导向。五折多一些,只要不太离谱。

赞美太阳:请教个问题,为什么不用rfsrc这个函数筛选变量?

大鱼海棠:没有用新的函数包

赞美太阳:那么rfs之后可以自行再来一发var.select吗?

大鱼海棠:感觉没必要

赞美太阳:嗯,我觉得只要能说通就可以了。

随机森林需要分训练集测试集吗_讨论记录用随机森林对生存数据降维,筛选signature...相关推荐

  1. 文本分类训练集 测试集_【AI1000问】训练为什么要分测试集和验证集?

    9 往期视频 点击边框调出视频工具条 为什么要分训练集和测试集呢? 在很多的书以及一些公开数据集中,都会将数据集分为训练集,验证集和测试集,看起来验证集和测试集并没有区别,为什么要分这两个呢? 作者/ ...

  2. Scikit-learn API:train_test_split函数 将数据分割为训练集和测试集

    函数原型 sklearn.model_selection.train_test_split(*arrays, **options) 函数功能 将数组或矩阵随机的分割成训练集和测试集,注意这里是随机的. ...

  3. R语言决策树、bagging、随机森林模型在训练集以及测试集的预测结果(accuray、F1、偏差Deviance)对比分析、计算训练集和测试集的预测结果的差值来分析模型的过拟合(overfit)情况

    R语言决策树.bagging.随机森林模型在训练集以及测试集的预测结果(accuray.F1.偏差Deviance)对比分析.计算训练集和测试集的预测结果的差值来分析模型的过拟合(overfit)情况 ...

  4. sklearn.model_selection.train_test_split随机划分训练集和测试集

    1 函数用途 train_test_split()是交叉验证中常用的函数,功能是将数组或矩阵按比例随机划分为训练集和测试集,使用方法为: X_train,X_test, y_train, y_test ...

  5. Sklearn-train_test_split随机划分训练集和测试集

    sklearn.model_selection.train_test_split随机划分训练集和测试集 官网文档:http://scikit-learn.org/stable/modules/gene ...

  6. 随机切分csv训练集和测试集 鸢尾花

    import csv import os import numpy as np '''将iris.csv中的数据分成train_iris和test_iris两个csv文件,其中train_iris.c ...

  7. 【数据挖掘】分类任务简介 ( 分类概念 | 分类和预测 | 分类过程 | 训练集 | 测试集 | 数据预处理 | 有监督学习 )

    文章目录 I . 分类概念 II . 分类 ( 离散值 ) 和 预测 ( 连续值 ) III . 分类过程 IV . 分类过程中使用的数据集 ( 训练集 | 测试集 | 新数据 ) V . 数据预处理 ...

  8. 1.1 训练/开发/测试集-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 4.9 总结习题 (第一课) 回到目录 1.2 偏差/方差 训练/开发/测试集 (Train/Dev/Test Sets) 大家可能已经了解了,那么本周,我们将继续学习如何有 ...

  9. python机器学习 train_test_split()函数用法解析及示例 划分训练集和测试集 以鸢尾数据为例 入门级讲解

    文章目录 train_test_split()用法 获取数据 划分训练集和测试集 完整代码脚手架 train_test_split()用法 python机器学习中常用 train_test_split ...

最新文章

  1. python paramiko模块中设置执行命令超时值
  2. Mybatis问题解释?
  3. java快速排序直观演示代码,排序算法总结(含动图演示和Java代码实现)
  4. 如何使用oracle ebs,Oracle EBS进行集成的实际操作步骤
  5. 图片链接在FireFox下好用,但是在IE下不好用!
  6. 通过一个月时间字段分组
  7. 查询视图遇见的问题,以及访问另一个数据库的表
  8. fastjson 序列化 不包括转义字符_fastjson漏洞复现
  9. 单片机知识点总结框图_89C51单片机的结构框图及原理解析
  10. 成长与直面: ORID见感思行教练法
  11. alook浏览器_Alook浏览器app下载|Alook浏览器安卓版下载 v3.4.1 - 跑跑车安卓网
  12. Scala 高阶函数(作为值的函数、匿名函数、闭包、柯里化)+隐式转换和隐式参数...
  13. 苹果申请屏幕防指纹专利 互联网信用体系跨越一大步
  14. 最新大数据产业生态地图:十大爆发点,百大公司起底
  15. Android launcher 桌面抽屉切换动画
  16. ZDNS助力中国科技网启动RPKI路由验证,我国进入IP地址路由安全认证时代
  17. 计算机组成原理之基本组成
  18. 计算机音乐制作专业美国研究生,美国音乐制作专业研究生六大首选音乐学院
  19. 在angular 项目中使用 `npm run build` 出现 `* exceeded maximum budget` 警告或错误
  20. LINGO如何求解数学模型

热门文章

  1. python文件地址拼接
  2. Pytest标记用例失败之xfail
  3. Python之Pymysql模块操作MySQL增删改查
  4. TypeError: missing 1 required keyword-only argument-python中的报错问题
  5. sendMessage 与 obtainMessage (sendToTarget)比较
  6. 使用exp导出导入,需要注意的问题。
  7. js for in 获得遍历数组索引和对象属性
  8. Linux命令之乐--sed
  9. ARMV8 datasheet学习笔记5:异常模型
  10. Thinkphp kindeditor 内容转义