如何在matlab中添加SVM工具箱以及初次应用

2024-05-13 19:05

1. 如何在matlab中添加SVM工具箱以及初次应用

一、因为要用到SVM,所以想先在matlab下学习一下,简短讲添加工具箱很简单:
1.1:如果是Matlab安装光盘上的工具箱,重新执行安装程序,选中即可。
1.2:如果是单独下载的工具箱,则需要把新的工具箱(以下假设工具箱名字为svm)解压到toolbox目录下,然后用addpath或者pathtool把该工具箱的路径添加到matlab的搜索路径中,
2:最后用which newtoolbox_command.m来检验是否可以访问。如果能够显示新设置的路径,则表明该工具箱可以使用了。
SVM工具箱:>> addpath('D:\Program Files\MATLAB\R2008a\toolbox\svm')
>> which svcinfo.m
D:\Program Files\MATLAB\R2008a\toolbox\svm\svcinfo.m
成功~
PS:还有一些其他方法,可以参考:http://blog.lehu.shu.edu.cn/smallworker/A31135.html
二、初次使用,采用http://zyy554221.blog.sohu.com/82115143.html中的例子,但是出现了错误信息:D:…………\toolbox\svm\qp.dll 不是有效的 Win32 应用程序,经过搜索看到有很多人出现这个问题,貌似是因为matlab版本比较高。
解决办法:1、command中输入
>> cd 'D:\Program Files\MATLAB\R2008a\toolbox\svm\Optimiser'
>> mex -v qp.c pr_loqo.c
2、出现:
 This is mex, Copyright 1984-2007 The MathWorks, Inc. 
Select a compiler: 
[1] Lcc-win32 C 2.4.1 in D:\PROGRA~1\MATLAB\R2008a\sys\lcc\bin 
[2] Microsoft Visual C++ 6.0 in D:\Program Files\Microsoft Visual Studio 
[0] None 
 
Compiler: (我选择了2),然后就出现很多东西……
3、Optimiser文件夹下看到两个文件:qp.dll.old和qp.mexw32;把qp.mexw32重命名为qp.dll覆盖svm文件夹下的qb.dll即可。
4,、然后应用例子,成功~~

如何在matlab中添加SVM工具箱以及初次应用

2. SVM在matlab中怎么实现

  SVM在matlab中实现:首先需要MATLABSVMToolbox,将其中的文件解压并命名为svm。将文件拷到E:\matlab\toolbox。打开matlab点击setpath---->addfolder,然后把工具箱文件夹添加进去就可以了。路径加进去后在file→Preferences→General的ToolboxPathCaching里点击updateToolboxPathCache更新一下。最后在matlab的命令栏中输入whichsvcoutput可以查看路径E:\matlab\toolbox\svm\svcoutput.m就可以了。

3. 如何使用MATLAB-LIBSVM

不需要安装,直接解压缩就行了。很方便。
使用方法,在README里面都写得很清楚了,其中matlab那个文件下也有README。
我在这里就我自己感兴趣的东西,列几条。我是在windows平台下的。
1) 编译
其实在windows文件夹下已经有了,也可以自己动手。
1. 运行matlab, 转到libsvm的解压目录下的matlab
2. 在matlab中输入mex -setup
接下来会选择一下东西,随意,自己看看就可以选了。
3. make
生成libsvmread.mexw32 libsvmwrite.mexw32 svmpredict.mexw32 svmtrain.mexw32 一共四个文件。
使用方法:
只要将生成的四个文件copy到一个matlab运行目录下就行了。
举个例子吧,以解压目录下的heart_scale数据为例好了。
close all
clear all
clc
[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);
至于具体的借口,还是看README吧,很清楚的。

如何使用MATLAB-LIBSVM