sksurv.svm.HingeLossSurvivalSVM#
- class sksurv.svm.HingeLossSurvivalSVM(solver='ecos', alpha=1.0, kernel='linear', gamma=None, degree=3, coef0=1, kernel_params=None, pairs='all', verbose=False, timeit=None, max_iter=None)[source]#
Naive implementation of kernel survival support vector machine.
A new set of samples is created by building the difference between any two feature vectors in the original data, thus this version requires \(O(\text{n_samples}^4)\) space and \(O(\text{n_samples}^6 \cdot \text{n_features})\).
See
sksurv.svm.NaiveSurvivalSVM
for the linear naive survival SVM based on liblinear.\[ \begin{align}\begin{aligned}\begin{split}\min_{\mathbf{w}}\quad \frac{1}{2} \lVert \mathbf{w} \rVert_2^2 + \gamma \sum_{i = 1}^n \xi_i \\ \text{subject to}\quad \mathbf{w}^\top \phi(\mathbf{x})_i - \mathbf{w}^\top \phi(\mathbf{x})_j \geq 1 - \xi_{ij},\quad \forall (i, j) \in \mathcal{P}, \\ \xi_i \geq 0,\quad \forall (i, j) \in \mathcal{P}.\end{split}\\\mathcal{P} = \{ (i, j) \mid y_i > y_j \land \delta_j = 1 \}_{i,j=1,\dots,n}.\end{aligned}\end{align} \]See 1, 2, 3 for further description.
- Parameters
solver ("ecos" | "osqp", optional, default: ecos) – Which quadratic program solver to use.
alpha (float, positive, default: 1) – Weight of penalizing the hinge loss in the objective function.
kernel ("linear" | "poly" | "rbf" | "sigmoid" | "cosine" | "precomputed") – Kernel. Default: “linear”
gamma (float, optional) – Kernel coefficient for rbf and poly kernels. Default:
1/n_features
. Ignored by other kernels.degree (int, default: 3) – Degree for poly kernels. Ignored by other kernels.
coef0 (float, optional) – Independent term in poly and sigmoid kernels. Ignored by other kernels.
kernel_params (mapping of string to any, optional) – Parameters (keyword arguments) and values for kernel passed as call
pairs ("all" | "nearest" | "next", optional, default: "all") –
Which constraints to use in the optimization problem.
all: Use all comparable pairs. Scales quadratic in number of samples.
nearest: Only considers comparable pairs \((i, j)\) where \(j\) is the uncensored sample with highest survival time smaller than \(y_i\). Scales linear in number of samples (cf.
sksurv.svm.MinlipSurvivalSVM
).next: Only compare against direct nearest neighbor according to observed time, disregarding its censoring status. Scales linear in number of samples.
verbose (bool, default: False) – Enable verbose output of solver.
timeit (False or int) – If non-zero value is provided the time it takes for optimization is measured. The given number of repetitions are performed. Results can be accessed from the
timings_
attribute.max_iter (int, optional) – Maximum number of iterations to perform. By default use solver’s default value.
- X_fit_#
Training data.
- Type
ndarray
- coef_#
Coefficients of the features in the decision function.
- Type
ndarray, shape = (n_samples,)
- n_features_in_#
Number of features seen during
fit
.- Type
int
- feature_names_in_#
Names of features seen during
fit
. Defined only when X has feature names that are all strings.- Type
ndarray of shape (n_features_in_,)
- n_iter_#
Number of iterations run by the optimization routine to fit the model.
- Type
int
References
- 1
Van Belle, V., Pelckmans, K., Suykens, J. A., & Van Huffel, S. Support Vector Machines for Survival Analysis. In Proc. of the 3rd Int. Conf. on Computational Intelligence in Medicine and Healthcare (CIMED). 1-8. 2007
- 2
Evers, L., Messow, C.M., “Sparse kernel methods for high-dimensional survival data”, Bioinformatics 24(14), 1632-8, 2008.
- 3
Van Belle, V., Pelckmans, K., Suykens, J.A., Van Huffel, S., “Survival SVM: a practical scalable algorithm”, In: Proc. of 16th European Symposium on Artificial Neural Networks, 89-94, 2008.
- __init__(solver='ecos', alpha=1.0, kernel='linear', gamma=None, degree=3, coef0=1, kernel_params=None, pairs='all', verbose=False, timeit=None, max_iter=None)[source]#
Methods
__init__
([solver, alpha, kernel, gamma, ...])fit
(X, y)Build a MINLIP survival model from training data.
get_params
([deep])Get parameters for this estimator.
predict
(X)Predict risk score of experiencing an event.
score
(X, y)Returns the concordance index of the prediction.
set_params
(**params)Set the parameters of this estimator.
- fit(X, y)[source]#
Build a MINLIP survival model from training data.
- Parameters
X (array-like, shape = (n_samples, n_features)) – Data matrix.
y (structured array, shape = (n_samples,)) – A structured array containing the binary event indicator as first field, and time of event or time of censoring as second field.
- Return type
self
- get_params(deep=True)#
Get parameters for this estimator.
- Parameters
deep (bool, default=True) – If True, will return the parameters for this estimator and contained subobjects that are estimators.
- Returns
params – Parameter names mapped to their values.
- Return type
dict
- predict(X)[source]#
Predict risk score of experiencing an event.
Higher scores indicate shorter survival (high risk), lower scores longer survival (low risk).
- Parameters
X (array-like, shape = (n_samples, n_features)) – The input samples.
- Returns
y – Predicted risk.
- Return type
ndarray, shape = (n_samples,)
- score(X, y)[source]#
Returns the concordance index of the prediction.
- Parameters
X (array-like, shape = (n_samples, n_features)) – Test samples.
y (structured array, shape = (n_samples,)) – A structured array containing the binary event indicator as first field, and time of event or time of censoring as second field.
- Returns
cindex – Estimated concordance index.
- Return type
float
- set_params(**params)#
Set the parameters of this estimator.
The method works on simple estimators as well as on nested objects (such as
Pipeline
). The latter have parameters of the form<component>__<parameter>
so that it’s possible to update each component of a nested object.- Parameters
**params (dict) – Estimator parameters.
- Returns
self – Estimator instance.
- Return type
estimator instance