||
svm理解:
LSSVM:
最小二乘支持向量机(Least squares support vector Maehine,LSSVM)是SVM的一种变体,把问题转化成对一个
线性方程求解,所需计算资源少,具有较高的准确率。
~~~~~~~~~~~~~~~~~~~~~~~~~cut:引用别人的话~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
libsvm 工具箱和 lssvm工具箱的区别:
答:libsvm工具箱是用 SMO算法来求解 svm模型中的那个最优化问题的解。
lssvm工具箱是用最小二乘算法来求解 svm模型中的那个最优化问题的解。
这就是libsvm 工具箱和 lssvm工具箱的区别
PS:附: MATLAB自带的svm实现函数与libsvm差别小议:
1 MATLAB自带的svm实现函数仅有的模型是C-SVC(C-support vector classification); 而libsvm工具箱有C-SVC(C-support vector classification),nu-SVC(nu-support vector classification),one-class SVM(distribution estimation),epsilon-SVR(epsilon-support vector regression),nu-SVR(nu-support vector regression)等多种模型可供使用。
2 MATLAB自带的svm实现函数仅支持分类问题,不支持回归问题;而libsvm不仅支持分类问题,亦支持回归问题。
3 MATLAB自带的svm实现函数仅支持二分类问题,多分类问题需按照多分类的相应算法编程实现;而libsvm采用1v1算法支持多分类。
4 MATLAB自带的svm实现函数采用RBF核函数时无法调节核函数的参数gamma,貌似仅能用默认的;而libsvm可以进行该参数的调节。
5 libsvm中的二次规划问题的解决算法是SMO;而MATLAB自带的svm实现函数中二次规划问题的解法有三种可以选择:经典二次方法;SMO;最小二乘。(这个是我目前发现的MATLAB自带的svm实现函数唯一的优点~)
在以上的一些对比下,我个人建议目前svm的实现还是使用libsvm(这个应该是目前最好用的svm工具箱),当然MATLAB自带的svm实现函数对于简单问题也可使用,MATLAB自带的svm实现函数可能会在更加新的版本里面进行完善,我也曾尝试用MATLAB自带的svm实现函数来进行重新封装实现libsvm中的所有功能但工作量有些大~
~~~~~~~~~~~~~~~~~~~~~~~cut:引用别人的话~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
可以参考Training ν-Support Vector Regression- Theory and Algorithms.pdf
to do list:
ARIMA一SVM
关于在matlab中适用libsvm:
http://blog.sina.com.cn/s/blog_6a41348f0101ep7w.html
在R中使用的博文:
http://blog.sina.com.cn/s/blog_6ab063770102vwup.html
R 中svm的参数
decision.values = TRUE,probability = T
可以看到,两两组合有k(k-1)个分类器,第一行投票setosa、setosa、versicolor,所以概率上是setosa很高
setosa/versicolor setosa/virginica versicolor/virginica | setosa versicolor virginica | ||||||
1 1.1961523 1.0917574 0.67088100 | 1 0.979858480 0.011735539 0.008405980 | ||||||
2 1.0646207 1.0561852 0.84835178 | 2 0.972122627 0.018875660 0.009001713 | ||||||
3 1.1808415 1.0745422 0.64397982 | 3 0.978531389 0.012386896 0.009081715 | ||||||
4 1.1106992 1.0530122 0.67820410 | 4 0.974306386 0.015938338 0.009755276 | ||||||
5 1.1853301 1.0943138 0.55874054 | 5 0.979000412 0.012070757 0.008928831 | ||||||
6 1.0811618 1.0943843 0.55384418 | 6 0.973242016 0.017453410 0.009304574 | ||||||
7 1.1448311 1.0392875 0.56804730 | 7 0.975160289 0.014021169 0.010818542 | ||||||
8 1.1937271 1.0845292 0.72977748 | 8 0.979735842 0.011881315 0.008382843 | ||||||
9 0.9995967 1.0313068 0.59223506 | 9 0.965043725 0.023491575 0.011464700 |
使用tune.svm调试参数cost,和gamma:
tmp_c <- -2:3
Cs = 10^(tmp_c)
gm = 10^(tmp_c-2)
tc <- tune.control(cross = 5)
prioir_svm <- tune.svm(f~.,data=train_svm, cost = Cs,gamma = gm,
tunecontrol = tc)
用于阅读的参考文献
A Practical Guide to Support Vector Classification.pdf
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-5-23 19:42
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社