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)
相关推荐
程序员Linc2 分钟前
计算机视觉 vs 机器视觉 | 机器学习 vs 深度学习:核心差异与行业启示
深度学习·机器学习·计算机视觉·机器视觉
不去幼儿园2 分钟前
【启发式算法】Dijkstra算法详细介绍(Python)
人工智能·python·算法·机器学习·启发式算法·图搜索算法
serve the people10 分钟前
神经网络中梯度计算求和公式求导问题
神经网络·算法·机器学习
大数据追光猿20 分钟前
【大模型技术】LlamaFactory 的原理解析与应用
人工智能·python·机器学习·docker·语言模型·github·transformer
神秘的土鸡1 小时前
如何在WPS中接入DeepSeek并使用OfficeAI助手(超细!成功版本)
人工智能·机器学习·自然语言处理·数据分析·llama·wps
潘达斯奈基~2 小时前
机器学习4-PCA降维
人工智能·深度学习·机器学习
終不似少年遊*2 小时前
综合使用pandas、numpy、matplotlib、seaborn库做数据分析、挖掘、可视化项目
开发语言·python·机器学习·numpy·pandas·matplotlib·seaborn
CS创新实验室3 小时前
《机器学习数学基础》补充资料:过渡矩阵和坐标变换推导
人工智能·机器学习·矩阵·机器学习数学基础
电子科技圈6 小时前
芯科科技通过全新并发多协议SoC重新定义智能家居连接
人工智能·mcu·物联网·机器学习·智能家居·边缘计算·iot
一小路一7 小时前
通往 AI 之路:Python 机器学习入门-机器学习基本概念
人工智能·后端·python·学习·机器学习