This documentation is for scikit-learn version 0.10Other versions

Citing

If you use the software, please consider citing scikit-learn.

This page

8.24.1.2. sklearn.svm.LinearSVC

class sklearn.svm.LinearSVC(penalty='l2', loss='l2', dual=True, tol=0.0001, C=1.0, multi_class=False, fit_intercept=True, intercept_scaling=1, scale_C=False)

Linear Support Vector Classification.

Similar to SVC with parameter kernel=’linear’, but uses internally liblinear rather than libsvm, so it has more flexibility in the choice of penalties and loss functions and should be faster for huge datasets.

Parameters :

C : float, optional (default=1.0)

Penalty parameter C of the error term.

loss : string, ‘l1’ or ‘l2’ (default=’l2’)

Specifies the loss function. ‘l1’ is the hinge loss (standard SVM) while ‘l2’ is the squared hinge loss.

penalty : string, ‘l1’ or ‘l2’ (default=’l2’)

Specifies the norm used in the penalization. The ‘l2’ penalty is the standard used in SVC. The ‘l1’ leads to coef_ vectors that are sparse.

dual : bool, (default=True)

Select the algorithm to either solve the dual or primal optimization problem. Prefer dual=False when n_samples > n_features.

tol: float, optional (default=1e-4) :

Tolerance for stopping criteria

multi_class: boolean, optional (default=False) :

Perform multi-class SVM as per Cramer and Singer. If active, the options loss, penalty and dual will be ignored.

fit_intercept : boolean, optional (default=True)

Whether to calculate the intercept for this model. If set to false, no intercept will be used in calculations (e.g. data is expected to be already centered).

intercept_scaling : float, optional (default=1)

when self.fit_intercept is True, instance vector x becomes [x, self.intercept_scaling], i.e. a “synthetic” feature with constant value equals to intercept_scaling is appended to the instance vector. The intercept becomes intercept_scaling * synthetic feature weight Note! the synthetic feature weight is subject to l1/l2 regularization as all other features. To lessen the effect of regularization on synthetic feature weight (and therefore on the intercept) intercept_scaling has to be increased

scale_C : bool

Scale C with number of samples. It makes the setting of C independent of the number of samples.

See also

SVC

Notes

The underlying C implementation uses a random number generator to select features when fitting the model. It is thus not uncommon, to have slightly different results for the same input data. If that happens, try with a smaller tol parameter.

References: LIBLINEAR: A Library for Large Linear Classification

Attributes

coef_ array, shape = [n_features] if n_classes == 2 else [n_classes, n_features]

Weights asigned to the features (coefficients in the primal problem). This is only available in the case of linear kernel.

coef_ is readonly property derived from raw_coef_ that follows the internal memory layout of liblinear.

intercept_ array, shape = [1] if n_classes == 2 else [n_classes] Constants in decision function.

Methods

decision_function(X) Decision function value for X according to the trained model.
fit(X, y[, class_weight]) Fit the model according to the given training data.
fit_transform(X[, y]) Fit to data, then transform it
predict(X) Predict target values of X according to the fitted model.
score(X, y) Returns the mean accuracy on the given test data and labels.
set_params(**params) Set the parameters of the estimator.
transform(X[, threshold])
__init__(penalty='l2', loss='l2', dual=True, tol=0.0001, C=1.0, multi_class=False, fit_intercept=True, intercept_scaling=1, scale_C=False)
decision_function(X)

Decision function value for X according to the trained model.

Parameters :

X : array-like, shape = [n_samples, n_features]

Returns :

T : array-like, shape = [n_samples, n_class]

Returns the decision function of the sample for each class in the model.

fit(X, y, class_weight=None)

Fit the model according to the given training data.

Parameters :

X : array-like, shape = [n_samples, n_features]

Training vector, where n_samples in the number of samples and n_features is the number of features.

y : array-like, shape = [n_samples]

Target vector relative to X

class_weight : {dict, ‘auto’}, optional

Weights associated with classes. If not given, all classes are supposed to have weight one.

Returns :

self : object

Returns self.

fit_transform(X, y=None, **fit_params)

Fit to data, then transform it

Fits transformer to X and y with optional parameters fit_params and returns a transformed version of X.

Parameters :

X : numpy array of shape [n_samples, n_features]

Training set.

y : numpy array of shape [n_samples]

Target values.

Returns :

X_new : numpy array of shape [n_samples, n_features_new]

Transformed array.

Notes

This method just calls fit and transform consecutively, i.e., it is not an optimized implementation of fit_transform, unlike other transformers such as PCA.

predict(X)

Predict target values of X according to the fitted model.

Parameters :X : array-like, shape = [n_samples, n_features]
Returns :C : array, shape = [n_samples]
score(X, y)

Returns the mean accuracy on the given test data and labels.

Parameters :

X : array-like, shape = [n_samples, n_features]

Training set.

y : array-like, shape = [n_samples]

Labels for X.

Returns :

z : float

set_params(**params)

Set the parameters of the estimator.

The method works on simple estimators as well as on nested objects (such as pipelines). The former have parameters of the form <component>__<parameter> so that it’s possible to update each component of a nested object.

Returns :self :