http://blog.sina.com.cn/s/blog_5980835e0100dp52.html
看了网上很多帖子和博客,自己琢磨了很久到现在才弄明白怎么用libsvm来做预测。因为网上的帖子一般都是转来转去的,所以第一个人感觉这样写详细了,之后的人不管懂不懂照搬不误,这就苦了我们笨的人啦。不过我研究了一天,终于有点眉目,写点体会,应该会比较详细吧,至少是过来人碰到的问题。
p.s.这里暂且不讨论分类问题,其实分类比预测简单,下载下来的libsvm-2.88早已有easy.py可以直接拿来做,所以简单,一步到位,之后如果有空就写写!
用libsvm做回归的人有的疑惑大致有这些:
1,怎么把数据整理成规定格式,我以前的帖子写了,只要用一个带有宏的excel就能搞定,话不多说。
2,有人会说svm就打几条命令就能得出结果
(
svm-train -s 3 -t 2 -c 1024.0 -g 0.0009765625 -p 0.0009765625 data.txt
svm-predict test.txt data.txt.model out.txt
),干嘛还要下载python和gnuplot呢,其实了解svm理论的知道最核心的问题就是参数的选择,你不可能每次都很狗屎的猜到很好的参数,做出很好的预测,所以只能用这两个软件来寻参。
3,怎么寻参?核心的语句就这么一句,把dos框的路径调到C:\Python26,再键入
(python C:\libsvm-2.88\python\gridregression.py -svmtrain C:\libsvm-2.88\windows\svm-train.exe -gnuplot C:\gnuplot\bin\pgnuplot.exe -log2c -10,10,1 -log2g -10,10,1 -log2p -10,10,1 -v 10 -s 3 -t 2 C:\libsvm-2.88\python\data.txt > gridregression_data.parameter)能把这句执行下去,就算等老半天也是值得的。(下载的三个软件的路径调整问题下面补充,我是全部放在C盘的,省事。。。)
4,有人会问含有gridregression.py的以上语句不能执行老是出错,这是什么原因呢?我也闷了半天,后来才知道gridregression.py 文件在台湾人的libsvm-2.88包里面是没有的,所以要自己去下载,要来后放在C:\libsvm-2.88\python里面就可以了。
5,回归会像分类那样调用easy.py(连grid.py都不需)一步到位麽?不是的这是有区别的,当你做完步骤四时,到C:\Python26中打开文件 gridregression_data.parameter,里面有你要的参数c,g,p还有一个mse是没有用的,不用管他。
6,最后把dos框的路径调到C:\libsvm-2.88\windows,再执行
svm-train -s 3 -t 2 -c 1024.0 -g 0.0009765625 -p 0.0009765625 data.txt
svm-predict test.txt data.txt.model out.txt
搞定了,结果在C:\libsvm-2.88\windows的out.txt中!
7,忘了,三个软件长什么样和住哪里没有和你们说清楚,操之过急了哈。分别在
C:\libsvm-2.88
C:\Python26
C:\gnuplot
这样应该详细了吧。。。
最后附上步骤3中的补充,其实还是想自己写,因为这样清楚,不过没力气了,转一下吧,网上帖子稍有不同,不过我选了一篇很清楚的:
用户403664 2013-12-19 10:26