EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 uperrua 于 2020-8-12 14:55 编辑 + E$ t; q1 o4 y6 _$ e
8 o2 M# J8 \/ G: J! b) ?
因为最近在看机器学习里面的SVM,动手安装libsvm的时候遇到了一些问题,这里整理一下。 本次安装的环境与相应的软件有:win7-64-bit, VS2013,MATLAB 2016b 下载地址为:https://www.csie.ntu.edu.tw/~cjlin/libsvm/找到这个download LIBSVM 下载 ' I5 \ Y2 z( g5 y/ u- l; ?2 h9 n( ~
" t3 M; {1 ?/ V$ G( Y$ Y下载后解压:得到一个libsvm-3.22文件夹,将其所在的位置添加到MATLAB的路径中,并将里面的Windows文件夹添加到MATLAB的路径中,如: : v M, \5 F( q; A; G
1 W# U# q/ I0 L v/ n2 [; R! Q在MATLAB命令窗口输入mex –setup C++ ,如 ) |2 w- L$ f: C( ?) p. w$ K# }
, `- @4 n- }; e4 O$ {+ I再在命令行输入make,执行;
2 g% M2 s. u/ U+ ~2 b再将子文件夹matlab中生成的libsvmread.mexw6,libsvmwrite.mexw64,svmpredict.mexw64,svmtrain.mexw64
8 D0 G! v4 v/ V1 F, S" _2 a+ s
2 X* P- y. I/ v* ^: i6 _
复制到子文件夹windows目录中,全部替换
4 W# @: g( ?8 ?4 O9 O/ @& p
4 N* S( M9 F' r+ o(此时这里没有替换,在输入执行svmtrain可能会如下报错:MEX-file 'E:\ProgramFiles\matlab\R2016b\toolbox\windows\svmtrain.mexw64' 找不到指定模块) 替换掉后,输入svmtrain执行,如下所示是正确
- n: v6 H/ l$ n3 G# y
, V+ e* N7 `* {/ @) R# \8 l1 n
下面进行测试:
: n5 {4 J' M+ x o 在libsvm-3.22下有一个数据文件,名称为heart_scale。
7 a5 R- {4 W0 M4 y0 B
这是一个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) 如下所示:
: D: C7 z, k: v7 r! K3 [0 A' _' _后面还有很多的数据,这里就不列举,测试就完成了7 ?5 z( q Q1 f7 y- c
4 {& j) c0 Q* X$ w
3 i; m$ C; y% T0 s
8 }. w* K, c/ ?7 \1 d K9 B" C2 c |