用途:scikit-survival 是构建在 scikit-learn 之上的 Python 生存分析库,用于时间到事件建模,处理右删失、左删失和区间删失数据,建立协变量与事件发生时间的关系。
主要能力:提供 Cox 比例风险模型(CoxPHSurvivalAnalysis、弹性网惩罚的 CoxnetSurvivalAnalysis、IPCRidge)、集成方法(RandomSurvivalForest、GradientBoostingSurvivalAnalysis、ComponentwiseGradientBoostingSurvivalAnalysis、ExtraSurvivalTrees)、生存支持向量机(FastSurvivalSVM、FastKernelSurvivalSVM、HingeLossSurvivalSVM、ClinicalKernelTransform)。评估指标包括 Harrell 与 Uno 一致性指数、时间依赖 AUC、Brier 分数与积分 Brier 分数。非参数估计含 Kaplan-Meier、Nelson-Aalen 与竞争风险累积发生率。
使用方式:用 sksurv.util.Surv 构造生存结果,如 Surv.from_arrays(event=..., time=...) 或 Surv.from_dataframe('event','time',df)。模型遵循 scikit-learn 的 fit/predict 接口,可结合 Pipeline、cross_val_score、GridSearchCV 使用,交叉验证需用 as_concordance_index_ipcw_scorer() 等专用评分器。
适用场景:医学与临床随访研究、高维特征筛选、竞争风险分析、模型性能比较。
限制与注意:SVM 与正则化 Cox 需标准化特征;删失率高于 40% 建议用 Uno 的 C-index;concordance_index_ipcw 需传入 y_train;竞争事件不应简单当作删失处理;RSF 建议用置换重要性;需检查比例风险假设。官方文档见 https://scikit-survival.readthedocs.io/ ,仓库见 https://github.com/sebp/scikit-survival 。