matlabmachine-learningsvmliblinear

MATLAB Train Interface LIBLINEAR


In the LIBLINEAR docs, we have

matlab> model = train(training_label_vector, training_instance_matrix [,'liblinear_options', 'col']);

        -training_label_vector:
            An m by 1 vector of training labels. (type must be double)
        -training_instance_matrix:
            An m by n matrix of m training instances with n features.
            It must be a sparse matrix. (type must be double)
        -liblinear_options:
            A string of training options in the same format as that of LIBLINEAR.
        -col:
            if 'col' is set, each column of training_instance_matrix is a data instance. Otherwise each row is a data instance.

However, even after reading the homepage and looking at the docs, I can't find out what the options are for liblinear_options.

Is this listed somewhere but I am clearly missing it?

Futhermore, since I am unable to find liblinear_options listed anywhere, I am stuck with the following question:

Does the train method use a linear SVM to develop a model?


Solution

  • Liblinear is a linear classifier. Besides SVM, it also included logistic regression based classifier. And yes, as its name indicates, the linear kernel is applied in SVM.

    You may check their github page for the liblinear_options. I copied them here as well:

    "liblinear_options:\n"
            "-s type : set type of solver (default 1)\n"
            "        0 -- L2-regularized logistic regression (primal)\n"
            "        1 -- L2-regularized L2-loss support vector classification (dual)\n"        
            "        2 -- L2-regularized L2-loss support vector classification (primal)\n"
            "        3 -- L2-regularized L1-loss support vector classification (dual)\n"
            "        4 -- multi-class support vector classification by Crammer and Singer\n"
            "        5 -- L1-regularized L2-loss support vector classification\n"
            "        6 -- L1-regularized logistic regression\n"
            "        7 -- L2-regularized logistic regression (dual)\n"
            "-c cost : set the parameter C (default 1)\n"
            "-e epsilon : set tolerance of termination criterion\n"
            "        -s 0 and 2\n" 
            "                |f'(w)|_2 <= eps*min(pos,neg)/l*|f'(w0)|_2,\n" 
            "                where f is the primal function and pos/neg are # of\n" 
            "                positive/negative data (default 0.01)\n"
            "        -s 1, 3, 4 and 7\n"
            "                Dual maximal violation <= eps; similar to libsvm (default 0.1)\n"
            "        -s 5 and 6\n"
            "                |f'(w)|_1 <= eps*min(pos,neg)/l*|f'(w0)|_1,\n"
            "                where f is the primal function (default 0.01)\n"
            "-B bias : if bias >= 0, instance x becomes [x; bias]; if < 0, no bias term added (default -1)\n"
            "-wi weight: weights adjust the parameter C of different classes (see README for details)\n"
            "-v n: n-fold cross validation mode\n"
            "-q : quiet mode (no outputs)\n"