EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 uperrua 于 2020-8-12 14:55 编辑 , d6 a8 i% X' F9 z! Z' U
0 u) P; a3 Z) Z3 y
因为最近在看机器学习里面的SVM,动手安装libsvm的时候遇到了一些问题,这里整理一下。 本次安装的环境与相应的软件有:win7-64-bit, VS2013,MATLAB 2016b 下载地址为:https://www.csie.ntu.edu.tw/~cjlin/libsvm/找到这个download LIBSVM 下载 , ?+ `# P( M: |8 O
6 ?! a+ r5 k: j5 C下载后解压:得到一个libsvm-3.22文件夹,将其所在的位置添加到MATLAB的路径中,并将里面的Windows文件夹添加到MATLAB的路径中,如:
' h1 a. |0 L/ G9 j' A+ U8 ~
! p5 v8 t9 }$ Z在MATLAB命令窗口输入mex –setup C++ ,如 8 ^- [, d+ r5 o A# K
& P& n4 x& u, W再在命令行输入make,执行; 7 ]& P# ~: |: P ]. ~- _ p
再将子文件夹matlab中生成的libsvmread.mexw6,libsvmwrite.mexw64,svmpredict.mexw64,svmtrain.mexw64 9 D& k# m. L0 R3 D4 A6 Y7 A$ \
) w$ K" n, G; o; y
复制到子文件夹windows目录中,全部替换 ' N( }" S) ]9 | [
8 n# U6 G* c7 ]' }$ u- R2 ~3 ~
(此时这里没有替换,在输入执行svmtrain可能会如下报错:MEX-file 'E:\ProgramFiles\matlab\R2016b\toolbox\windows\svmtrain.mexw64' 找不到指定模块) 替换掉后,输入svmtrain执行,如下所示是正确
% n j' K! f' r* }9 O) T! T2 H2 B
5 O% x# h3 Z" q2 H2 l6 k. v
下面进行测试:9 w& X5 V& K, m0 \; k
在libsvm-3.22下有一个数据文件,名称为heart_scale。
& a8 B4 `* X- `
这是一个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) 如下所示:
: } u) |- ^$ O* V后面还有很多的数据,这里就不列举,测试就完成了$ }+ M0 m7 o1 I8 Y6 [6 U
+ m) j8 `4 i, {: X( K' |' {2 {
6 }2 p. c- ~# g+ U7 h
% V$ g1 }/ {/ P1 E7 z4 p9 z' G |