EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 uperrua 于 2020-8-12 14:55 编辑
/ d/ ~- o0 h _9 P) r8 h4 f2 u1 o. J# ?0 u" Z
因为最近在看机器学习里面的SVM,动手安装libsvm的时候遇到了一些问题,这里整理一下。 本次安装的环境与相应的软件有:win7-64-bit, VS2013,MATLAB 2016b 下载地址为:https://www.csie.ntu.edu.tw/~cjlin/libsvm/找到这个download LIBSVM 下载
# t8 v, {5 @6 x. k: c3 f8 Z6 C/ ^
; H, ~0 M: I% [, z
下载后解压:得到一个libsvm-3.22文件夹,将其所在的位置添加到MATLAB的路径中,并将里面的Windows文件夹添加到MATLAB的路径中,如:
1 `. l" J. R* ^; T
# g {( g- }1 y+ }, D
在MATLAB命令窗口输入mex –setup C++ ,如
8 n1 n9 y, U& E( X5 g" h6 C9 E
3 {6 M" }. y) t' a9 {: I% \再在命令行输入make,执行;
+ M! t. m" ?/ s7 J) h( |& ~( W. o再将子文件夹matlab中生成的libsvmread.mexw6,libsvmwrite.mexw64,svmpredict.mexw64,svmtrain.mexw64
' C' ~ u Z$ p' s+ `$ s/ ~
4 A; [' K" k7 o$ P4 ^
复制到子文件夹windows目录中,全部替换
% W- _. O3 z$ t$ a4 x
- t4 v$ m; m, {9 I( _% _(此时这里没有替换,在输入执行svmtrain可能会如下报错:MEX-file 'E:\ProgramFiles\matlab\R2016b\toolbox\windows\svmtrain.mexw64' 找不到指定模块) 替换掉后,输入svmtrain执行,如下所示是正确
; P0 Y( _+ h% B8 l; S) c
% D6 m" h3 W; u, L0 H
下面进行测试:; r# g& Y, S @7 `
在libsvm-3.22下有一个数据文件,名称为heart_scale。
( w" b/ r9 G1 N; |2 `
这是一个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 m5 @" |. M; U5 B' W& u: O9 v$ B/ B
后面还有很多的数据,这里就不列举,测试就完成了
8 f0 F* S! t( y w; {7 c6 u7 W* \5 e# e1 `% H" Z; M. k7 x- S9 e
r; d2 p9 @: F) J" G& m0 Z
+ s+ o2 t+ O# R8 g: _$ G2 o) R
|