ML 45. 机器学习之快速实现随机生存森林 (Ranger)

676b6d9181d9ef35643353d0036dad9a.png



简  介

Ranger 软件是一个快速实现高维数据的随机森林。支持集成分类、回归和生存树。用参考实现验证包,并将运行时和内存使用情况与其他实现进行比较。新软件被证明是最好的缩放与特征,样本,树的数量,并尝试分裂的特征。最后,表明 Ranger 是最快和最有效的实现随机森林在全基因组关联研究的规模上分析数据。

fb8d4d32538b1622b20331361894cdcd.png

软件包安装

if(!require(ranger))
  install.packages("ranger")
if(!require(ranger))
  devtools::install_github("imbs-hl/ranger")

数据读取

数据说明:

  • futime: survival or censoring time

  • fustat: censoring status

  • age: in years

  • resid.ds: residual disease present (1=no,2=yes)

  • rx: treatment group

  • ecog.ps: ECOG performance status (1 is better, see reference)

data(cancer, package="survival")
head(ovarian)
##   futime fustat     age resid.ds rx ecog.ps
## 1     59      1 72.3315        2  1       1
## 2    115      1 74.4932        2  1       1
## 3    156      1 66.4658        2  1       2
## 4    421      0 53.3644        2  2       1
## 5    431      1 50.3397        2  1       1
## 6    448      0 56.4301        1  1       2

实例操作

参数说明:

?ranger

构建模型

根据说明ovarian数据集,构建模型:

library(ranger)
require(survival)

fit <- ranger(Surv(futime, fustat) ~ ., data = ovarian, importance = "impurity")
fit
## Ranger result
## 
## Call:
##  ranger(Surv(futime, fustat) ~ ., data = ovarian, importance = "impurity") 
## 
## Type:                             Survival 
## Number of trees:                  500 
## Sample size:                      26 
## Number of independent variables:  4 
## Mtry:                             2 
## Target node size:                 3 
## Variable importance mode:         impurity 
## Splitrule:                        logrank 
## Number of unique death times:     12 
## OOB prediction error (1-C):       0.2568807

重要变量分析

fit$variable.importance
##       age  resid.ds        rx   ecog.ps 
## 6.1362046 1.3665241 0.9877156 1.2586800
par(mar=c(4,8,4,4))
barplot(sort(fit$variable.importance),las=2,horiz = T)

deeaa23a5926f6996ea3c78fd243945a.png

预测

pred <- predict(fit, ovarian, type = "response")
pred$num.independent.variables
## [1] 4
ovarian$pred = ifelse(pred$survival[, 1] > median(pred$survival[, 1]), "High", "Low")

一致性

library(Hmisc)
rcorr.cens(pred$survival[, 1], Surv(ovarian$futime, ovarian$fustat))
##        C Index            Dxy           S.D.              n        missing 
##      0.7889908      0.5779817      0.1475544     26.0000000      0.0000000 
##     uncensored Relevant Pairs     Concordant      Uncertain 
##     12.0000000    436.0000000    344.0000000    214.0000000

生存分析

直接做生存分析即可:

library(survminer)
km <- survfit(Surv(futime, fustat) ~ pred, data = ovarian)
ggsurvplot(km, data = ovarian, surv.median.line = "hv", legend.title = "Risk Group",
    legend.labs = c("High Risk", "Low Risk"), pval = TRUE, ggtheme = theme_bw())

d418446151b3903a421ce038f3c27c51.png

绘制ROC曲线

library(pROC)
roc <- roc(ovarian$fustat, pred$survival[, 1], legacy.axes = T, print.auc = T, print.auc.y = 45)
roc$auc
## Area under the curve: 0.7083
plot(roc, legacy.axes = T, col = "red", lwd = 2, main = "ROC curv")
text(0.2, 0.2, paste("AUC: ", round(roc$auc, 3)))

ae1b80c296800c15f9452fc0e01c8bda.png

Reference
  1. Wright, M. N. & Ziegler, A. (2017). ranger: A fast implementation of random forests for high dimensional data in C++ and R. J Stat Softw 77:1-17.

  2. Schmid, M., Wright, M. N. & Ziegler, A. (2016). On the use of Harrell’s C for clinical risk prediction via random survival forests. Expert Syst Appl 63:450-459.

  3. Wright, M. N., Dankowski, T. & Ziegler, A. (2017). Unbiased split variable selection for random survival forests using maximally selected rank statistics. Stat Med 36:1272-1284.


基于机器学习构建临床预测模型

ML 1. 主成分分析(PCA)

ML 2. 因子分析(Factor Analysis)

ML 3. 聚类分析(Cluster Analysis)

ML 4. 癌症诊断方法之 K-邻近算法(KNN)

ML 5. 癌症诊断和分子分型方法之支持向量机(SVM)

ML 6. 癌症诊断机器学习之分类树(Classification Trees)

ML 7. 癌症诊断机器学习之回归树(Regression Trees)

ML 8. 癌症诊断机器学习之随机森林(Random Forest)

ML 9. 癌症诊断机器学习之梯度提升算法(Gradient Boosting)

ML 10. 癌症诊断机器学习之神经网络(Neural network)

ML 11. 机器学习之随机森林生存分析(randomForestSRC)

ML 12. 机器学习之降维方法t-SNE及可视化(Rtsne)

ML 13. 机器学习之降维方法UMAP及可视化 (umap)

ML 14. 机器学习之集成分类器(AdaBoost)

ML 15. 机器学习之集成分类器(LogitBoost)

ML 16. 机器学习之梯度提升机(GBM)

ML 17. 机器学习之围绕中心点划分算法(PAM)

ML 18. 机器学习之贝叶斯分析类器(Naive Bayes)

ML 19. 机器学习之神经网络分类器(NNET)

ML 20. 机器学习之袋装分类回归树(Bagged CART)

ML 21. 机器学习之临床医学上的生存分析(xgboost)

ML 22. 机器学习之有监督主成分分析筛选基因(SuperPC)

ML 23. 机器学习之岭回归预测基因型和表型(Ridge)

ML 24. 机器学习之似然增强Cox比例风险模型筛选变量及预后估计(CoxBoost)

ML 25. 机器学习之支持向量机应用于生存分析(survivalsvm)

ML 26. 机器学习之弹性网络算法应用于生存分析(Enet)

ML 27. 机器学习之逐步Cox回归筛选变量(StepCox)

ML 28. 机器学习之偏最小二乘回归应用于生存分析(plsRcox)

ML 29. 机器学习之嵌套交叉验证(Nested CV)

ML 30. 机器学习之特征选择森林之神(Boruta)

ML 31. 机器学习之基于RNA-seq的基因特征筛选 (GeneSelectR)

ML 32. 机器学习之支持向量机递归特征消除的特征筛选 (mSVM-RFE)

ML 33. 机器学习之时间-事件预测与神经网络和Cox回归

ML 34. 机器学习之竞争风险生存分析的深度学习方法(DeepHit)

ML 35. 机器学习之Lasso+Cox回归筛选变量 (LassoCox)

ML 36. 机器学习之基于神经网络的Cox比例风险模型 (Deepsurv)

ML 37. 机器学习之倾斜随机生存森林 (obliqueRSF)

ML 38. 机器学习之基于最近收缩质心分类法的肿瘤亚型分类器 (pamr)

ML 39. 机器学习之基于条件随机森林的生存分析临床预测 (CForest)

ML 40. 机器学习之基于条件推理树的生存分析临床预测 (CTree)

ML 41. 机器学习之参数生存回归模型 (survreg)

ML 42. 机器学习之Akritas条件非参数生存估计 (akritas)

ML 43. 机器学习之梯度增强线性模型用于生存数据 (glmboost)

ML 44. 机器学习之梯度提升回归树用于生存数据 (BlackBoost)

桓峰基因,铸造成功的您!

未来桓峰基因公众号将不间断的推出机器学习系列生信分析教程,

敬请期待!!

桓峰基因官网正式上线,请大家多多关注,还有很多不足之处,大家多多指正!http://www.kyohogene.com/

桓峰基因和投必得合作,文章润色优惠85折,需要文章润色的老师可以直接到网站输入领取桓峰基因专属优惠券码:KYOHOGENE,然后上传,付款时选择桓峰基因优惠券即可享受85折优惠哦!https://www.topeditsci.com/

367346a2ca3158a99e86dc2aa30d37f4.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值