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)
相关推荐
STLearner5 分钟前
AAAI 2026 | 时间序列(Time Series) 论文总结[下] (分类,异常检测,基础模型,表示学习,生成)
大数据·论文阅读·人工智能·python·深度学习·机器学习·数据挖掘
BHXDML23 分钟前
第三章:聚类算法
算法·机器学习·聚类
学习3人组26 分钟前
大模型领域的核心相关名词解释
人工智能·机器学习·语言模型
浅川.2543 分钟前
机器学习基础知识
人工智能·机器学习
过期的秋刀鱼!1 小时前
机器学习-正则化线性回归
人工智能·深度学习·机器学习·大模型·线性回归·过拟合和欠拟合·大模型调参
_codemonster1 小时前
计算机视觉入门到实战系列(十七)基于视觉词袋模型的图像分类算法--视觉词典构建
机器学习·计算机视觉·分类
Das11 小时前
【机器学习】05_决策树
人工智能·决策树·机器学习
知乎的哥廷根数学学派1 小时前
基于物理引导和不确定性量化的轻量化神经网络机械退化预测算法(Python)
人工智能·pytorch·python·深度学习·神经网络·算法·机器学习
机器学习之心1 小时前
CEEMD-KPCA-PINN多变量时序光伏功率预测!互补集合经验模态分解+核主成份降维+物理信息神经网络,MATLAB代码
神经网络·机器学习·matlab·多变量时序光伏功率预测·物理信息神经网络
永远都不秃头的程序员(互关)1 小时前
【K-Means深度探索(五)】不止欧氏距离:K-Means中距离度量那些事儿
算法·机器学习·kmeans