SVM实现多分类的程序基础工作(一)——安装libsvm以及libsvm和matlab自带的svm的区别
2012-12-07 22:01
543 查看
今天需要做一个用SVM实现多分类的程序,鉴于本人是matlab初学者,所以了解一些matlab的基本常识是很重要的。下面是在MATLAB编辑器(Editor)中一些快捷键的用法:
1)【Tab】(或【Ctrl+]】)――增加缩进(对多行有效)
2)【Ctrl+[】--减少缩进(对多行有效)
3)【Ctrl+I】--自动缩进(即自动排版,对多行有效)
4)【Ctrl+R】――注释(对多行有效)
5)【Ctrl+T】――去掉注释(对多行有效)
6)【F12】――设置或取消断点
7)【F5】――运行程序
另外为了完成SVM实现多分类的程序,我下载了台湾林智仁的libsvm工具箱,下面对libsvm工具箱的安装作简单的介绍:
1、 解压文件,把当前工作目录调整到libsvm所在的文件夹下。即选择file——set
path——add folder(添加解压后的libsvm工具箱文件)——save。
2、 然后在命令行里输入mex -setup %选择一下编译器
3、 最后在命令行里输入make。即完成libsvm工具箱的安装。
嘿嘿,很简单吧,下面再介绍一下为什么要安装libsvm,这得要从matlab自带的svm和libsvm的区别(参考http://www.ilovematlab.cn/forum.php?mod=viewthread&tid=35262)来说了。
1 MATLAB自带的svm实现函数仅有的模型是C-SVC(C-support vector classification);
而libsvm工具箱有C-SVC(C-support vector classification),nu-SVC(nu-support vector classification),one-class
SVM(distribution estimation),epsilon-SVR(epsilon-support vector regression),nu-SVR(nu-support vector regression)等多种模型可供使用。
2 MATLAB自带的svm实现函数仅支持分类问题,不支持回归问题;而libsvm不仅支持分类问题,亦支持回归问题。
3 MATLAB自带的svm实现函数仅支持二分类问题,多分类问题需按照多分类的相应算法编程实现;而libsvm采用1v1算法支持多分类。
4 MATLAB自带的svm实现函数采用RBF核函数时无法调节核函数的参数gamma,貌似仅能用默认的;而libsvm可以进行该参数的调节。
5 libsvm中的二次规划问题的解决算法是SMO;而MATLAB自带的svm实现函数中二次规划问题的解法有三种可以选择:经典二次方法;SMO;最小二乘。(这个是我目前发现的MATLAB自带的svm实现函数唯一的优点~)
在以上的一些对比下,目前svm的实现还是使用libsvm(这个应该是目前最好用的svm工具箱),当然MATLAB自带的svm实现函数对于简单问题也可使用,MATLAB自带的svm实现函数可能会在更加新的版本里面进行完善。
1)【Tab】(或【Ctrl+]】)――增加缩进(对多行有效)
2)【Ctrl+[】--减少缩进(对多行有效)
3)【Ctrl+I】--自动缩进(即自动排版,对多行有效)
4)【Ctrl+R】――注释(对多行有效)
5)【Ctrl+T】――去掉注释(对多行有效)
6)【F12】――设置或取消断点
7)【F5】――运行程序
另外为了完成SVM实现多分类的程序,我下载了台湾林智仁的libsvm工具箱,下面对libsvm工具箱的安装作简单的介绍:
1、 解压文件,把当前工作目录调整到libsvm所在的文件夹下。即选择file——set
path——add folder(添加解压后的libsvm工具箱文件)——save。
2、 然后在命令行里输入mex -setup %选择一下编译器
3、 最后在命令行里输入make。即完成libsvm工具箱的安装。
嘿嘿,很简单吧,下面再介绍一下为什么要安装libsvm,这得要从matlab自带的svm和libsvm的区别(参考http://www.ilovematlab.cn/forum.php?mod=viewthread&tid=35262)来说了。
1 MATLAB自带的svm实现函数仅有的模型是C-SVC(C-support vector classification);
而libsvm工具箱有C-SVC(C-support vector classification),nu-SVC(nu-support vector classification),one-class
SVM(distribution estimation),epsilon-SVR(epsilon-support vector regression),nu-SVR(nu-support vector regression)等多种模型可供使用。
2 MATLAB自带的svm实现函数仅支持分类问题,不支持回归问题;而libsvm不仅支持分类问题,亦支持回归问题。
3 MATLAB自带的svm实现函数仅支持二分类问题,多分类问题需按照多分类的相应算法编程实现;而libsvm采用1v1算法支持多分类。
4 MATLAB自带的svm实现函数采用RBF核函数时无法调节核函数的参数gamma,貌似仅能用默认的;而libsvm可以进行该参数的调节。
5 libsvm中的二次规划问题的解决算法是SMO;而MATLAB自带的svm实现函数中二次规划问题的解法有三种可以选择:经典二次方法;SMO;最小二乘。(这个是我目前发现的MATLAB自带的svm实现函数唯一的优点~)
在以上的一些对比下,目前svm的实现还是使用libsvm(这个应该是目前最好用的svm工具箱),当然MATLAB自带的svm实现函数对于简单问题也可使用,MATLAB自带的svm实现函数可能会在更加新的版本里面进行完善。
相关文章推荐
- SVM实现多分类的程序基础工作(一)——安装libsvm以及libsvm和matlab自带的svm的区别
- SVM实现多分类的程序基础工作(二)——通过一个简单libsvm例子迈入libsvm学习的大门
- 在SVM实现多分类的程序基础工作
- SVM实现多分类:libsvm的安装以及使用
- SVM实现多分类的程序基础工作(三)——基于纠错编码的SVM多类分类算法和基于二叉树的多类SVM算法的基本思想
- MATLAB实现多分类和libsvm工具箱的安装使用详解
- Matlab安装支持向量机(LibSVM工具)实现多分类
- MATLAB自带的svm实现函数与libsvm差别小议(机器学习)
- MATLAB自带的svm实现函数与libsvm差别小议
- MATLAB自带的svm实现函数与libsvm差别小议
- MATLAB自带的svm实现函数与libsvm差别小议(机器学习)
- 安装了Libsvm后还想使用Matlab自带的SVM?
- eclipse + libsvm-3.12 用SVM实现简单线性分类
- GO语言学习笔记(一)一些基础常识以及实现生成随机密码小程序
- Matlab安装MinGW-w64实现c,c++以及fortran编译(亲测有效)
- SVM原理以及Tensorflow 实现SVM分类(附代码)
- 采用线性SVM对线性不可分的数据进行分类(含matlab实现)
- 深度学习FPGA实现基础知识9(Deep Learning(深度学习)Matlab工具箱下载、安装、测试)
- Matlab实现svm的分类
- 3行程序搞定SVM分类-用JAVA程序调用LibSVM API 最简单的示例