EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 uperrua 于 2020-8-12 14:55 编辑
4 ?: O) b- }+ `! l: P
9 ?( q' ?0 E8 ^) J: L: R因为最近在看机器学习里面的SVM,动手安装libsvm的时候遇到了一些问题,这里整理一下。 本次安装的环境与相应的软件有:win7-64-bit, VS2013,MATLAB 2016b 下载地址为:https://www.csie.ntu.edu.tw/~cjlin/libsvm/找到这个download LIBSVM 下载
' C2 i$ a# t& [& _" t
8 e- X& l/ o: E3 k: N1 |下载后解压:得到一个libsvm-3.22文件夹,将其所在的位置添加到MATLAB的路径中,并将里面的Windows文件夹添加到MATLAB的路径中,如:
9 z$ ?8 G5 }$ _2 w- G U% h9 O
! ~: U' r) ]( t2 U4 D0 W, Q! R
在MATLAB命令窗口输入mex –setup C++ ,如 ' ]' G1 p- ~% }& M
% {3 F* s8 V6 F再在命令行输入make,执行;
- ~- w8 J, }4 m" i$ f再将子文件夹matlab中生成的libsvmread.mexw6,libsvmwrite.mexw64,svmpredict.mexw64,svmtrain.mexw64 9 k8 y0 u6 c0 Z* P( _5 s
& d* {: x# j# |! M
复制到子文件夹windows目录中,全部替换
. b9 e. t" {# F | L( U
5 E* v9 b* s; U+ Z7 S- `8 |
(此时这里没有替换,在输入执行svmtrain可能会如下报错:MEX-file 'E:\ProgramFiles\matlab\R2016b\toolbox\windows\svmtrain.mexw64' 找不到指定模块) 替换掉后,输入svmtrain执行,如下所示是正确 . g1 O# I1 b H: i6 z& @1 C
$ u$ K* k. ]0 R! ` ?1 d. }: A下面进行测试: \% y+ I& N+ }3 M2 p
在libsvm-3.22下有一个数据文件,名称为heart_scale。
$ Q6 z1 N( a- i% B/ m3 U$ ]这是一个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) 如下所示:
1 y$ x1 y# W, L# d" x% n7 a' U
后面还有很多的数据,这里就不列举,测试就完成了 f/ J+ x, O* V7 ?. a
4 Q/ e1 v) P: i+ Y, s$ @
1 {3 c5 x4 L- G+ J+ S3 n% ]6 W
+ I% w( P( B# K" f& E5 A |