首页
/ scikit-survival v0.24.0发布:新增竞争风险分析与缺失值支持

scikit-survival v0.24.0发布:新增竞争风险分析与缺失值支持

2025-07-04 23:58:08作者:龚格成

scikit-survival是一个基于scikit-learn的Python生存分析库,它扩展了scikit-learn的功能,专门用于处理包含时间到事件数据(生存数据)的机器学习任务。生存分析在医学研究、工业设备故障预测、客户流失分析等领域有着广泛应用。

主要更新内容

竞争风险分析功能

本次v0.24.0版本最重要的新增功能是竞争风险分析支持。在生存分析中,竞争风险指的是研究对象可能经历多种不同类型的事件,而这些事件会相互"竞争"导致其他事件无法发生。

新版本引入了sksurv.nonparametric.cumulative_incidence_competing_risks()函数,这是一个非参数估计器,用于计算竞争风险情况下的累积发生率函数(CIF)。这个函数能够更准确地估计在存在多种竞争事件时,特定类型事件的发生概率。

为了便于用户学习和使用这一功能,项目还新增了两个包含竞争风险数据的示例数据集:

  • load_bmt():骨髓移植数据
  • load_cgvhd():慢性移植物抗宿主病数据

缺失值支持增强

在机器学习模型方面,ExtraSurvivalTrees现在支持缺失值处理,这是通过升级到scikit-learn 1.6.1实现的。这个增强使得模型能够更好地处理现实世界中常见的不完整数据。

随机生存森林改进

随机生存森林模型(RandomSurvivalForestExtraSurvivalTrees)新增了estimators_samples_属性,允许用户查看每个基学习器使用的样本子集,这对于模型解释和调试非常有帮助。

同时修复了一个参数校验问题:当bootstrap=False但设置了max_sample参数时,现在会正确报错而不是忽略这个不一致的参数组合。

技术细节优化

在底层实现上,项目进行了多项技术优化:

  1. 修正了Windows平台上C++代码中的类型不一致问题,将n_alphas的类型从int改为与Eigen库一致的VectorType::Index
  2. 改进了版本信息显示功能,修复了Python版本打印问题
  3. 全面升级到Python 3.10语法,放弃了旧版本Python的支持
  4. 测试环境升级到Python 3.12、matplotlib 3.9和seaborn 0.13

向后兼容性说明

需要注意的是,这个版本放弃了对scikit-learn 1.6.1之前版本的支持,同时也停止了对Python 3.10之前版本的支持。用户在升级时需要确保环境满足这些依赖要求。

应用价值

这些更新使得scikit-survival在以下场景中更具优势:

  1. 医学研究中需要分析多种可能结局(如疾病复发、死亡等)的竞争风险情况
  2. 工业领域需要处理带有缺失值的设备故障数据
  3. 需要更深入理解随机生存森林模型内部工作机制的研究场景

对于从事生存分析的研究人员和数据科学家来说,这个版本提供了更强大的工具来处理现实世界中复杂的生存数据分析问题。特别是竞争风险分析功能的加入,填补了之前版本在这方面的空白,使得分析结果更加准确可靠。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
27
11
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
469
3.48 K
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
10
1
leetcodeleetcode
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
65
19
flutter_flutterflutter_flutter
暂无简介
Dart
716
172
giteagitea
喝着茶写代码!最易用的自托管一站式代码托管平台,包含Git托管,代码审查,团队协作,软件包和CI/CD。
Go
23
0
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
208
83
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.27 K
695
rainbondrainbond
无需学习 Kubernetes 的容器平台,在 Kubernetes 上构建、部署、组装和管理应用,无需 K8s 专业知识,全流程图形化管理
Go
15
1
apintoapinto
基于golang开发的网关。具有各种插件,可以自行扩展,即插即用。此外,它可以快速帮助企业管理API服务,提高API服务的稳定性和安全性。
Go
22
1