2

LIBLINEAR 文档中,我们有

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.

但是,即使在阅读主页并查看文档之后,我也无法找出liblinear_options.

这是否在某处列出但我显然错过了它?

此外,由于我无法在liblinear_options任何地方找到列出的内容,因此我遇到了以下问题:

train方法是否使用线性 SVM 来开发模型?

4

2 回答 2

4

Liblinear是一个线性分类器。除了 SVM,它还包括基于逻辑回归的分类器。是的,顾名思义,线性内核应用于 SVM。

您可以查看他们的github 页面以获取liblinear_options. 我也在这里复制了它们:

"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"
于 2014-01-25T01:00:02.687 回答
0

自发布以来可能会有一些新的发展。在 matlab 提示符下运行 train 将为您提供所有选项。至少在 R2020b 上使用我刚刚下载的 liblinear 版本。

>> train
Usage: model = train(training_label_vector, training_instance_matrix, 'liblinear_options', 'col');
liblinear_options:
-s type : set type of solver (default 1)
  for multi-class classification
     0 -- L2-regularized logistic regression (primal)
     1 -- L2-regularized L2-loss support vector classification (dual)
     2 -- L2-regularized L2-loss support vector classification (primal)
     3 -- L2-regularized L1-loss support vector classification (dual)
     4 -- support vector classification by Crammer and Singer
     5 -- L1-regularized L2-loss support vector classification
     6 -- L1-regularized logistic regression
     7 -- L2-regularized logistic regression (dual)
  for regression
    11 -- L2-regularized L2-loss support vector regression (primal)
    12 -- L2-regularized L2-loss support vector regression (dual)
    13 -- L2-regularized L1-loss support vector regression (dual)
  for outlier detection
    21 -- one-class support vector machine (dual)
-c cost : set the parameter C (default 1)
-p epsilon : set the epsilon in loss function of SVR (default 0.1)
-n nu : set the parameter nu of one-class SVM (default 0.5)
-e epsilon : set tolerance of termination criterion
    -s 0 and 2
        |f'(w)|_2 <= eps*min(pos,neg)/l*|f'(w0)|_2,
        where f is the primal function and pos/neg are # of
        positive/negative data (default 0.01)
    -s 11
        |f'(w)|_2 <= eps*|f'(w0)|_2 (default 0.0001)
    -s 1, 3, 4, 7, and 21
        Dual maximal violation <= eps; similar to libsvm (default 0.1 except 0.01 for -s 21)
    -s 5 and 6
        |f'(w)|_1 <= eps*min(pos,neg)/l*|f'(w0)|_1,
        where f is the primal function (default 0.01)
    -s 12 and 13
        |f'(alpha)|_1 <= eps |f'(alpha0)|,
        where f is the dual function (default 0.1)
-B bias : if bias >= 0, instance x becomes [x; bias]; if < 0, no bias term added (default -1)
-R : not regularize the bias; must with -B 1 to have the bias; DON'T use this unless you know what it is
    (for -s 0, 2, 5, 6, 11)
-wi weight: weights adjust the parameter C of different classes (see README for details)
-v n: n-fold cross validation mode
-C : find parameters (C for -s 0, 2 and C, p for -s 11)
-q : quiet mode (no outputs)
col:
    if 'col' is setted, training_instance_matrix is parsed in column format, otherwise is in row format
于 2021-02-16T11:33:55.813 回答