twinsvm¶
Classes and functios are defined for training and testing TwinSVM classifier.
TwinSVM classifier generates two non-parallel hyperplanes. For more info, refer to the original papar. Khemchandani, R., & Chandra, S. (2007). Twin support vector machines for pattern classification. IEEE Transactions on pattern analysis and machine intelligence, 29(5), 905-910.
Motivated by the following paper, the multi-class TSVM is developed. Tomar, D., & Agarwal, S. (2015). A comparison on multi-class classification methods based on least squares twin support vector machine. Knowledge-Based Systems, 81, 131-147.
Functions
rbf_kernel(x, y, u) |
It transforms samples into higher dimension using Gaussian (RBF) kernel. |
Classes
HyperPlane() |
Its object represents a hyperplane |
MCTSVM([kernel, C, gamma]) |
Multi-class Twin Support Vector Machine (One-vs-All Scheme) |
OVO_TSVM([kernel, C1, C2, gamma]) |
Multi Class Twin Support Vector Machine (One-vs-One Scheme) |
TSVM([kernel, rect_kernel, C1, C2, gamma]) |
Twin Support Vector Machine for binary classification. |
-
class
twinsvm.TSVM(kernel='linear', rect_kernel=1, C1=1, C2=1, gamma=1)[source]¶ Bases:
sklearn.base.BaseEstimatorTwin Support Vector Machine for binary classification.
Parameters: kernel : str, optional (default=’linear’)
Type of the kernel function which is either ‘linear’ or ‘RBF’.
rect_kernel : float, optional (default=1.0)
Percentage of training samples for Rectangular kernel.
C1 : float, optional (default=1.0)
Penalty parameter of first optimization problem.
C2 : float, optional (default=1.0)
Penalty parameter of second optimization problem.
gamma : float, optional (default=1.0)
Parameter of the RBF kernel function.
Attributes
mat_C_t (array-like, shape = [n_samples, n_samples]) A matrix that contains kernel values. cls_name (str) Name of the classifier. w1 (array-like, shape=[n_features]) Weight vector of class +1’s hyperplane. b1 (float) Bias of class +1’s hyperplane. w2 (array-like, shape=[n_features]) Weight vector of class -1’s hyperplane. b2 (float) Bias of class -1’s hyperplane. Methods
fit(X_train, y_train)It fits the binary TwinSVM model according to the given training data. get_params([deep])Get parameters for this estimator. get_params_names()For retrieving the names of hyper-parameters of this classifier. predict(X_test)Performs classification on samples in X using the TwinSVM model. set_params(**params)Set the parameters of this estimator. -
get_params_names()[source]¶ For retrieving the names of hyper-parameters of this classifier.
Returns: parameters : list of str, {[‘C1’, ‘C2’], [‘C1’, ‘C2’, ‘gamma’]}
Returns the names of the hyperparameters which are same as the class’ attributes.
-
fit(X_train, y_train)[source]¶ It fits the binary TwinSVM model according to the given training data.
Parameters: X_train : array-like, shape (n_samples, n_features)
Training feature vectors, where n_samples is the number of samples and n_features is the number of features.
y_train : array-like, shape(n_samples,)
Target values or class labels.
-
-
twinsvm.rbf_kernel(x, y, u)[source]¶ It transforms samples into higher dimension using Gaussian (RBF) kernel.
Parameters: x, y : array-like, shape (n_features,)
A feature vector or sample.
u : float
Parameter of the RBF kernel function.
Returns: float
Value of kernel matrix for feature vector x and y.
-
class
twinsvm.HyperPlane[source]¶ Bases:
objectIts object represents a hyperplane
Attributes
w (array-like, shape (n_features,)) Weight vector. If the RBF kernel is used, the shape will be (n_samples,) b (float) Bias.
-
class
twinsvm.MCTSVM(kernel='linear', C=1, gamma=1)[source]¶ Bases:
sklearn.base.BaseEstimatorMulti-class Twin Support Vector Machine (One-vs-All Scheme)
Parameters: kernel : str, optional (default=’linear’)
Type of the kernel function which is either ‘linear’ or ‘RBF’.
C : float, optional (default=1.0)
Penalty parameter.
gamma : float, optional (default=1.0)
Parameter of the RBF kernel function.
Attributes
classifiers (dict) Stores an intance of HyperPlaneclass for each binary classifier.mat_D_t (list of array-like objects) Stores kernel matrix for each binary classifier. cls_name (str) Name of the classifier. Methods
fit(X_train, y_train)It fits the OVA-TwinSVM model according to the given training data. get_params([deep])Get parameters for this estimator. get_params_names()For retrieving the names of hyper-parameters of this classifier. predict(X_test)Performs classification on samples in X using the OVA-TwinSVM model. set_params(**params)Set the parameters of this estimator. -
get_params_names()[source]¶ For retrieving the names of hyper-parameters of this classifier.
Returns: parameters : list of str, {[‘C’], [‘C’, ‘gamma’]}
Returns the names of the hyperparameters which are same as the class’ attributes.
-
fit(X_train, y_train)[source]¶ It fits the OVA-TwinSVM model according to the given training data.
Parameters: X_train : array-like, shape (n_samples, n_features)
Training feature vectors, where n_samples is the number of samples and n_features is the number of features.
y_train : array-like, shape(n_samples,)
Target values or class labels.
-
-
class
twinsvm.OVO_TSVM(kernel='linear', C1=1, C2=1, gamma=1)[source]¶ Bases:
sklearn.base.BaseEstimator,sklearn.base.ClassifierMixinMulti Class Twin Support Vector Machine (One-vs-One Scheme)
The
OVO_TSVMclassifier is scikit-learn compatible, which means scikit-learn tools such as cross_val_score and GridSearchCV can be used for an instance ofOVO_TSVMParameters: kernel : str, optional (default=’linear’)
Type of the kernel function which is either ‘linear’ or ‘RBF’.
C1 : float, optional (default=1.0)
Penalty parameter of first optimization problem for each binary
TSVMclassifier.C2 : float, optional (default=1.0)
Penalty parameter of second optimization problem for each binary
TSVMclassifier.gamma : float, optional (default=1.0)
Parameter of the RBF kernel function.
Attributes
cls_name (str) Name of the classifier. bin_TSVM_models_ (list) Stores intances of each binary TSVMclassifier.Methods
fit(X, y)It fits the OVO-TwinSVM model according to the given training data. get_params([deep])Get parameters for this estimator. get_params_names()For retrieving the names of hyper-parameters of this classifier. predict(X)Performs classification on samples in X using the OVO-TwinSVM model. score(X, y[, sample_weight])Returns the mean accuracy on the given test data and labels. set_params(**params)Set the parameters of this estimator. -
get_params_names()[source]¶ For retrieving the names of hyper-parameters of this classifier.
Returns: parameters : list of str, {[‘C1’, ‘C2’], [‘C1’, ‘C2’, ‘gamma’]}
Returns the names of the hyperparameters which are same as the class’ attributes.
-
fit(X, y)[source]¶ It fits the OVO-TwinSVM model according to the given training data.
Parameters: X : array-like, shape (n_samples, n_features)
Training feature vectors, where n_samples is the number of samples and n_features is the number of features.
y : array-like, shape(n_samples,)
Target values or class labels.
Returns: self : object
-