簡體   English   中英

MATLAB 訓練接口 LIBLINEAR

[英]MATLAB Train Interface LIBLINEAR

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 來開發模型?

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"

自發布以來,可能會有一些新的進展。 在 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM