【问题标题】:MATLAB Train Interface LIBLINEARMATLAB 训练接口 LIBLINEAR
【发布时间】:2014-02-15 21:11:33
【问题描述】:

LIBLINEAR docs,我们有

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 开发模型?

【问题讨论】:

    标签: matlab machine-learning svm liblinear


    【解决方案1】:

    自发布以来可能有一些新的发展。在 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
    

    【讨论】:

    【解决方案2】:

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

    您可以查看他们的github page 以获得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"
    

    【讨论】:

    猜你喜欢
    • 2013-02-13
    • 1970-01-01
    • 2015-04-12
    • 2013-04-04
    • 2010-11-20
    • 1970-01-01
    • 2013-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多