matlab中安装libsvm3.21和使用

来源:互联网 发布:良心手游推荐知乎 编辑:程序博客网 时间:2024/06/04 17:50

matlab中安装libsvm3.21和使用

安装和测试环境:win7 64位,matlab2014b,vs2013。

一、生成matlab中使用的文件

  • 在libsvm官方网站下载安装包
  • 解压该文件,在matlab中包含解压后的文件夹及子文件夹
  • 设置当前工作目录为libsvm-3.21,输入命令mex -setup,之后会让你选择编译器什么的,自己看着选择就好了。
  • 上一步成功后,设置当前工作目录为libsvm-3.21/matlab,输入命令make
  • 之前的步骤都是为了生成在matlab中使用的相应文件:“libsvmread.mexw64”,”libsvmwrite.mexw64”,”svmtrain.mexw64”, “svmpredict.mexw64”。在路径libsvm-3.21/matlab下面可以找到。

二、在matlab使用生成的相应文件

在完成了生成相应文件的步骤后,就可以删除刚才所加到包含路径中的几个文件夹了,只需要保留生成的这四个文件就可以了,为了测试是否可用,把libsvm-3.21文件加下的heart_scale也保留下来。接下来就是将这些添加到matlab中。

  • 把生成的四个文件放在一个文件夹中(如libsvm3.21),把这个文件夹添加到包含路径中。就可以使用了。但是为了和matlab中的svmtrain区分,可以将生成的文件中的svmtrain.mexw64、svmpredict.mexw64名字分别更改为libsvmtrain.mexw64、libsvmpredict.mexw64。
  • 测试:将工作目录更改到测试文件heart_scale所在的文件夹下,在命令行窗口中输入一下命令
[heart_scale_label, heart_scale_inst] = libsvmread('heart_scale');model = libsvmtrain(heart_scale_label, heart_scale_inst, '-c 1 -g 0.07');[predict_label, accuracy, dec_values] = libsvmpredict(heart_scale_label, heart_scale_inst, model);

结果为

optimization finished, #iter = 134nu = 0.433785obj = -101.855060, rho = 0.426412nSV = 130, nBSV = 107Total nSV = 130Accuracy = 86.6667% (234/270) (classification)

三、注意

其实在64的matlab下,可以省略第一步生成相应文件的步骤,在官网下载的安装包中已经有了一个windows文件夹,里面已经包含了需要生成的相应文件,可以直接后面的步骤。
windows32下需要所有步骤,生成的文件的后缀名是‘.mexw32’。
另外,如果不进行第二个步骤,不删除第一个步骤中的包含路径的话,在最终使用libsvmpredict的时候,结果除了accuracy 会返回更多的参数。

0 0