Skip to content

[svm] LIBSVM

Myungchul Shin edited this page Dec 30, 2017 · 3 revisions

libsvm

svm_train()의 옵션에서 -c, -n에 대한 간단한 설명은 이 문서 참조

  • C-SVM

    • 일반적인 multi-class classifier, C는 penalty를 의미하고 큰값으로 설정할수록 hyperplane이 더 복잡해짐
      대신에 classification에서 새로운 샘플에 대한 판별정확률은 더 떨어질수도 있음.
      C를 작게잡으면 좀더 간결한 hyperplane을 구성.
      ( penalty를 크게 잡을수록 오류가 되는 point에 penalty를 줘서 좀더 복잡하게 경계를 계산한다는 의미이다 )
      -c 옵션에 이 값을 설정하면 된다.
  • nu-SVM

    • 이것도 역시 multi-class classifier
      C를 다른 수식으로 표현한다고 생각하면 되는데, error를 얼만큼 용인해서(soft-margin) 만들 것인가에 대한 비율을 설정
      -n 옵션에 설정하면 된다. 디폴트는 0.5(이 비율만큼 오류를 허용하겠다는 의미)
      error를 용인하지 않을수록 더 복잡한 경계가 만들어질 것이고, 용인할수록 더 간결한 경계가 만들어질 것이다.
      C값과 비교해보면, C값이 큰것은 n값이 작은것과 비슷한 개념이다.
      -c 옵션을 추가해서 사용할수도 있음.

좀더 자세한 설명은 이 문서 참조

"""
    svm_train(y, x [, options]) -> model | ACC | MSE 
    svm_train(prob [, options]) -> model | ACC | MSE 
    svm_train(prob, param) -> model | ACC| MSE 

    Train an SVM model from data (y, x) or an svm_problem prob using
    'options' or an svm_parameter param. 
    If '-v' is specified in 'options' (i.e., cross validation)
    either accuracy (ACC) or mean-squared error (MSE) is returned.
    options:
        -s svm_type : set type of SVM (default 0)
            0 -- C-SVC      (multi-class classification)
            1 -- nu-SVC     (multi-class classification)
            2 -- one-class SVM
            3 -- epsilon-SVR    (regression)
            4 -- nu-SVR     (regression)
        -t kernel_type : set type of kernel function (default 2)
            0 -- linear: u'*v
            1 -- polynomial: (gamma*u'*v + coef0)^degree
            2 -- radial basis function: exp(-gamma*|u-v|^2)
            3 -- sigmoid: tanh(gamma*u'*v + coef0)
            4 -- precomputed kernel (kernel values in training_set_file)
        -d degree : set degree in kernel function (default 3)
        -g gamma : set gamma in kernel function (default 1/num_features)
        -r coef0 : set coef0 in kernel function (default 0)
        -c cost : set the parameter C of C-SVC, epsilon-SVR, and nu-SVR (default 1)
        -n nu : set the parameter nu of nu-SVC, one-class SVM, and nu-SVR (default 0.5)
        -p epsilon : set the epsilon in loss function of epsilon-SVR (default 0.1)
        -m cachesize : set cache memory size in MB (default 100)
        -e epsilon : set tolerance of termination criterion (default 0.001)
        -h shrinking : whether to use the shrinking heuristics, 0 or 1 (default 1)
        -b probability_estimates : whether to train a SVC or SVR model for probability estimates, 0 or 1 (default 0)
        -wi weight : set the parameter C of class i to weight*C, for C-SVC (default 1)
        -v n: n-fold cross validation mode
        -q : quiet mode (no outputs)
"""
Clone this wiki locally