EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 uperrua 于 2020-8-12 14:55 编辑
5 h; ~2 q& S4 l6 F6 f3 n# p
, O! h5 _8 e$ K# k. g因为最近在看机器学习里面的SVM,动手安装libsvm的时候遇到了一些问题,这里整理一下。 本次安装的环境与相应的软件有:win7-64-bit, VS2013,MATLAB 2016b 下载地址为:https://www.csie.ntu.edu.tw/~cjlin/libsvm/找到这个download LIBSVM 下载
) x8 h, k" }4 F* H
1 B- [9 U) u6 ]' N' N
下载后解压:得到一个libsvm-3.22文件夹,将其所在的位置添加到MATLAB的路径中,并将里面的Windows文件夹添加到MATLAB的路径中,如:
5 u; L3 y3 F2 X- v! G0 K
4 a1 T9 S5 y+ s
在MATLAB命令窗口输入mex –setup C++ ,如
5 z2 ^% c7 p: C' c
; e* O4 R6 F- }4 x9 s& v( i; N再在命令行输入make,执行;
: T0 u+ A% o. X7 e再将子文件夹matlab中生成的libsvmread.mexw6,libsvmwrite.mexw64,svmpredict.mexw64,svmtrain.mexw64
# F8 b! ]& V6 ?- |! H
_1 I8 T; Z! W复制到子文件夹windows目录中,全部替换 $ [ p* a1 r- a, W2 |/ _7 E7 g# N) B% T
6 _, O. L9 M( \; I% ^* w% b6 t(此时这里没有替换,在输入执行svmtrain可能会如下报错:MEX-file 'E:\ProgramFiles\matlab\R2016b\toolbox\windows\svmtrain.mexw64' 找不到指定模块) 替换掉后,输入svmtrain执行,如下所示是正确 3 C5 }, p5 t% a5 o/ O j" P$ D
$ [6 t% `- Y8 K/ `5 n: \
下面进行测试:5 B! F J1 d# e! ^
在libsvm-3.22下有一个数据文件,名称为heart_scale。
5 H! o S7 y9 j! l" A
这是一个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) 如下所示:
! v) }" z7 s- k& m6 A& r4 k6 v
后面还有很多的数据,这里就不列举,测试就完成了
, X7 B6 p; U2 ]( T7 o
; b9 E8 ~2 b: q% m
$ ^4 l. o$ m1 e2 h, s
1 f0 D' Z, D2 O1 p6 M$ [ |