Libsvm3.23安装手册
一、基本背景:
Libsvm是国立台湾大学林智仁(Chih-Jen Lin)教授编写的SVM工具包,提供了SVM的一些调用函数。其实,matlab程序自身也提供了svm方面的函数,比如svmtrain.m(路径位于C:\Program Files (x86)\MATLAB\R2006b\toolbox\bioinfo\biolearning),但如果要使用林教授的libsvm,就需要自己安装并配置,方可使用了。
林教授提供的lisbsvm发布于国立台湾大学网站,且提供的是多种语言的源码,java、python、matlab等等,需要下载下来自己编译、安装,下面我们就以matlab语言版本进行编译的过程,具体展开讲解,编译器为VC++6.0。
二、所需软件及下载地址:
1、Visual C++6.0
https://download.csdn.net/download/thinkpading/11484328
林教授的libsvm需要使用VC++6.0方可进行编译,因此需下载VC6.0。
特别说明:笔者的操作系统为64位Win7旗舰版,网上下载到的VC++6.0很多都无法安装成功,经查,原因是VC++6.0与Win7存在较多不兼容的问题,但有一个版本的VC++6.0安装程序可以在Win7上安装成功,也就是笔者找到并在上方提供下载链接的这个版本,该版本经笔者亲自安装尝试,确实可行,这一点务必注意,用别的安装程序可能无法安装成功。另外,网上还有一种精简版的绿色版VC++6.0(精简版大约几十兆,常规版200多兆),这个也可以安装成功,但从文件大小来看就可以看出,太过于精简了,总觉得不靠谱,因此,建议读者要在Win7上安装VC++6.0的话,选择上方链接提供的安装程序。
2、libsvm3.23
(1)国立台湾大学官网
https://www.csie.ntu.edu.tw/~cjlin/libsvm/
(2)笔者提供的CSDN上的资源(笔者下载自上述官网)
https://download.csdn.net/download/thinkpading/11484354
二、安装步骤
(一)安装Visual C++6.0
参见笔者另一篇博文《Win7操作系统下安装Visual C++6.0详细操作手册(亲验有效)》
https://blog.csdn.net/thinkpading/article/details/98608688
(二)安装libsvm3.23
1、将libsvm3.23压缩包解压到目标目录(笔者目录是C:\Program Files (x86)\MATLAB\R2006b\work\深度学习SVM\libsvm-3.23)。
2、打开matlab程序,添加搜索路径:
依次打开“File”—“Set Path”,点击“Add Folder”,分两次分别将libsvm-3.23目录、matlab目录,两个目录添加进入(其他不用管),结果如下:

3、编译libsvm3.23
(1)在matlab交互界面,按以下步骤完成编译前的配置:
>> 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++Builder version 6.0
[2] Borland C++Builder version 5.0
[3] Borland C/C++ (free command line tools) version 5.5
[4] Compaq Visual Fortran version 6.1
[5] Compaq Visual Fortran version 6.6
[6] Intel Visual Fortran version 9.0
[7] Lcc C version 2.4.1
[8] Microsoft Visual C/C++ version 8.0
[9] Microsoft Visual C/C++ version 7.1
[10] Microsoft Visual C/C++ version 6.0
[11] Open WATCOM C/C++ version 1.3
[0] None
Compiler: 10(注意:此处选择我们安装的VC++6.0)
Your machine has a Microsoft Visual C/C++ compiler located at
C:\Program Files (x86)\Microsoft Visual Studio. Do you want to use this compiler [y]/n? y(注意:y)
Please verify your choices:
Compiler: Microsoft Visual C/C++ 6.0
Location: C:\Program Files (x86)\Microsoft Visual Studio
Are these correct?([y]/n): y(注意:y)
Trying to update options file: C:\Users\Administrator\Application Data\MathWorks\MATLAB\R2006b\mexopts.bat
From template: C:\PROGRA~2\MATLAB\R2006b\bin\win32\mexopts\msvc60opts.bat
Done . . .
(2)切换进入libsvm3.23库的matlab目录(笔者的目录是:C:\Program Files (x86)\MATLAB\R2006b\work\深度学习SVM\libsvm-3.23\matlab),执行编译:
>> pwd
ans =
C:\Program Files (x86)\MATLAB\R2006b\work\深度学习SVM\libsvm-3.23\matlab
>> make
Warning: File: make.m Line: 18 Column: 7
This try-catch syntax will continue to work in R2006b,
but may be illegal or may mean something different in future releases of MATLAB.
See Release Notes for MATLAB Version 7.3, "Warning Generated by try-catch" for details.
至此,编译完成libsvm3.23,在matlab目录下生成四个mexw32文件:
libsvmread.mexw32
libsvmwrite.mexw32
svmpredict.mexw32
svmtrain.mexw32
4、验证是否编译成功:
首先切换上一级目录
>> cd ..
>> pwd
ans =
C:\Program Files (x86)\MATLAB\R2006b\work\深度学习SVM\libsvm-3.23
然后在 matlab交互界面顺序执行以下三行代码:
>> [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);
若成功运行,则代表编译安装成功:
optimization finished, #iter = 134
nu = 0.433785
obj = -101.855060, rho = 0.426412
nSV = 130, nBSV = 107
Total nSV = 130
Accuracy = 86.6667% (234/270) (classification)--------
笔者:2019年8月2日,云南昆明
这篇博客详细介绍了如何在64位Win7系统上安装和配置Libsvm3.23,包括解决与Win7不兼容问题的VC++6.0版本下载,以及libsvm3.23的解压、添加搜索路径和在MATLAB中编译的步骤。

1126

被折叠的 条评论
为什么被折叠?



