EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 uperrua 于 2020-8-12 14:55 编辑
3 [2 P+ i9 ^1 R! n9 p: N/ [9 d+ Y0 U1 S9 u5 X0 q
因为最近在看机器学习里面的SVM,动手安装libsvm的时候遇到了一些问题,这里整理一下。 本次安装的环境与相应的软件有:win7-64-bit, VS2013,MATLAB 2016b 下载地址为:https://www.csie.ntu.edu.tw/~cjlin/libsvm/找到这个download LIBSVM 下载 ' B- T) U# M' h! Q* n: r \( P) U, d
* k7 f5 c8 j9 K) w6 Q; n$ V
下载后解压:得到一个libsvm-3.22文件夹,将其所在的位置添加到MATLAB的路径中,并将里面的Windows文件夹添加到MATLAB的路径中,如: 2 k; x7 b3 t# s+ K8 S
, |: T& L) e0 I1 K( C" `
在MATLAB命令窗口输入mex –setup C++ ,如 . V& N; @5 J6 ^3 j
: V2 `3 Z' Q4 c8 I3 o2 M1 O% ~再在命令行输入make,执行; ; h7 W2 E. F' U0 y9 J9 _( T$ v( y
再将子文件夹matlab中生成的libsvmread.mexw6,libsvmwrite.mexw64,svmpredict.mexw64,svmtrain.mexw64 ( ?' `7 C* f! r3 i- H" B6 u, }
% J) q8 g- Z1 i( d复制到子文件夹windows目录中,全部替换 ! j; t7 C) |% s$ x5 W/ J8 O
$ l& R0 p3 j! i. n4 {(此时这里没有替换,在输入执行svmtrain可能会如下报错:MEX-file 'E:\ProgramFiles\matlab\R2016b\toolbox\windows\svmtrain.mexw64' 找不到指定模块) 替换掉后,输入svmtrain执行,如下所示是正确 ( j) [& R- l" o
1 \* `" J% k3 J2 _4 {下面进行测试:
; L+ s6 t5 N* `5 J( b( d 在libsvm-3.22下有一个数据文件,名称为heart_scale。
. [6 g7 u8 H4 N这是一个libsvm格式的数据文件。可使用libsvmread函数将其转化为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) 如下所示:
* D7 H" h2 S1 k
后面还有很多的数据,这里就不列举,测试就完成了9 L- m$ K3 |. t$ e \9 @! J& ^! F
3 z! a9 y N1 h* a# T; {) w5 W
1 A( y2 x) M2 O$ @* @; G Q( _8 e) B) w5 A/ y/ [# M' N3 m
|