EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 uperrua 于 2020-8-12 14:55 编辑
( z9 T; T+ u1 D* I/ [, Q0 s# [0 V( O2 u. s) {
因为最近在看机器学习里面的SVM,动手安装libsvm的时候遇到了一些问题,这里整理一下。 本次安装的环境与相应的软件有:win7-64-bit, VS2013,MATLAB 2016b 下载地址为:https://www.csie.ntu.edu.tw/~cjlin/libsvm/找到这个download LIBSVM 下载 O! j( ~8 Q: a
+ Z! H! d ?0 S& q8 O% z( g* v" A下载后解压:得到一个libsvm-3.22文件夹,将其所在的位置添加到MATLAB的路径中,并将里面的Windows文件夹添加到MATLAB的路径中,如: 1 F* y7 H7 V3 o6 B+ t
/ b4 L* w; q; I/ G) ^
在MATLAB命令窗口输入mex –setup C++ ,如 ) B5 C3 p6 d! _1 ^1 x! G% @& G
2 n3 u$ f# P; w# p2 O
再在命令行输入make,执行;
- R' q& R2 k6 ]再将子文件夹matlab中生成的libsvmread.mexw6,libsvmwrite.mexw64,svmpredict.mexw64,svmtrain.mexw64 ! E: j' A. [4 s0 k1 I! ?2 {
$ b! U( ^8 E& }5 [7 @0 O9 d: a7 B复制到子文件夹windows目录中,全部替换 7 G* S! ?; V( [- @$ F4 E% R0 C1 z' e
! H8 A$ V7 }) [# V" m. o(此时这里没有替换,在输入执行svmtrain可能会如下报错:MEX-file 'E:\ProgramFiles\matlab\R2016b\toolbox\windows\svmtrain.mexw64' 找不到指定模块) 替换掉后,输入svmtrain执行,如下所示是正确
9 _1 ? [! ^7 c% n7 g
+ b! Q. a6 j6 z/ m3 h
下面进行测试:
* L- m. j- Z" N0 U 在libsvm-3.22下有一个数据文件,名称为heart_scale。
; H. g# J' E. G这是一个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) 如下所示:
/ V3 W2 ~/ P, \8 R4 v后面还有很多的数据,这里就不列举,测试就完成了: _0 b- G& t1 h6 l1 ?2 g; j; @
" t: i5 y8 x9 J7 Y; o T- u
9 X0 x3 s6 m& a4 p, k/ m+ d5 A/ r
% N7 Z' w& J+ |/ h |