libsvm安装教程matlab中使用(详细版)

合集下载

Matlab安装使用libsvm

Matlab安装使用libsvm

Would you like mex to locate installed compilers [y]/n?n %这次是选择编译器,输入n,选择自定义的编译器
出现以下选项(因电脑而异)
Select a compiler:
[1] Intel C++ 11.1 (with Microsoft Visual C++ 2008 SP1 linker)
Accuracy = 86.6667% (234/270) (classification)% done
如果运行正常并生成了model这个结构体(其中保存了所有的支持向量及其系数),那么说明 libsvm和matlab 之间的接口已经完全配置成功。
注意:
1. matlab自带了C编译器Lcc-win32C,但是libsvm原始版本是C++实现的,因此需要C++的编译器来编译,这就是不适用matlab默认编译器而选择其他C++编译器的原因。
[2] Intel Visual Fortran 11.1 (with Microsoft Visual C++ 2008 SP1 linker)
[3] Intel Visual Fortran 11.1 (with Microsoft Visual C++ 2008 Shell linker)
Matlab安装使用libsvm
一.下载libsvm
.tw/~cjlin/libsvm/
在libsvm的网站上下载 libsvm-3.12.zip文件,解压后放在任意目录下,最好放在MATLAB工具箱中,比如 C:\Program Files\MATLAB\R2011a\toolbox\libsvm-3.12下。

Matlab下libsvm的配置使用【转】

Matlab下libsvm的配置使用【转】

Matlab下libsvm的配置使⽤【转】LIBSVM是⼀个由台湾⼤学林智仁(Lin Chih-Jen)教授等开发的SVM模式识别与回归的软件包,使⽤简单,功能强⼤,能够在matlab中使⽤。

⼀、安装1.下载在LIBSVM的主页上下载最新版本的软件包(libsvm-3.20),并解压到合适⽬录中。

2.编译如果你使⽤的是64位的操作的系统和Matlab,那么不需要进⾏编译步骤,因为⾃带软件包中已经包含有64位编译好的版本:libsvmread.mexw64、libsvmwrite.mexw64、svmtrain.mexw64、svmpredict.mexw64。

否则,需要⾃⼰编译⼆进制⽂件。

⾸先在matlab中进⼊LIBSVM根⽬录下的matlab⽬录(如C:\libsvm-3.20\matlab),在命令窗⼝输⼊>>mex -setup然后Matlab会提⽰你选择编译mex⽂件的C/C++编译器,就选择⼀个已安装的编译器。

之后Matlab会提⽰确认选择的编译器,输⼊y进⾏确认。

然后可以输⼊以下命令进⾏编译。

>>make注意,Matlab或VC版本过低可能会导致编译失败,建议使⽤最新的版本。

编译成功后,当前⽬录下会出现若⼲个后缀为mexw64(64位系统)或mexw32(32位系统)的⽂件。

3.重命名(可选,但建议执⾏)编译完成后,在当前⽬录下回出现svmtrain.mexw64、svmpredict.mexw64(64位系统)或者svmtrain.mexw32、svmpredict.mexw32(32位系统)这两个⽂件,把⽂件名svmtrain和svmpredict相应改成libsvmtrain和libsvmpredict。

这是因为Matlab中⾃带有SVM的⼯具箱,⽽且其函数名字就是svmtrain和svmpredict,和LIBSVM默认的名字⼀样,在实际使⽤的时候有时会产⽣⼀定的问题,⽐如想调⽤LIBSVM的变成了调⽤Matlab SVM。

LibLinear(SVM包)的MATLAB安装

LibLinear(SVM包)的MATLAB安装

LibLinear(SVM包)的MATLAB安装1 LIBSVM介绍LIBSVM是众所周知的⽀持向量机分类⼯具包(),运⽤⽅便简单,其中的核函数()可以⾃⼰定义也可以默认。

但是对⼀些⼤数据来说,有没有⾮线性映射,他们的性能差不多。

如果不使⽤核,我们可以⽤线性分类或者回归来训练⼀个更⼤的数据集。

这些数据往往具有⾮常⾼维的特征,例如⽂本分类Document classification。

所以LIBSVM就诞⽣了。

关于的详细介绍及其⽐较可以参见链接:2 的MATLAB安装步骤我使⽤的是最新版本liblinear1.95,MATLAB是R2012b.(2)解压到相应的⽂件夹,在MATLAB中设置⼦路径,打开matlab,点击File->SetPath->Add withSubfolders,找到liblinear-1.95\matlab 所在⽂件夹,点击save,点击close。

(3)在matlab的command window中输⼊mex -setup,选择合适的编译器,具体如下:上图最后的“y”是⾃⼰⼿动输⼊进去的,表⽰同意选择编译⽅式。

(4)输⼊“2”作为编译环境确认,输⼊“y”结果图如下;(5)在matlab的command window中输⼊make,如果正确的话,会如下所⽰:同时,可以看到在当前⽬录下⽣成下图中的⽂件特别是⽣成train.mexw32和predict.mexw32.到这⼀步,Liblinear安装成功。

3 在matlab中测试Liblinear是否能⽤model = train(svm_category', sparseTrainMatrix)[output_label, accuracy] = predict(svm_category', sparseTestMatrix, model);train中参数:svm_category'为列向量,表⽰training set的class label,假设为n维sparseTrainMatrix为n*m维矩阵,n表⽰training set中样本的个数,m表⽰每个样本中feature的个数model的内容为predict中参数和train中取的类似,本例中直接把training set作为testing set重新预测了⼀下,model为train中输出的结构体output_label输出的是testing set的class label的预测值accuracy是预测准确度到此结束。

libsvm安装教学.ppt

libsvm安装教学.ppt
Step2.解壓縮到C槽。 Step3.將tools資料夾內的grid.py及easy.py複製到
windows資料夾下 Step4.確認使用的程式路徑是否正確(請參考範例圖
片)
2020/4/6
16
LibSVM安裝範例圖片說明(1/3)
解壓縮後的資 料夾(路徑不能
有中文字)
下載的 壓縮檔
2020/4/6
LibSVM安裝
2020/4/6
1
目錄
LibSVM安裝
◦ Python ◦ Gnuplot ◦ LibSVM
2020/4/6
2
Python安裝
Step1.到 /download/ 下載
Step2.執行下載的安裝檔 Step3.一直下一步到安裝完畢
定兩個exe的路徑。(.py檔內不能有 中文字。)
2020/4/6
21
LibSVM程式路徑範例說明(3/4)
開啟easy.py
easy.py所在的資 料夾路徑
2020/4/6
選這個選項開啟 (必需先安裝
python才會出現)
22
LibSVM程式路徑範例說明(4/4)
檢查easy.py所使用的程式路徑
17
LibSVM安裝範例圖片說明(2/3)
grid.py和 easy.py所在的 資料夾路徑
將grid.py跟 easy.py複製下

2020/4/6
18
LibSVM安裝範例圖片說明(3/3)
grid.py和 easy.py貼上後 的資料夾路徑
grid.py跟 easy.py貼上
2020/4/6
Step2.將下載的gp400win32.zip解壓縮到 c:\tmp 這樣就準備好了。

(1)matlab中SVM工具箱的使用方法

(1)matlab中SVM工具箱的使用方法

包已经解压到文件夹F:\R2009b\toolbox\svmmatlab中SVM工具箱的使用方法1,下载SVM工具箱:/faculty/chzheng/bishe/indexfiles/indexl.htm 2,安装到matlab文件夹中1)将下载的SVM工具箱的文件夹放在\matlab71\toolbox\下2)打开matlab->File->Set Path中添加SVM工具箱的文件夹现在,就成功的添加成功了.可以测试一下:在matlab中输入which svcoutput 回车,如果可以正确显示路径,就证明添加成功了,例如:C:\Program Files\MATLAB71\toolbox\svm\svcoutput.m3,用SVM做分类的使用方法1)在matlab中输入必要的参数:X,Y,ker,C,p1,p2我做的测试中取的数据为:N = 50;n=2*N;randn('state',6);x1 = randn(2,N)y1 = ones(1,N);x2 = 5+randn(2,N);y2 = -ones(1,N);figure;plot(x1(1,:),x1(2,:),'bx',x2(1,:),x2(2,:),'k.');axis([-3 8 -3 8]);title('C-SVC')hold on;X1 = [x1,x2];Y1 = [y1,y2];X=X1';Y=Y1';其中,X是100*2的矩阵,Y是100*1的矩阵C=Inf;ker='linear';global p1 p2p1=3;p2=1;然后,在matlab中输入:[nsv alpha bias] = svc(X,Y,ker,C),回车之后,会显示:Support Vector Classification_____________________________Constructing ...Optimising ...Execution time: 1.9 secondsStatus : OPTIMAL_SOLUTION|w0|^2 : 0.418414Margin : 3.091912Sum alpha : 0.418414Support Vectors : 3 (3.0%)nsv =3alpha =0.00000.00000.00000.00000.00002)输入预测函数,可以得到与预想的分类结果进行比较.输入:predictedY = svcoutput(X,Y,X,ker,alpha,bias),回车后得到:predictedY =1111111113)画图输入:svcplot(X,Y,ker,alpha,bias),回车补充:X和Y为数据,m*n:m为样本数,n为特征向量数比如:取20组训练数据X,10组有故障,10组无故障的,每个训练数据有13个特征参数,则m=20,n=13Y为20*1的矩阵,其中,10组为1,10组为-1.对于测试数据中,如果取6组测试数据,3组有故障,3组无故障的,则m=6,n=13Y中,m=6,n=1/SV M_soft.htmlSVM - Support Vector MachinesSoftwareTrain support vector machine classifier/access/helpdesk/help/toolbox/bioinfo/ref/svmtrain.html一些问题???????1.今天我在使用SVM通用工具箱对眼电的信号数据进行分类时出现如下错误:Support Vector Classification_____________________________Constructing ...Optimising ...??? Dimension error (arg 3 and later).Error in ==> svc at 60[alpha lambda how] = qp(H, c, A, b, vlb, vub, x0, neqcstr);不知道是什么原因?答:今天上午终于找到出现这一错误的原因:它并不是SVM程序的问题,是我在整理样本时,把参数需要的样本行列颠倒所致。

matlab2019a加装libsvm指南

matlab2019a加装libsvm指南

Matlab 2019a Libsvm3.23 MW_MINGW64_6.3环境建立指南安装libsvm过程很漫长,虽然参考了网上各种指南,发现在国内的网络下安装MW_MINGW64太痛苦了。

这里总结下,供大家参考本人PC系统Windows7 64bit,matlab安装的2019a,libsvm安装的version3.231.首先需要下载libsvm包:2.将libsvm3.23解压到matlab/toolbox目录下:3.运行matlab,在主页(home)的设置路径(set path)中添加libsvm及子文件夹:4.将当前路径设置到libsvm 3.2.2/matlab 后,在命令行窗口运行mex -setup5.如果提示找不到编译器,请安装MinGW64 Compiler (C++),注意:必须6.3版本,其他都有问题。

6.配置环境变量:从我的电脑属性-高级系统设置-高级-环境变量中,添加到系统变量(大部分配置环境变量都是如此)。

变量为:MW_MINGW64_LOC,值为:MinGW63的位置。

7.在MATLAB命令行内运行命令setenv('MW_MINGW64_LOC',folder),MinGW63的位置,要加单引号。

例如:setenv('MW_MINGW64_LOC','C:\mingw63')8.此时mex –setup C++ 可以正常使用,不然重启matlab即可。

MEX 配置为使用'MinGW64 Compiler (C++)' 以进行C++ 语言编译。

警告: MATLAB C 和Fortran API 已更改,现可支持包含2^32-1 个以上元素的MATLAB 变量。

您需要更新代码以利用新的API。

您可以在以下网址找到更多的相关信息:9.出现如上内容,再对C语言文件进行编译,编译为matlab能够识别的文件,在命令行窗口输入编译命令: make显示上图表示成功10.如果错误提示:使用'MinGW64 Compiler (C)' 编译。

论Matlab的libsvm的安装

论Matlab的libsvm的安装

再论Matlab的libsvm的安装之所以要把这个无聊的问题再次发帖,因为我怕以后我会忘记,我可以来论坛寻找,也因为这是使用libsvm的第一步(我在网上找了很久没有发现)最关键的是compilers的选择(对于把Microsoft visual stdio 2005或者其他的编译器安装在自定义目录下的这一步非常关键)以下是步骤:>> mex -setup % 这是必须的Please choose your compiler for building external interface (MEX) files:Would you like mex to locate installed compilers [y]/n? n%这次是选择编译器,输入n,因为你的是自定义的%出现下面的选项:Select a compiler:[1] Borland C++ Compiler (free command line tools) 5.5[2] Borland C++Builder 6.0[3] Borland C++Builder 5.0[4] Compaq Visual Fortran 6.1[5] Compaq Visual Fortran 6.6[6] Intel C++ 9.1 (with Microsoft Visual C++ 2005 linker)[7] Intel Visual Fortran 9.1 (with Microsoft Visual C++ 2005 linker)[8] Intel Visual Fortran 9.0 (with Microsoft Visual C++ 2005 linker)[9] Intel Visual Fortran 9.0 (with Microsoft Visual C++ .NET 2003 linker)[10] Lcc-win32 C 2.4.1[11] Microsoft Visual C++ 6.0[12] Microsoft Visual C++ .NET 2003[13] Microsoft Visual C++ 2005[14] Microsoft Visual C++ 2005 Express Edition[15] Open WATCOM C++ 1.3[0] NoneCompiler: 13%这次选择13,或许你也可以用其他的The default location for Microsoft Visual C++ 2005 compilers is C:\Program Files\Microsoft Visual Studio 8,but that directory does not exist on this machine.Use C:\Program Files\Microsoft Visual Studio 8 anyway [y]/n? n%这次它说要使用默认的路径继续选择nPlease enter the location of your compiler: [C:\Program Files\Microsoft Visual Studio 8] %它的意思是让你输入编译器的位置,输入:D:\Program Files\Microsoft Visual Studio 8% 下面就是确认了Please verify your choices:Compiler: Microsoft Visual C++ 2005Location: D:\Program Files\Microsoft Visual Studio 8Are these correct?([y]/n): y*************************************************************************** Warning: MEX-files generated using Microsoft Visual C++ 2005 requirethat Microsoft Visual Studio 2005 run-time libraries beavailable on the computer they are run on.If you plan to redistribute your MEX-files to other MA TLABusers, be sure that they have the run-time libraries.You can find more information about this at:/support/solutions/data/1-2223MW.html***************************************************************************Trying to update options file: C:\Documents and Settings\Administrator\Application Data\MathWorks\MATLAB\R2007a\mexopts.batFrom template: D:\PROGRA~2\MA TLAB\R2007a\bin\win32\mexopts\msvc80opts.batDone . . . % ok,done!>> make>>%至此彻底完成,%以下是测试>>load heart_scale.mat>>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); %Accuracy = 86.6667% (234/270) (classification)% done。

libsvm的matlab代码

libsvm的matlab代码

尊敬的读者,今天我将向大家介绍libsvm在Matlab中的代码实现。

libsvm是一个非常流行的用于支持向量机(SVM)的软件包,它具有训练和预测的功能,并且支持多种核函数。

而Matlab作为一种强大的科学计算环境,也提供了丰富的工具和函数库来支持机器学习和模式识别的应用。

将libsvm与Matlab结合起来,可以实现更加高效和便捷的SVM模型训练和预测。

1. 安装libsvm我们需要在Matlab中安装libsvm。

你可以在libsvm的官方全球信息湾上下载最新版本的libsvm,并按照官方指引进行安装。

安装完成后,你需要将libsvm的路径添加到Matlab的搜索路径中,这样Matlab才能够找到libsvm的函数和工具。

2. 数据准备在使用libsvm进行SVM模型训练之前,我们首先需要准备好训练数据。

通常情况下,训练数据是一个包含特征和标签的数据集,特征用来描述样本的属性,标签用来表示样本的类别。

在Matlab中,我们可以使用矩阵来表示数据集,其中每一行代表一个样本,每一列代表一个特征。

假设我们的训练数据保存在一个名为"train_data.mat"的文件中,可以使用以下代码加载数据:```matlabload train_data.mat;```3. 数据预处理在加载数据之后,我们可能需要对数据进行一些预处理操作,例如特征缩放、特征选择、数据平衡等。

这些步骤可以帮助我们提高SVM模型的性能和泛化能力。

4. 模型训练接下来,我们可以使用libsvm在Matlab中进行SVM模型的训练。

我们需要将训练数据转换成libsvm所需的格式,即稀疏矩阵和标签向量。

我们可以使用libsvm提供的函数来进行模型训练。

下面是一个简单的示例:```matlabmodel = svmtrain(label, sparse(train_data), '-s 0 -t 2 -c 1 -g0.07');```上面的代码中,label是训练数据的标签向量,train_data是训练数据的稀疏矩阵,'-s 0 -t 2 -c 1 -g 0.07'是SVM训练的参数设置,具体含义可以参考libsvm的官方文档。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

libsvm安装教程(详细版)(本机matlab版本16b)第一步,把libsvm放到工具箱toolbox中。

把libsvm安装包解压,并放入matlab程序文件中toolbox中。

运行matlab程序,点击主页,找到布局旁边的设置路径,并点击设计路径
选择添加并包含子文件,找到toolbox下面的libsvm添加即可,并点击保存。

第二步更新工具箱
找到布局旁边的预测按钮,并点击预设按钮。

找到常规,选择更新工具箱路径缓存,并点击应用,最后点击确定。

第三步,更改libsvm文件
在matlab文件行,打开如下地址:D:\B\toolbox\libsvm-3.24\matlab
打开make.m文件,将make.m中的CFLAGS改为COMPFLAGS。

注:因为matlab中有自带的svm,为了防止libsvm和自带的svm
发生冲突,所以将D:\B\toolbox\libsvm-3.24\matlab中将svmtrian.c和svmpredic.c前面加入lib,相应的make.m文件中也做修改
第四步,安装编译器
编译器采用最新版tdm64-gcc-9.2.0,安装教程很简单
选择Creat,保存路径直接选择C盘即可,C:\TDM-GCC-64。

第五步,使用matlab读取C语言程序。

Matlab文件行调整到此目录下D:\B\toolbox\libsvm-3.24\matlab 并在命令行窗口输入:
setenv('MW_MINGW64_LOC','C:\TDM-GCC-64')
make
点击回车,当命令行窗口出现:
使用'MinGW64 Compiler (C)' 编译。

MEX 已成功完成。

使用'MinGW64 Compiler (C)' 编译。

MEX 已成功完成。

使用'MinGW64 Compiler (C)' 编译。

MEX 已成功完成。

使用'MinGW64 Compiler (C)' 编译。

MEX 已成功完成。

证明读取成功,这个时候就可以用测试程序进行测试了
第六步,测试libsvm程序。

本人采用了简单的三角正弦函数进行测试,代码如下:
%%clean work
tic;%记录运行时间
close all;%关闭所有figure窗口
clear;%清空变量
clc;%清空命令
format compact;%空格紧凑
%生成待回归的数据
x = (-1:0.1:1)';
y = -x.^2;%建立回归模型
model = libsvmtrain(y,x,'-s 3 -t 2 -c 2.2 -g 2.8 -p 0.01');
%利用建立的模型看其在训练集上的回归效果
[py,mse,prob] = libsvmpredict(y,x,model,'-b 0');
figure;%建立一个窗口
plot(x,y,'o');%原始数据以o这种形式标记
hold on;%保持当前图像不刷新
plot(x,py,'r*');%回归数据以红色的*标记
legend('原始数据','回归数据');%设置图例线条
grid on;%画图的时候添加网格线
%进行预测
testx = [1.1;1.2;1.3];
display('真实数据');%控制台输出
testy = -testx.^2
[ptesty,tmse,prob2] = libsvmpredict(testy,testx,model,'-b 0'); display('预测数据');
ptesty
toc
图像结果如下:
备注:本人测试过matlab19版的,但是由于编译器没法支持,所以安装失败了。

相关文档
最新文档