zoukankan      html  css  js  c++  java
  • MATLAB 安装使用libsvm详细步骤

    根据本文后面部分博友提出的在配置过程中出现的问题,其中需要特别强调的一点:整个过程,都是在 libsvm-3.12matlab目录下操作的。如果这一点你忽视了,你不可能解决配置中报的Bug,即使重新安装matlab也不行。
    本文的配置路径为 D:MATLABR2010a oolboxlibsvm-3.12matlab,从始至终都是在这个目录下进行的。
    当然,你也可以将编译好的文件拷贝到任何地方,只要你当前的工作目录中有这四个文件即可。
    ////////////////////////////
    详细步骤如下:
    1.下载libsvm
    http://www.csie.ntu.edu.tw/~cjlin/libsvm/
    我的matlab版本 R2010a,我的libsvm版本3.12


    2.解压至指定目录
    将libsvm解压至D:MATLABR2010a oolbox下,你也可以解压至你喜欢的地方。

    3.设置路径
    MATLAB 安装使用libsvm详细步骤(附图) - 求之不得,不求得之 - 求之不得,不求得之
    下载下来的借口包里有svm的一些源文件,没有可执行的exe文件,所以,必须先将svmtrain等源文件编译为matlab可以使用的dll等文件。于是先选择编译器,如下: 
    4.编译libsvm
    我的编译器是VC++ 6.0

    首先在matlab设置当前目录为 D:MATLABR2010a oolboxlibsvm-3.12matlab
    MATLAB 安装使用libsvm详细步骤(附图) - 求之不得,不求得之 - 求之不得,不求得之

    5.执行编译
    在matlab命令窗口中输入
    mex -setup
    显示
    Please choose your compiler for building external interface (MEX) files: 
     
    Would you like mex to locate installed compilers [y]/n?

    输入y
    Select a compiler: 
    [1] Lcc-win32 C 2.4.1 in D:MATLABR2010asyslcc 
    [2] Microsoft Visual C++ 2008 SP1 in D:Program FilesMicrosoft Visual Studio 9.0 
    [3] Microsoft Visual C++ 6.0 in D:Program FilesMicrosoft Visual Studio 
     
    [0] None 

    Compiler:

    需要你选择编译器
    我输入的是3 即选择VC++ 6.0
    Please verify your choices: 
     
    Compiler: Microsoft Visual C++ 6.0 
    Location: D:Program FilesMicrosoft Visual Studio 
     
    Are these correct [y]/n?
    再次确认自己的选择,输入y

    Trying to update options file: C:UsersDELLAppDataRoamingMathWorksMATLABR2010amexopts.bat 
    From template:              D:MATLABR2010ainwin32mexoptsmsvc60opts.bat 
     
    Done . . . 


    编译器选择好了之后,用make.m编译

    命令窗口输入make
    可以看到新编译出4个文件libsvmread.mexw32,libsvmwrite.mexw32,svmtrain.mexw32,svmpredict.mexw32
    MATLAB 安装使用libsvm详细步骤(附图) - 求之不得,不求得之 - 求之不得,不求得之
    在命令窗口中输入
    load heart_scale;
    此时需注意,libsvm 3.12中提供的是c++版本的数据集heart_scale,这里需要加载matlab版本的数据集。
    这两个数据集有什么不同呢?

    C++版本的数据集里面如果某一个样本的某一个特征为0,这个特征可以不写在数据集中,但是在matlab版本中,必须要写出来。
    否则的话,会报这样一个错误:
    MATLAB 安装使用libsvm详细步骤(附图) - 求之不得,不求得之 - 求之不得,不求得之
    此时你可以选择下载matlab型的数据集,给一个链接。
    http://download.csdn.net/detail/boruoshui/4881338
    然后读取数据集
    libsvmread('heart_scale');
    完成该步骤后发现Workspace中出现了heart_scale_inst  heart_scale_label,说明正确。
    MATLAB 安装使用libsvm详细步骤(附图) - 求之不得,不求得之 - 求之不得,不求得之
    model=svmtrain(heart_scale_label,heart_scale_inst)
    [predict_lebel,accuracy]=svmpredict(heart_scale_label,heart_scale_inst,model)
    /////////////////////////////////////////////
    本博2014年4月18日添加
    部分博友反应
    [predict_lebel,accuracy]=svmpredict(heart_scale_label,heart_scale_inst,model)
    ********************重点
    命令会报BUG,这是libsvm新的版本对于输出结果的重新设定。
    改为如下命令即可。(老版本不用改变。本文是libsvm-3.12。)
    model=svmtrain(heart_scale_label,heart_scale_inst)
    [predicted_label, accuracy, decision_values]=svmpredict(heart_scale_label,heart_scale_inst,model)
    /////////////////////////////////////////////
    MATLAB 安装使用libsvm详细步骤(附图) - 求之不得,不求得之 - 求之不得,不求得之
     
    证明libsvm安装成功,可以进行其他的实验了。
  • 相关阅读:
    Java 常用正则表达式
    MySql数据库备份的几种方式
    分布式系统一致性算法(Paxos)
    桥接模式
    vnc mirror driver
    VC Mirror Driver显示虚拟驱动经典开发
    基于MirrorDriver的录屏技术
    基于GDI和D3D的抓屏技术
    Various methods for capturing the screen
    IDE Goland DEBUG报错(could not launch process: decoding dwarf section info at offset 0x0: too short)
  • 原文地址:https://www.cnblogs.com/awishfullyway/p/6039037.html
Copyright © 2011-2022 走看看