# SVMMaj R package

## Introduction

The main features of this package are: implementation of the **SVM-Maj** majorization algorithm for SVMs, handling of nonlinearity through splines and kernels, the ability to handle several error functions (among other the classic hinge, quadratic hinge and Huber hinge error).

## How to use this package

The main functions of the package are `svmmaj`

, which estimates the SVM, and `svmmajcrossval`

, which performs a grid search of *k*-fold cross validations using **SVM-Maj** to find the combination of input values, (such as `lambda`

and `degree`

in the case of a polynomial kernel) giving the best prediction performance.

The former function requires the `n x k`

attribute matrix `X`

and the `n x 1`

vector `y`

with class labels. Apart from the data objects, other parameter input values can be given as input to tune the model: - `lambda`

, - `hinge`

, - `weights.obs`

, - `scale`

, and - parameters for nonlinearities and settings of the algorithm itself.

For example,

`svmmaj(X, y, lambda = 2, hinge = "quadratic", scale = "interval")`

runs the SVM model with `lambda = 2`

, using a quadratic hinge and for each attribute, the values are scaled to the interval [0,1]. The function `svmmajcrossval`

uses the same parameter input values and additionally the parameters to be used as grid points of the *k*-fold cross validation. These parameters should be given in the list object `search.grid`

, e.g.,

`svmmajcrossval(X, y, search.grid = list(lambda = c(1, 2, 4)))`