EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 uperrua 于 2020-8-12 14:55 编辑 ) @' a* g% Z2 `' T5 ^( u
/ p! K: b( A" c: H/ j/ m因为最近在看机器学习里面的SVM,动手安装libsvm的时候遇到了一些问题,这里整理一下。 本次安装的环境与相应的软件有:win7-64-bit, VS2013,MATLAB 2016b 下载地址为:https://www.csie.ntu.edu.tw/~cjlin/libsvm/找到这个download LIBSVM 下载 # J# S5 O' I) m, t2 i! w
* T) X, |% s0 b4 ?/ g S下载后解压:得到一个libsvm-3.22文件夹,将其所在的位置添加到MATLAB的路径中,并将里面的Windows文件夹添加到MATLAB的路径中,如:
7 i/ _% s6 R/ m( F; u+ O- z5 g
+ z m4 F% r" ?9 }) _$ ^9 q# t5 T在MATLAB命令窗口输入mex –setup C++ ,如
4 l& r4 N' N/ D
' W. D7 f- q/ D# I6 Z( I3 k8 }再在命令行输入make,执行; " B& { h) A* O' V
再将子文件夹matlab中生成的libsvmread.mexw6,libsvmwrite.mexw64,svmpredict.mexw64,svmtrain.mexw64 . @- x# g. C/ x& Y3 n7 z) z
8 `5 \7 \. Q, p4 z- l6 V复制到子文件夹windows目录中,全部替换 * |/ D. t, l% V& ~- x" H! S1 u) F
6 S0 `- W3 U" D; F) l(此时这里没有替换,在输入执行svmtrain可能会如下报错:MEX-file 'E:\ProgramFiles\matlab\R2016b\toolbox\windows\svmtrain.mexw64' 找不到指定模块) 替换掉后,输入svmtrain执行,如下所示是正确
' Z3 W" [8 ?- w; k/ u
. a9 b/ H. f7 k) ^. O4 P9 b下面进行测试:& h3 r% W! Y% R1 m1 K) r
在libsvm-3.22下有一个数据文件,名称为heart_scale。
( `: v N& ^6 y$ i5 t! Z这是一个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) 如下所示:
' [7 h! @; ]- Y7 E( e
后面还有很多的数据,这里就不列举,测试就完成了1 i$ p* d8 W3 R
) l& _1 r5 @2 J, l# B/ r0 M# P1 n" b5 l& k. W4 W5 q$ t
2 x6 u8 H; ~0 ]* c5 m" x
|