SuperAPI AI 工具集

scikit-survival

数据与分析

查看项目

更新于 10-21 20:05

技能介绍

scikit-survival 技能面向使用 scikit-survival(sksurv)0.28.0 进行右删失生存分析的工作流。适用场景包括:右删失结构化结局建模;Cox PH、Coxnet、IPC ridge、生存树、随机生存森林、梯度提升和生存 SVM;区分度、预测误差、校准导向检查和时间依赖预测;竞争风险下的非参数累积发生率;以及 scikit-learn 管道、嵌套模型选择与可复现报告。

该库主要建模右删失结局。内置竞争风险支持为非参数累积发生率,不提供 Fine-Gray 回归。模型输出不应被呈现为临床建议、因果证据或临床效用证明。

安装方面,最新稳定版为 scikit-survival 0.28.0(2026-07-05 发布),要求 Python 3.11 或更高版本,PyPI wheel 覆盖 CPython 3.11-3.14 的 Linux x86-64、macOS x86-64/ARM64 和 Windows x86-64。运行时依赖包括 NumPy >=2.0.0、pandas >=2.2.0、SciPy >=1.13.0、scikit-learn >=1.9.0,<1.10、OSQP >=1.0.2、narwhals >=2.0.1。0.28 版本通过 narwhals 新增 pandas/Polars 估计器支持,并从 GradientBoostingSurvivalAnalysis 中移除了 criterion。安装示例使用 uv 创建隔离环境并安装固定版本快照。优先使用二进制 wheel;源码构建需要 C/C++ 编译器,OSQP 可能还需要 CMake。该技能为 MIT 许可,上游 scikit-survival 包为 GPL-3.0-or-later,再分发前需审查上游许可。

工作流要求:定义估计目标和事件编码;验证结局格式(标准估计器需要两字段结构化数组,布尔事件在前、观测时间在后;竞争风险 CIF 需要单独的整数事件向量,0=删失,1..K=原因);在划分数据之后再拟合预处理;在管道内拟合预处理;调参时不重用评估数据;在训练数据上拟合删失分布;限制评估时间网格;匹配预测与指标;显式处理竞争原因;报告局限性。

模型选择包括:CoxPHSurvivalAnalysis(可解释对数风险系数,alpha 为岭收缩,ties 可选 breslow 或 efron);CoxnetSurvivalAnalysis(高维数据的 LASSO/弹性网路径);IPCRidge(IPC 加权岭 AFT 模型);RandomSurvivalForest / ExtraSurvivalTrees(非线性生存和累积风险预测,使用排列重要性);GradientBoostingSurvivalAnalysis(树提升,损失可选 coxph、squared 或 ipcwls);ComponentwiseGradientBoostingSurvivalAnalysis(稀疏线性分量提升);FastSurvivalSVM / FastKernelSurvivalSVM(排序或回归目标,仅 rank_ratio=1 直接返回越高越风险的分数,SVM 不产生用于 Brier 指标的生存概率)。

评估指标包括 concordance_index_ipcw、cumulative_dynamic_auc、brier_score 和 integrated_brier_score。Harrell C 和 Uno C 衡量排序区分度而非校准;累积/动态 AUC 衡量选定时间点的区分度;Brier 分数是删失加权概率误差,反映区分度和校准;校准需要独立数据上的特定时间点预测-观测检查,0.28 版本没有专用校准曲线 API。

竞争风险方面,使用 cumulative_incidence_competing_risks 函数,status 为整数数组(0=删失,1..K=互斥原因),返回的 cif 形状为 (K+1, n_times),第 0 行为总风险,第 1..K 行为原因特异性累积发生率。原因特异性 Cox 模型将其他原因视为删失以估计原因特异性风险,但单个模型的 1-survival 不是原因特异性 CIF。

技能附带本地 CLI 工具:validate_survival_csv.py、train_survival_model.py、evaluate_survival_metrics.py、competing_risk_cif.py、model_report.py。这些工具在无输入时使用确定性合成数据,不进行网络调用,拒绝 URL 和符号链接,限制文件/行/特征数量,避免不安全的 pickle 加载,并延迟导入科学计算包。典型流程包括验证 CSV、训练模型、评估指标和生成报告。仅使用去标识化的授权本地数据。

安全方面,SECURITY.md 曾声称捆绑了名为 sklearn.py 和 sksurv.py 的包遮蔽文件,2026-07-23 的清单确认这些文件不存在。切勿将项目脚本命名为导入包的名称(包括 sklearn.py、sksurv.py、numpy.py 或 pandas.py),因为 Python 可能导入本地文件而非已安装库。

参考文件包括 data-handling.md、cox-models.md、ensemble-models.md、svm-models.md、evaluation-metrics.md 和 competing-risks.md。代理操作流程要求:检查环境、确认输入、先运行小版本、执行完整任务、验证结果并报告。完整性规则要求:绝不捏造结果、参数、标识符、引用或统计量;绝不报告本次会话未计算的指标;版本特定细节可能过时,需对照已安装版本的官方文档确认;在涉及费用、共享 GPU、云配额、个人或患者数据或不可撤销操作前先询问。