[ PROMPT_NODE_27376 ]
svm-models
[ SKILL_DOCUMENTATION ]
# 生存支持向量机 (Survival SVM)
## 概述
生存支持向量机 (SVM) 将传统的 SVM 框架应用于处理删失数据的生存分析。它们优化了一个排序目标,以鼓励生存时间的正确排序。
### 核心思想
用于生存分析的 SVM 学习一个产生风险评分的函数 f(x),其中优化过程确保生存时间较短的受试者比生存时间较长的受试者获得更高的风险评分。
## 何时使用生存 SVM
**适用于:**
- 中等规模数据集(通常 100-10,000 个样本)
- 需要非线性决策边界(核 SVM)
- 希望进行基于间隔的学习和正则化
- 具有定义良好的特征空间
**不适用于:**
- 超大规模数据集 (>100,000 个样本) - 集成方法可能更快
- 需要可解释的系数 - 请改用 Cox 模型
- 需要生存函数估计 - 请使用随机生存森林 (Random Survival Forest)
- 超高维数据 - 请使用正则化 Cox 或梯度提升
## 模型类型
### FastSurvivalSVM
使用坐标下降法优化速度的线性生存 SVM。
**适用场景:**
- 预期存在线性关系
- 对速度有要求的大型数据集
- 希望快速训练和预测
**关键参数:**
- `alpha`: 正则化参数 (默认: 1.0)
- 数值越大 = 正则化越强
- `rank_ratio`: 排序与回归之间的权衡 (默认: 1.0)
- `max_iter`: 最大迭代次数 (默认: 20)
- `tol`: 停止准则的容差 (默认: 1e-5)
python
from sksurv.svm import FastSurvivalSVM
# 拟合线性生存 SVM
estimator = FastSurvivalSVM(alpha=1.0, max_iter=100, tol=1e-5, random_state=42)
estimator.fit(X, y)
# 预测风险评分
risk_scores = estimator.predict(X_test)
### FastKernelSurvivalSVM
用于非线性关系的核生存 SVM。
**适用场景:**
- 特征与生存时间之间存在非线性关系
- 中等规模数据集
- 可以接受更长的训练时间以获得更好的性能
**核函数选项:**
- `'linear'`: 线性核,等同于 FastSurvivalSVM
- `'poly'`: 多项式核
- `'rbf'`: 径向基函数 (高斯) 核 - 最常用
- `'sigmoid'`: Sigmoid 核
- 自定义核函数
**关键参数:**
- `alpha`: 正则化参数 (默认: 1.0)
- `kernel`: 核函数 (默认: 'rbf')
- `gamma`: 用于 rbf, poly, sigmoid 的核系数
- `degree`: 多项式核的次数
- `coef0`: poly 和 sigmoid 的独立项
- `rank_rat