博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Matlab2012a下配置LibSVM—3.18
阅读量:5968 次
发布时间:2019-06-19

本文共 2290 字,大约阅读时间需要 7 分钟。

1.下载最新版LibSVM

         网页,点击zip file下载最新版的文件并解压放在任何目录下,建议放在安装目录便于查找。如我的文件解压在路径C:\ProgramFiles\MATLAB\R2012a\toolbox\libsvm-3.18下

2.设置工作路径

        打开matlab2012a。点击File->Set Path->Add with Subfolders,添加刚才解压路径如C:\Program Files\MATLAB\R2012a\toolbox\libsvm-3.18,点击Save保存和Close关闭。将Current Folder设置为C:\Program Files\MATLAB\R2012a\toolbox\libsvm-3.18\matlab。左侧边栏即出现如下界面,注意mexw32后缀的文件,原解压文件中并没有。

3.配置编译器

        Command Window中输入[mex空格–setup,即mex -setup],将会出现一些提示以及Would you like mex to locate installed compilers [y]/n,输入y并回车,这时将出现你电脑上安装的编译器,作者的电脑只装了VS2010,Compiler:后面选择你自己的准备用来编译的编译器的序号,本文选择2。

这时又出现提示语句Are these correct [y]/n?,输入y并回车,如上所示。当显示下图时代表编译器配置完成。

4.编译过程

        Command Windows输入[make]并回车.此时调用当前路径也就是C:\Program Files\MATLAB\R2012a\toolbox\libsvm-3.18\matlab下的make.m完成编译过程。该目录下将出现svmtrain.mexw32svmpredict.mexw32libsvmread.mexw32libsvmwrite.mexw32等文件。即编译成功。

5.测试编译成功与否

         先检查C:\Program Files\MATLAB\R2012a\toolbox\libsvm-3.18目录下是否存在样本集文件heart_scale.mat,注意是.mat文件,倘若存在,Command Windows输入【loadheart_scale.mat】加载样本。现在新版本的LibSVM过往只提供C++使用的heart_scale,可以使用语句[heart_scale_label, heart_scale_inst]=libsvmread('heart_scale')同样加载样本集。这里提供了源数据文件heart_scale.mat,若嫌麻烦或者加载load heart_scale不成功,请直接点击下载

         接着,Command Windows中输入下列命令行:

model = svmtrain(heart_scale_label, heart_scale_inst);%训练过程[predict_label, accuracy, dec_values] = svmpredict(heart_scale_label, heart_scale_inst, model);%测试过程

           出现Accuracy = 86.6667% (234/270) (classification)%  done 即编译成功。

6.其他说明

         ① matlab自带了C编译器Lcc-win32C,但是libsvm原始版本是C++实现的,因此需要C++的编译器来编译,这就是不适用matlab默认编译器而选择其他C++编译器的原因。matlab支持的编译器也是有限的,可以查看不同版本matlab支持的编译器列表

         ② 如果matlab版本太低,如matlab 7.0是不能用VS作为编译器的,只能用VC++ 6.0

          mexw32 文件是经过加密的,打开是乱码,函数本身没有帮助。例如输入 help svmpredict会出现报错: svmpredict not found。工具箱libsvm-3.12\matlab中README文件才是帮助文件。但是输入help svmtrain会出现帮助信息,其实出现的是系统自带的svmtrain函数,没有libsvm工具箱中的好用。

          在新版本libsvm中,文件夹libsvm-3.18\windows中已经有编译好的程序,可以直接使用,只需要把libsvm-3.12\windows添加到matlab路径中即可,不需要编译的过程。当然最好还是自己编译一遍,因为编译环境不同会导致一些不可预估的小问题,自己编译的过程是可控的。

          测试用数据集,libsvm官网上提供了很多数据集测试使用的heart_scale数据集是C++版本的(类标签 1:第一个属性 2:第二个属性…),可以用libsvmread来转换为matlab版本的(它们的区别在类标签)。[label_vector, instance_matrix] = libsvmread(‘C++版本数据集’); %得到类标签和属性矩阵,然后可以使用它们训练了model = svmtrain(label_vector, instance_matrix)。

           R2009a无法识别VS2010中的编译器Visual C++2010

7.常用机器学习样本集

        请点击:

                       

部分参考自: 

转载于:https://www.cnblogs.com/engineerLF/p/5393130.html

你可能感兴趣的文章
浅谈如何用We7站群平台打造垂直性政务网站
查看>>
我的友情链接
查看>>
Go bytes包
查看>>
Spring MVC请求处理流程分析
查看>>
生产环境MySQL 5.5.x单机多实例配置实践
查看>>
Web应用工作原理、动态网页技术
查看>>
EXCEL工作表保护密码破解 宏撤销保护图文教程
查看>>
Catalan数(卡特兰数)
查看>>
.Net Core下使用 RSA
查看>>
python 数据库中文乱码 Excel
查看>>
利用console控制台调试php代码
查看>>
递归算法,如何把list中父子类对象递归成树
查看>>
jsf初学解决GlassFish Server 无法启动
查看>>
hdu 1050 (preinitilization or postcleansing, std::fill) ...
查看>>
Form各键盘触发子所对应的“按键”
查看>>
【java IO】使用Java输入输出流 读取txt文件内数据,进行拼接后写入到另一个文件中...
查看>>
Linux系统下安装rz/sz命令及使用说明
查看>>
第一次模拟面试
查看>>
window.showModalDialog
查看>>
Pycharm选择pyenv安装的Python版本
查看>>