Contents

6.1.2. scikits.learn.svm.LinearSVC

class scikits.learn.svm.LinearSVC(penalty='l2', loss='l2', dual=True, eps=0.0001, C=1.0, multi_class=False, fit_intercept=True, intercept_scaling=1)

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 :

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

Specifies the loss function. With ‘l1’ it is the standard SVM loss (a.k.a. hinge Loss) while with ‘l2’ it is the squared loss. (a.k.a. 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.

eps: float, optional :

precision for stopping criteria

multi_class: boolean, optional :

perform multi-class SVM by Cramer and Singer. If active, options loss, penalty and dual will be ignored.

intercept_scaling : float, 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

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 eps parameter.

References

LIBLINEAR – A Library for Large Linear Classification http://www.csie.ntu.edu.tw/~cjlin/liblinear/

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.
intercept_ array, shape = [1] if n_classes == 2 else [n_classes] Constants in decision function.

Methods

decision_function(X) Return the decision function of X according to the trained
fit(X, y[, class_weight]) Fit the model according to the given training data and parameters.
predict(X) Predict target values of X according to the fitted model.
predict_proba(T)
score(X, y) Returns the mean error rate on the given test data and labels.
transform(X[, threshold])
__init__(penalty='l2', loss='l2', dual=True, eps=0.0001, C=1.0, multi_class=False, fit_intercept=True, intercept_scaling=1)
decision_function(X)

Return the decision function of 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={}, **params)

Fit the model according to the given training data and parameters.

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 , {class_label

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

Returns :

self : object

Returns self.

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 error rate 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