sksurv.svm.HingeLossSurvivalSVM#

class sksurv.svm.HingeLossSurvivalSVM(alpha=1.0, *, solver='ecos', 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})\) time.

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:
  • alpha (float, positive, default: 1) – Weight of penalizing the hinge loss in the objective function.

  • solver ({'ecos', 'osqp'}, optional, default: 'ecos') – Which quadratic program solver to use.

  • kernel ({'linear', 'poly', 'rbf', 'sigmoid', 'cosine', 'precomputed'} or callable, default: 'linear'.) – Kernel mapping used internally. This parameter is directly passed to sklearn.metrics.pairwise.pairwise_kernels(). If kernel is a string, it must be one of the metrics in sklearn.pairwise.PAIRWISE_KERNEL_FUNCTIONS or “precomputed”. If kernel is “precomputed”, X is assumed to be a kernel matrix. Alternatively, if kernel is a callable function, it is called on each pair of instances (rows) and the resulting value recorded. The callable should take two rows from X as input and return the corresponding kernel value as a single number. This means that callables from sklearn.metrics.pairwise are not allowed, as they operate on matrices, not single samples. Use the string identifying the kernel instead.

  • gamma (float, optional, default: None) – Gamma parameter for the RBF, laplacian, polynomial, exponential chi2 and sigmoid kernels. Interpretation of the default value is left to the kernel; see the documentation for sklearn.metrics.pairwise. Ignored by other kernels.

  • degree (int, default: 3) – Degree of the polynomial kernel. Ignored by other kernels.

  • coef0 (float, optional) – Zero coefficient for polynomial and sigmoid kernels. Ignored by other kernels.

  • kernel_params (mapping of string to any, optional) – Additional parameters (keyword arguments) for kernel function passed as callable object.

  • 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.MinlipSurvivalAnalysis).

    • 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, int or None, default: None) – 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 or None, optional, default: None) – 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

__init__(alpha=1.0, *, solver='ecos', kernel='linear', gamma=None, degree=3, coef0=1, kernel_params=None, pairs='all', verbose=False, timeit=None, max_iter=None)[source]#

Methods

__init__([alpha, solver, kernel, gamma, ...])

fit(X, y)

Build a MINLIP survival model from training data.

get_metadata_routing()

Get metadata routing of this object.

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_metadata_routing()#

Get metadata routing of this object.

Please check User Guide on how the routing mechanism works.

Returns:

routing – A MetadataRequest encapsulating routing information.

Return type:

MetadataRequest

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