-
Notifications
You must be signed in to change notification settings - Fork 19
[svm] LIBSVM
Myungchul Shin edited this page Dec 30, 2017
·
3 revisions
svm_train()
의 옵션에서 -c, -n에 대한 간단한 설명은 이 문서 참조
-
C-SVM
- 일반적인 multi-class classifier, C는 penalty를 의미하고 큰값으로 설정할수록 hyperplane이 더 복잡해짐
대신에 classification에서 새로운 샘플에 대한 판별정확률은 더 떨어질수도 있음.
C를 작게잡으면 좀더 간결한 hyperplane을 구성.
( penalty를 크게 잡을수록 오류가 되는 point에 penalty를 줘서 좀더 복잡하게 경계를 계산한다는 의미이다 )
-c 옵션에 이 값을 설정하면 된다.
- 일반적인 multi-class classifier, C는 penalty를 의미하고 큰값으로 설정할수록 hyperplane이 더 복잡해짐
-
nu-SVM
- 이것도 역시 multi-class classifier
C를 다른 수식으로 표현한다고 생각하면 되는데, error를 얼만큼 용인해서(soft-margin) 만들 것인가에 대한 비율을 설정
-n 옵션에 설정하면 된다. 디폴트는 0.5(이 비율만큼 오류를 허용하겠다는 의미)
error를 용인하지 않을수록 더 복잡한 경계가 만들어질 것이고, 용인할수록 더 간결한 경계가 만들어질 것이다.
C값과 비교해보면, C값이 큰것은 n값이 작은것과 비슷한 개념이다.
-c 옵션을 추가해서 사용할수도 있음.
- 이것도 역시 multi-class classifier
좀더 자세한 설명은 이 문서 참조
"""
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)
"""
-
NB-SVM
- https://github.com/mesnilgr/nbsvm
- svm의 feature로 unigram, bigram의 NB log count ratio를 사용하면 좀더 robust한 성능을 낼 수 있음.
-
thundersvm
- https://github.com/zeyiwen/thundersvm/blob/master/README.md
- gpu, multi cpu 사용 가능
- libsvm과 동일한 interface, 두배 정도 빠른 성능