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)
相关推荐
学废了wuwu1 小时前
机器学习模型评估指标完全解析:准确率、召回率、F1分数等
人工智能·机器学习
亚里随笔2 小时前
突破性框架TRAPO:统一监督微调与强化学习的新范式,显著提升大语言模型推理能力
人工智能·深度学习·机器学习·语言模型·llm·rlhf
救救孩子把3 小时前
50-机器学习与大模型开发数学教程-4-12 Bootstrap方法
人工智能·机器学习·bootstrap
救救孩子把5 小时前
51-机器学习与大模型开发数学教程-4-13 EM算法与混合模型
人工智能·算法·机器学习
Brduino脑机接口技术答疑5 小时前
TDCA 算法在 SSVEP 场景中的训练必要性
人工智能·算法·机器学习·脑机接口
core5126 小时前
SVM (支持向量机):寻找最完美的“分界线”
算法·机器学习·支持向量机·svm
小鸡吃米…8 小时前
Python的人工智能-机器学习
人工智能·python·机器学习
deephub8 小时前
机器学习时间特征处理:循环编码(Cyclical Encoding)与其在预测模型中的应用
人工智能·python·机器学习·特征工程·时间序列
ekprada9 小时前
Day50 - 预训练模型与CBAM集成
人工智能·深度学习·机器学习
芥子沫9 小时前
《人工智能基础》[算法篇5]:SVM算法解析
人工智能·算法·机器学习·支持向量机·svm