SuperAPI AI 工具集

alterlab-scikit-survival

数据与分析

查看项目

更新于 10-15 19:56

技能介绍

用途:scikit-survival 是构建在 scikit-learn 之上的 Python 生存分析库,用于建立协变量与事件发生时间之间的关系,重点处理右删失数据(观察期内未发生事件的记录)。它面向预测建模;左删失或区间删失数据需借助其他工具。

主要能力:提供 Cox 比例风险模型(CoxPHSurvivalAnalysis、弹性网惩罚的 CoxnetSurvivalAnalysis、IPCRidge)、集成方法(RandomSurvivalForest、GradientBoostingSurvivalAnalysis、ComponentwiseGradientBoostingSurvivalAnalysis、ExtraSurvivalTrees)、生存支持向量机(FastSurvivalSVM、FastKernelSurvivalSVM、HingeLossSurvivalSVM、ClinicalKernelTransform),以及非参数估计(Kaplan-Meier、Nelson-Aalen)和竞争风险累积发生率。评估方面提供一致性指数(Harrell 与 Uno)、时间依赖 AUC 和积分 Brier 分数。

使用方式:用 sksurv.util.Surv 将事件与时间数组或 DataFrame 构造成生存结果;分类变量可用 sksurv.preprocessing.encode_categorical 做独热编码;内置数据集(如 load_breast_cancer、load_gbsg2)的事件与时间字段名各不相同,需先统一。模型与 scikit-learn 兼容,可放入 Pipeline、GridSearchCV、cross_val_score。评估需传入 y_train 计算 IPCW;as_concordance_index_ipcw_scorer 等包装器是包裹估计器并覆盖 .score(),应作为估计器传入并把参数前缀写为 estimator__,不存在 scoring='concordance_index_ipcw' 字符串。CoxnetSurvivalAnalysis 拟合整条正则化路径,coef_ 形状为 (n_features, n_alphas)。

适用场景:右删失的生存/时间到事件分析、高维特征筛选、非线性关系的集成建模、模型比较与评估、竞争风险分析。切勿在无删失的固定随访二分类中使用(应改用逻辑回归类工具),普通回归分类应改用 scikit-learn。

限制:Cox 模型返回系数但不含标准误、置信区间和 p 值,需推断性报告时应用 lifelines 的 CoxPHFitter 或 statsmodels 的 PHReg。SVM 与正则化 Cox 需标准化特征;删失率高于 40% 时宜用 Uno 的 C-index;竞争事件不应简单视为删失。版本方面,0.28 需 scikit-learn ≥ 1.9,移除 GradientBoostingSurvivalAnalysis 的 criterion 参数;CoxnetSurvivalAnalysis 要求 0 < l1_ratio ≤ 1,纯岭惩罚用 CoxPHSurvivalAnalysis(alpha=...)。安装命令、定价与使用步骤资料暂未提供。