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)
相关文章:
R语言生存分析(机器学习)(1)——GBM(梯度提升机)
GBM是一种集成学习算法,它结合了多个弱学习器(通常是决策树)来构建一个强大的预测模型。GBM使用“Boosting”的技术来训练弱学习器,这种技术是一个迭代的过程,每一轮都会关注之前轮次中预测效果较差的样本,…...
k8s和docker简单介绍
当涉及到容器技术和容器编排时,Docker和Kubernetes是两个重要的概念。我将更详细地介绍它们以及它们之间的关系。 Docker: Docker是一种容器化技术,它允许你将应用程序及其依赖项打包到一个称为"容器"的封闭环境中。每个容器都包…...
Lua学习记录
Lua基础了解 Lua的注释通过 (-- 单行注释,--[[ ]] 多行注释)可以不加; 多个变量赋值,按顺序赋值,没有则为nil; function的简单用法,多个返回值配合多重赋值,以end为结束标志 Lua下标从1开始&…...
三分钟完美解决你的C盘内存过大爆红
一、清理回收站 二、清理桌面 建议一 不要在桌面放太多图标或者文件会占用过多的内存,可以放到其他盘建议二、 将位置移动到别的盘 三、手动删除下载文件与缓存文件 日常使用中会通过Windows下载各种文件资料到电脑中,它默认也是直接下载在C盘中的。如果我们在以…...
C++ - equal(比较两个vector元素)
C标准库的std::equal函数。这个函数用于比较两个范围的元素是否相等。 在使用std::equal函数时,您需要提供两个范围的迭代器,以及一个可选的谓词函数(predicate)。函数会比较第一个范围内的元素和第二个范围内的元素是否相等。如果…...
多线程:线程池
线程池 提前创建多个线程放入线程池中,使用时直接获取,使用完直接放入池中;可以避免频繁创建销毁,实现重复利用,类似生活中的公共交通工具。好处:提高相应速度;降低资源消耗;便于线…...
9.3.2.2网络原理(传输层TCP)
TCP全部细节参考RFC标准文档 一.TCP特点: 有连接,可靠传输,面向字节流,全双工. 二.TCP数据报: 1.端口号是传输层的重要概念. 2.TCP的报头是变长的(UDP是固定的8字节),大小存在4位首部长度中,用4个bit位(0~15)表示长度单位是4字节.(TCP报头最大长度是60字节,前面20字节是固定…...
ssm+mybatis无法给带有下划线属性赋值问题
原因:mybaitis根据配置,将有下划线的字段名改为了驼峰格式。 具体见:ssmmybatis无法给带有下划线属性赋值问题,无法获取数据库带下划线的字段值 - 开发者博客 解决方式: 直接将实体类中的下划线去掉返回值使用resul…...
学习笔记-JVM监控平台搭建
SpringBoot Actuator 1 引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId> </dependency>2 开启配置 # 暴露所有的监控点【含Prometheus】 management.endpoin…...
使用css实现时间线布局(TimeLine)
前言 在使用uni-app开发微信小程序过程中,遇到了时间轴布局,由于每项的内容高度不一致,使用uniapp自带的扩展组件uni-steps,样式布局无法对齐竖线,于是自己造轮子,完成特殊的布局。显示效果如下࿱…...
深入浅出 栈和队列(附加循环队列、双端队列)
栈和队列 一、栈 概念与特性二、Stack 集合类及模拟实现1、Java集合中的 Stack2、Stack 模拟实现 三、栈、虚拟机栈、栈帧有什么区别?四、队列 概念与特性五、Queue集合类及模拟实现1、Queue的底层结构(1)顺序结构(2)链…...
前端基础(二)
前言:前端开发框架——Vue框架学习。 准备工作:添加Vue devtools扩展工具 具体可查看下面的这篇博客 添加vue devtools扩展工具添加后F12不显示Vue图标_MRJJ_9的博客-CSDN博客 Vue官方学习文档 Vue.js - 渐进式 JavaScript 框架 | Vue.js MVVM M…...
ORB-SLAM2学习笔记7之System主类和多线程
文章目录 0 引言1 整体框架1.1 整体流程 2 System主类2.1 成员函数2.2 成员变量 3 多线程3.1 ORB-SLAM2中的多线程3.2 加锁 0 引言 ORB-SLAM2是一种基于特征的视觉SLAM(Simultaneous Localization and Mapping)系统,它能够从单个、双目或RBG…...
gin的占位符:和通配符*
1、用法 在 Gin 路由中,可以使用一个通配符(*)或一个占位符(:)来捕获 URL 的一部分。 r.GET("/royal/:id", func(c *gin.Context) {id : c.Param("id")//fmt.Println("into :id")c.Str…...
【量化课程】08_2.深度学习量化策略基础实战
文章目录 1. 深度学习简介2. 常用深度学习模型架构2.1 LSTM 介绍2.2 LSTM在股票预测中的应用 3. 模块分类3.1 卷积层3.2 池化层3.3 全连接层3.4 Dropout层 4. 深度学习模型构建5. 策略实现 1. 深度学习简介 深度学习是模拟人脑进行分析学习的神经网络。 2. 常用深度学习模型架…...
12-数据结构-数组、矩阵、广义表
数组、矩阵、广义表 目录 数组、矩阵、广义表 一、数组 二.矩阵 三、广义表 一、数组 这一章节理解基本概念即可。数组要看清其实下标是多少,并且二维数组,存取数据,要先看清楚是按照行存还是按列存,按行则是正常一行一行的去读…...
Idea 反编译jar包
实际项目中,有时候会需要更改jar包源码来达到业务需求,本文章将介绍一下如何通过Idea来进行jar反编译 1、Idea安装decompiler插件 2、找到decompiler插件文件夹 decompiler插件文件夹路径为:idea安装路径/plugins/java-decompiler/lib 3、…...
【Git】安装以及基本操作
目录 一、初识Git二、 在Linux底下安装Git一)centOS二)Ubuntu 三、 Git基本操作一) 创建本地仓库二)配置本地仓库三)认识工作区、暂存区、版本库四)添加文件五)查看.git文件六)修改文…...
Spring创建Bean的过程(2)
上一节介绍了Spring创建过程中的两个重要的接口,那么它们在创建Bean的过程中起到了什么作用呢?接下来请看: Spring有三种方式寻找 xml 配置文件,根据 xml 文件内容来构建 ApplicationContext,分别为ClassPathXmlAppli…...
Linux 终端操作命令(2)内部命令
Linux 终端操作命令 也称Shell命令,是用户与操作系统内核进行交互的命令解释器,它接收用户输入的命令并将其传递给操作系统进行执行,可分为内部命令和外部命令。内部命令是Shell程序的一部分,而外部命令是独立于Shell的可执行程序…...
Druid监控页面登录失败?你可能踩了这个Request Body的坑
Druid监控登录异常排查:Request Body解析的隐蔽陷阱 最近在调试Druid监控面板时遇到一个诡异现象——明明配置了正确的用户名密码,却始终无法登录。控制台没有报错,前端参数也正常发送,但后端就是接收不到登录凭证。这种"看似…...
ble sig mesh消息格式分析
蓝牙 Mesh (Bluetooth SIG Mesh) 的数据格式采用分层结构,每一层都有其特定的数据单元和职责 一.承载层 (Bearer Layer) 承载层定义了消息如何在物理媒介上传输。蓝牙 Mesh 主要支持两种承载方式: 广播承载 (Advertising Bearer): 使用 BLE 广播包来传输…...
IEEE Trans系列期刊投稿指南:如何高效命中CCF-B类1区Top期刊(附最新录用案例)
IEEE Trans系列期刊高效投稿策略:从选题到录用的全流程实战指南 在学术研究领域,IEEE Transactions系列期刊始终代表着工程技术学科的最高水准。对于国内高校教师、科研人员及博士生而言,成功在CCF-B类1区Top期刊发表论文,不仅意味…...
突破云盘限速壁垒:开源直链解析工具的全场景应用方案
突破云盘限速壁垒:开源直链解析工具的全场景应用方案 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云…...
Face3D.ai Pro在动画制作中的应用:快速生成角色面部绑定基础模型
Face3D.ai Pro在动画制作中的应用:快速生成角色面部绑定基础模型 1. 动画制作中的面部绑定挑战 在传统动画制作流程中,角色面部绑定是最耗时且技术要求最高的环节之一。一个标准的面部绑定流程通常包括: 3D扫描或手动建模(2-3天…...
2026网文圈变天!顶配AI写小说神器实测:除了炼字工坊,全是虚火?
搞了半个月实测,废了三个起点号,我终于把这套2026网文顶配AI组合拳盘清楚了。 说实话,现在市面上打着“AI写小说”旗号的工具,90%都是割韭菜的套壳货。 点开一看,全是GPT-4o或者过时的模型,写出来的东西一股…...
3步掌控微信数据主权:从聊天记录备份到社交价值挖掘的完整指南
3步掌控微信数据主权:从聊天记录备份到社交价值挖掘的完整指南 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/…...
【Git 内部原理】`.git` 是怎么记住所有版本的
每次 git commit,Git 都说"已记录"。但你有没有想过:改了几十次、几百次,Git 是怎么全记住的?难道每次提交,它都复制一份完整项目? 这篇文章不讲命令,也不背概念。 我们直接打开…...
FramePack视频扩散技术指南:从原理解析到实战优化的完整路径
FramePack视频扩散技术指南:从原理解析到实战优化的完整路径 【免费下载链接】FramePack Lets make video diffusion practical! 项目地址: https://gitcode.com/gh_mirrors/fr/FramePack 原理解析:FramePack的技术突破与核心架构 视频生成效率的…...
0331作业
...
