LIBSVM-SVDD下载与运行
题外话:终于又想起来写博客了。。。主要是今天看到别人的话,觉得自己遇到的问题不记下来,万一下一次在遇到,可能我就忘了怎么解决了。
最近想要运用SVDD算法,但是发现网上的教程比较少,或者说不太适合我这种新手。刚好今天解决了,所以写一下给像我一样的小白做个参考。
一、下载
在官网上下载https://www.csie.ntu.edu.tw/~cjlin/libsvmtools/,但是我一开始没找到,附图。libsvm和libsvm-svdd都要下载。
二、运行
2.1测试libsvm
防止出错,我想先试着运行下载的libsvm。如果你的libsvm有效,可以直接跳过2.1。
测试方法一:解压后,将libsvm文件夹中的heart_cale文件放入Windows文件夹(我下载的是libsvm-3.22),然后将matlab的当前路径设置为windows所在的路径,如下图。
依次输入如下命令:
>> [heart_scale_label, heart_scale_inst] = libsvmread('heart_scale');
>> model = svmtrain(heart_scale_label, heart_scale_inst, '-c 1 -g 0.07');
>> [predict_label, accuracy, dec_values] = svmpredict(heart_scale_label,heart_scale_inst, model);
如果成功的话,结果如图:
测试方法二:运行make.m文件,出现sucess,如下图。
可试着输入svmtrain,结果中的-s没有5、6、7.如下图。(与后面的SVDD测试有关)
2.2 测试LIBSVM-SVDD
成功运行libsvm之后,只需要进行下面两个步骤,就可以运行svdd了。
- 将libsvm-svdd的matlab文件夹中的文件svmtrain.c替换libsvm的matlab文件夹中的同名文件;
- 将libsvm-svdd中的svm.cpp、svm.h、svm-train.c这3个文件替换libsvm文件夹下的相同文件。
此时再次运行make.m文件,仍然成功,而且输入svmtrain,发现-s显示了5、6、7.如下图。就这样能够使用libsvm-svdd啦!