R语言生存分析(机器学习)(1)——GBM(梯度提升机)

GBM是一种集成学习算法,它结合了多个弱学习器(通常是决策树)来构建一个强大的预测模型。GBM使用"Boosting"的技术来训练弱学习器,这种技术是一个迭代的过程,每一轮都会关注之前轮次中预测效果较差的样本,以便更专注地对它们进行建模。这有助于逐步减少整体预测误差。

复制代码
#1 清空
rm(list = ls())
gc()
#2 导入包
library("survival")
library("gbm")
help(package="gbm")
#3 拆分训练集和测试集
data<-lung
set.seed(123)
train <- sample(1:nrow(data), round(nrow(data) * 0.70))
train <- data[train, ]
test <- data[-train, ]
#4 建立模型
set.seed(123)
gbm_model <- gbm(Surv(time, status) ~ .,#建模
             distribution = "coxph",#分布
             data = train,#数据
             n.trees = 5000,#树数量
             shrinkage = 0.1,#学习率或步长减少
             interaction.depth = 5,#每棵树的最大深度
             n.minobsinnode = 10,#最小观测次数在树的终末节点
             cv.folds = 10#交叉验证次数
)
plot(gbm_model)#通过"积分"其他变量,绘制所选变量的边际效应。
summary(gbm_model)#绘图,从高到低显示因素的相对重要性
复制代码
#5 预测
best.iter <- gbm.perf(gbm_model, plot.it = TRUE, method = "cv")
pred_train <- predict(gbm_model, train, n.trees = best.iter)
pred_test <- predict(gbm_model, test, n.trees = best.iter)
#6 模型评价
#计算ROC
library(survivalROC)
roc_area <- survivalROC(Stime=train$time,
                        status=train$status,
                        marker =pred_train,
                        predict.time=100,
                        method="KM")
# 计算C-index
Hmisc::rcorr.cens(-pred_train, Surv(train$time, train$status))
Hmisc::rcorr.cens(-pred_test, Surv(test$time, test$status))
#7 计算生存概率
# 计算累积
CH<- basehaz.gbm(train$time, train$status, pred_train, 
                   t.eval = 300, cumulative = TRUE)
exp(-exp(pred_test)*CH)
相关推荐
一只可爱的小猴子42 分钟前
2022李宏毅老师机器学习课程笔记
人工智能·笔记·机器学习
爱研究的小陈1 小时前
Day 4:机器学习初探——从监督学习到无监督学习
机器学习
Blossom.1183 小时前
人工智能在智能家居中的应用与发展
人工智能·深度学习·机器学习·智能家居·vr·虚拟现实·多模态融合
薄荷很无奈3 小时前
CuML + Cudf (RAPIDS) 加速python数据分析脚本
python·机器学习·数据分析·gpu算力
Y1nhl11 小时前
搜广推校招面经八十一
开发语言·人工智能·pytorch·深度学习·机器学习·推荐算法·搜索算法
小墙程序员15 小时前
机器学习入门(二)线性回归
机器学习
追逐☞15 小时前
机器学习(7)——K均值聚类
机器学习·均值算法·聚类
追逐☞16 小时前
机器学习(9)——随机森林
人工智能·随机森林·机器学习
云天徽上18 小时前
【数据可视化-28】2017-2025 年每月产品零售价数据可视化分析
机器学习·信息可视化·数据挖掘·数据分析·零售