用途:scikit-survival 是构建在 scikit-learn 之上的 Python 生存分析库,用于建立协变量与事件发生时间之间的关系,并处理删失数据(尤其是右删失)。适用于生存分析、时间到事件建模、删失数据处理、竞争风险分析等任务。
主要能力:提供多类模型,包括 Cox 比例风险模型(CoxPHSurvivalAnalysis、CoxnetSurvivalAnalysis、IPCRidge)、集成方法(RandomSurvivalForest、GradientBoostingSurvivalAnalysis、ExtraSurvivalTrees)、生存支持向量机(FastSurvivalSVM、FastKernelSurvivalSVM、HingeLossSurvivalSVM)以及 SurvivalTree。评估指标包括 Harrell 与 Uno 一致性指数、时间依赖 AUC、Brier 分数与积分 Brier 分数。非参数估计提供 Kaplan-Meier、Nelson-Aalen 与竞争风险累积发生率。数据工具包括 Surv 构造生存结果、OneHotEncoder 编码分类变量及内置数据集。
使用方式:通过 sksurv.util.Surv 创建生存结果,如 Surv.from_arrays(event=event_array, time=time_array) 或 Surv.from_dataframe('event', 'time', df)。建模前建议标准化特征、处理缺失值并编码分类变量。模型可放入 sklearn Pipeline,配合 cross_val_score 或 GridSearchCV 调参,交叉验证时使用 as_concordance_index_ipcw_scorer()。评估时注意:删失率高于 40% 建议使用 Uno 的 C-index(concordance_index_ipcw),并需传入 y_train。
适用场景:医学与临床研究中的生存分析、高维数据特征选择、非线性关系建模、竞争风险分析及多模型性能比较。
限制:资料未提供收费、价格、平台支持范围等信息;使用 SVM 与正则化 Cox 模型时需标准化特征;Cox 模型需检查比例风险假设;随机生存森林应使用排列重要性而非内置重要性;每特征建议至少 10 个事件。官方文档见 https://scikit-survival.readthedocs.io/,代码仓库见 https://github.com/sebp/scikit-survival。