libsvm-mat-加强工具箱介绍
libsvm参数说明
libsvm参数说明简介libsvm是一个支持向量机(Support Vector Machine,SVM)的软件包,由台湾大学林智仁教授等人开发。
它提供了用于二分类和多分类的高效实现,并支持回归和异常检测。
libsvm的主要优势在于其高效的内存使用和计算速度,尤其适用于处理小到中等规模的数据集。
它支持多种核函数,包括线性核、多项式核、高斯核等,可以灵活地适应不同的数据特征。
在使用libsvm进行机器学习任务时,我们需要了解它的参数设置,以便根据具体情况进行调整,以获得更好的性能。
参数说明-s type这个参数用于设置SVM的类型,即用于解决什么类型的问题。
常用的取值有:•0:C-SVC(用于多分类问题)•1:nu-SVC(用于多分类问题)•2:one-class SVM(用于异常检测问题)•3:epsilon-SVR(用于回归问题)•4:nu-SVR(用于回归问题)-t kernel_type这个参数用于设置核函数的类型。
常用的取值有:•0:线性核函数•1:多项式核函数•2:高斯核函数•3:径向基核函数•4:sigmoid核函数-c cost这个参数用于设置惩罚因子(C)的值。
C越大,对误分类的惩罚越重,容错率越低;C越小,对误分类的惩罚越轻,容错率越高。
-g gamma这个参数用于设置高斯核函数和径向基核函数的gamma值。
gamma越大,决策边界越复杂,容易过拟合;gamma越小,决策边界越简单,容易欠拟合。
-p epsilon这个参数用于设置epsilon-SVR中的epsilon值,表示对于回归问题的容错范围。
epsilon越小,容错范围越小,模型越精确;epsilon越大,容错范围越大,模型越宽松。
-n nu这个参数用于设置nu-SVC、one-class SVM和nu-SVR中的nu值,表示支持向量的比例。
nu越大,支持向量的比例越高,模型越复杂;nu越小,支持向量的比例越低,模型越简单。
Matlab下libsvm的配置使用【转】
Matlab下libsvm的配置使⽤【转】LIBSVM是⼀个由台湾⼤学林智仁(Lin Chih-Jen)教授等开发的SVM模式识别与回归的软件包,使⽤简单,功能强⼤,能够在matlab中使⽤。
⼀、安装1.下载在LIBSVM的主页上下载最新版本的软件包(libsvm-3.20),并解压到合适⽬录中。
2.编译如果你使⽤的是64位的操作的系统和Matlab,那么不需要进⾏编译步骤,因为⾃带软件包中已经包含有64位编译好的版本:libsvmread.mexw64、libsvmwrite.mexw64、svmtrain.mexw64、svmpredict.mexw64。
否则,需要⾃⼰编译⼆进制⽂件。
⾸先在matlab中进⼊LIBSVM根⽬录下的matlab⽬录(如C:\libsvm-3.20\matlab),在命令窗⼝输⼊>>mex -setup然后Matlab会提⽰你选择编译mex⽂件的C/C++编译器,就选择⼀个已安装的编译器。
之后Matlab会提⽰确认选择的编译器,输⼊y进⾏确认。
然后可以输⼊以下命令进⾏编译。
>>make注意,Matlab或VC版本过低可能会导致编译失败,建议使⽤最新的版本。
编译成功后,当前⽬录下会出现若⼲个后缀为mexw64(64位系统)或mexw32(32位系统)的⽂件。
3.重命名(可选,但建议执⾏)编译完成后,在当前⽬录下回出现svmtrain.mexw64、svmpredict.mexw64(64位系统)或者svmtrain.mexw32、svmpredict.mexw32(32位系统)这两个⽂件,把⽂件名svmtrain和svmpredict相应改成libsvmtrain和libsvmpredict。
这是因为Matlab中⾃带有SVM的⼯具箱,⽽且其函数名字就是svmtrain和svmpredict,和LIBSVM默认的名字⼀样,在实际使⽤的时候有时会产⽣⼀定的问题,⽐如想调⽤LIBSVM的变成了调⽤Matlab SVM。
libsvm使用说明
Libsvm是一个简单,易于使用和高效的SVM软件分类和回归。
它解决了C-SVM分类,nu-SVM分类,一类SVM,ε-SVM回归和nu-SVM回归。
它还提供了一个自动模型选择工具C-SVM分类。
本文档介绍了libsvm的使用。
Libsvm可在.tw/~cjlin/libsvm在使用libsvm之前,请先阅读COPYRIGHT文件。
目录=================- 快速开始- 安装和数据格式- `svm-train'用法- `svm-predict'用法- `svm-scale'用法- 实用技巧- 例子- 预先计算的内核- 图书馆使用- Java版本- 构建Windows二进制文件- 附加工具:子采样,参数选择,格式检查等- MATLAB / OCTAVE接口- Python接口- 附加信息快速开始===========如果您是SVM的新手,如果数据不大,请转到`tools'目录,并在安装后使用easy.py。
它是一切都是自动的- 从数据缩放到参数选择。
用法:easy.py training_file [testing_file]有关参数选择的更多信息,请参见`工具/自述文件'。
安装和数据格式============================在Unix系统上,键入`make'来构建`svm-train'和`svm-predict'程式。
运行他们没有参数,以显示他们的用法。
在其他系统上,请参阅“Makefile”来构建它们(例如,在此文件中构建Windows二进制文件)或使用预构建的二进制文件(Windows二进制文件位于目录“windows”中)。
培训和测试数据文件的格式是:<label> <index1>:<value1> <index2>:<value2> ...。
libsvm参数说明
libsvm参数说明(实用版)目录1.引言2.LIBSVM 简介3.LIBSVM 参数说明4.使用 LIBSVM 需要注意的问题5.结束语正文1.引言支持向量机(Support Vector Machine, SVM)是一种非常强大和灵活的监督学习算法,它可以用于分类和回归任务。
在 SVM 的研究和应用中,LIBSVM 是一个非常重要的工具,它为 SVM 的实现和应用提供了强大的支持。
本文将对 LIBSVM 的参数进行详细的说明,以帮助读者更好地理解和使用这个工具。
2.LIBSVM 简介LIBSVM 是一个开源的 SVM 实现库,它提供了丰富的功能和接口,可以支持多种操作系统,包括 Windows、Linux 和 Mac OS 等。
LIBSVM 主要包括三个部分:svm-train、svm-predict 和 svm-plot。
svm-train 用于训练 SVM 模型,svm-predict 用于预测新数据,svm-plot 用于绘制各种图表,以便于观察和分析模型性能。
3.LIBSVM 参数说明LIBSVM 的参数设置对于模型的性能至关重要。
以下是一些常用的参数及其说明:- -train:用于指定训练数据的文件名。
- -test:用于指定测试数据的文件名。
- -model:用于指定模型文件的名称。
- -参数:用于设置 SVM 模型的参数,例如 C、核函数等。
- -cache-size:用于设置缓存大小,以加速训练过程。
- -tolerance:用于设置收敛阈值,控制训练过程的终止条件。
- -shrinking:用于设置是否使用启发式方法进行训练。
- -probability:用于设置是否计算预测概率。
4.使用 LIBSVM 需要注意的问题在使用 LIBSVM 时,需要注意以下问题:- 设置合适的参数:LIBSVM 的参数设置对模型性能有很大影响,需要根据具体问题和数据集进行调整。
- 特征选择:在实际应用中,特征选择对于模型性能至关重要。
libsvm参数说明
libsvm参数说明摘要:一、libsvm 简介- 什么是libsvm- libsvm 的作用二、libsvm 参数说明- 参数分类- 参数详细说明- 核函数参数- 松弛参数- 惩罚参数- 迭代次数参数- 其他参数三、libsvm 参数调整- 参数调整的重要性- 参数调整的方法正文:【libsvm 简介】libsvm 是一款广泛应用于机器学习领域的开源软件,全称是“LIBSVM”,它提供了支持向量机(SVM)的完整实现,可以用于分类和回归等多种任务。
libsvm 不仅支持常见的数据集格式,还提供了丰富的API 接口,方便用户进行二次开发和应用。
libsvm 的主要作用是帮助用户解决高维数据分类和回归问题。
在面对高维数据时,传统的分类算法可能会遇到“维数灾难”,导致分类效果不佳。
而libsvm 通过使用核函数技术,将高维数据映射到低维空间,从而有效地解决了这个问题。
【libsvm 参数说明】libsvm 提供了丰富的参数供用户调整,以达到最佳分类效果。
这些参数主要分为以下几类:1.核函数参数:包括核函数类型(如线性核、多项式核、径向基函数核等)和核函数参数(如径向基函数核的核径宽)。
2.松弛参数:用于控制分类间隔的大小,对最终分类结果有一定影响。
3.惩罚参数:控制模型对误分类的惩罚力度,对分类效果有重要影响。
4.迭代次数参数:控制支持向量机算法的迭代次数,影响模型的收敛速度。
5.其他参数:如学习率、最小化目标函数的迭代次数等。
【libsvm 参数调整】参数调整是libsvm 使用过程中非常重要的一环,合适的参数设置可以使模型达到更好的分类效果。
参数调整的方法主要有以下几种:1.网格搜索法:通过遍历参数空间的各个点,找到最佳参数组合。
这种方法适用于参数空间较小的情况。
2.随机搜索法:在参数空间中随机选取一定数量的点进行遍历,找到最佳参数组合。
这种方法适用于参数空间较大,且网格搜索法效果不佳的情况。
3.贝叶斯优化法:利用贝叶斯理论,对参数进行加权调整,以提高搜索效率。
libsvm参数说明
libsvm参数说明【原创版】目录1.概述2.安装与配置3.参数说明4.应用实例5.总结正文1.概述LIBSVM 是一个开源的支持向量机(SVM)算法库,它可以在多种平台上运行,包括 Windows、Linux 和 Mac OS。
LIBSVM 提供了一系列用于解决分类和回归问题的工具和算法,它的核心是基于序列最小化算法的支持向量机。
2.安装与配置在使用 LIBSVM 之前,需要先安装它。
在 Windows 平台上,可以直接下载LIBSVM 的二进制文件,然后设置环境变量。
对于 Linux 和 Mac OS 平台,需要先安装相应的依赖库,然后编译并安装 LIBSVM。
在安装完成后,需要配置 LIBSVM 的参数,包括选择核函数、设置惩罚参数等。
这些参数对于支持向量机的性能至关重要,需要根据实际问题进行调整。
3.参数说明LIBSVM 的参数主要包括以下几个方面:- 核函数:LIBSVM 支持多种核函数,包括线性核、多项式核、径向基函数(RBF)核和 Sigmoid 核。
核函数的选择取决于问题的性质,需要根据实际问题进行选择。
- 惩罚参数:惩罚参数用于控制模型的复杂度,避免过拟合。
惩罚参数的取值范围是 0 到 1,取值越小,模型的复杂度越高,过拟合的风险也越高。
- 迭代次数:迭代次数用于控制算法的收敛速度,取值越大,收敛速度越快,但可能会影响模型的精度。
- 随机种子:随机种子用于生成随机数,影响模型的初始化和迭代过程。
在实际应用中,建议设置随机种子,以保证模型的可重复性。
4.应用实例LIBSVM 在实际应用中可以用于多种问题,包括分类、回归和排序等。
例如,在人脸检测、车牌识别和文本分类等问题中,可以使用 LIBSVM 来实现支持向量机算法。
5.总结LIBSVM 是一个功能强大的支持向量机库,它提供了多种核函数和参数设置,可以用于解决多种实际问题。
第1页共1页。
libsvm参数说明
libsvm参数说明摘要:1.介绍libsvm2.libsvm 的参数说明3.使用libsvm 的注意事项4.结束语正文:1.介绍libsvmLIBSVM(Library for Support Vector Machines)是一个开源的支持向量机(SVM)算法库,它可以帮助我们解决分类和回归问题。
SVM 算法是一种非常强大的机器学习算法,它可以在各种领域中得到广泛的应用,例如人脸检测、车牌识别等。
2.libsvm 的参数说明在使用libsvm 时,我们需要了解它的一些参数,以便更好地利用这个工具。
以下是一些常见的libsvm 参数及其说明:- -s:表示是否进行核函数的平滑处理。
默认值为1,表示不进行平滑处理。
- -t:表示是否启用时间限制。
默认值为0,表示不限制运行时间。
- -n:表示SVM 的核函数类型。
默认值为3,表示使用径向基函数(rbf)。
- -c:表示SVM 的成本参数C。
默认值为1.0,表示使用线性核函数。
- -g:表示SVM 的梯度裁剪参数。
默认值为0.1,表示启用梯度裁剪。
- -b:表示是否在输出结果中包含预测样本的类别。
默认值为0,表示不输出。
3.使用libsvm 的注意事项在使用libsvm 时,我们需要注意以下几点:- 安装libsvm 时,需要添加环境变量,以便正确地调用该库。
- 在使用libsvm 前,需要对数据进行预处理,例如缩放、归一化等。
- 选择合适的核函数和参数C 是提高SVM 算法性能的关键。
- 在训练模型时,可以采用交叉验证等方法来避免过拟合。
4.结束语总之,libsvm 是一个功能强大的支持向量机库,它可以帮助我们解决各种分类和回归问题。
在使用libsvm 时,我们需要了解其参数的含义,并根据实际需求进行相应的设置。
LibSVM使用的简单介绍
LIBSVM使用的详细说明一、基本介绍LIBSVM是台湾大学林智仁教授2001年开发的一套支持向量机的库,运算速度快,可以很方便的对数据做分类或回归。
由于LIBSVM程序小,运用灵活,输入参数少,并且是开源的,易于扩展,因此成为目前国内应用最多的SVM的库。
这套库目前已经发展到2.9版。
主要有5个文件夹和一些c++源码文件。
Java主要是应用于java平台;Python是用来参数优选的工具,稍后介绍;svm-toy是一个可视化的工具,用来展示训练数据和分类界面,里面是源码,其编译后的程序在windows文件夹下;tools—主要包含四个python文件,用来数据集抽样(subset),参数优选(grid),集成测试(easy), 数据检查(check data);windows包含libSVM四个exe程序包,我们所用的库就是他们。
其中svm-scale.exe是用来对原始样本进行缩放的;svm-train.exe主要实现对训练数据集的训练,并可以获得SVM模型;svmpredict 是根据训练获得的模型,对数据集合进行预测。
还有一个svm-toy.exe之前已经交待过,是一个可视化工具。
里面还有个heart_scale,是一个样本文件,可以用记事本打开,用来测试用的。
二、LIBSVM的使用规范1. libSVM的数据格式Label 1:value 2:value …Label是类别的标识,比如上节train.model中提到的1 -1,你可以自己随意定,比如-10,0,15。
如果是回归,这是目标值,就要实事求是了。
Value就是要训练的数据,从分类的角度来说就是特征值,数据之间用空格隔开,比如:-15 1:0.708 2:1056 3:-0.3333需要注意的是,如果特征值为0,特征冒号前面的(姑且称做序号)可以不连续。
如:-15 1:0.708 3:-0.3333表明第2个特征值为0,从编程的角度来说,这样做可以减少内存的使用,并提高做矩阵内积时的运算速度。
1-6 lib-svm 经典使用 理论和介绍 工具用法 grid.py easy.py等
1/flydreamGG/archive/2009/08.aspx/flydreamGG/archive/2009/08.aspxLibSVM学习(一)——初识LibSVM 收藏LibSVM是台湾林智仁(Chih-Jen Lin) 教授2001年开发的一套支持向量机的库,这套库运算速度还是挺快的,可以很方便的对数据做分类或回归。
由于libSVM程序小,运用灵活,输入参数少,并且是开源的,易于扩展,因此成为目前国内应用最多的SVM的库。
这套库可以从.tw/~cjlin/免费获得,目前已经发展到2.89版。
下载.zip格式的版本,解压后可以看到,主要有5个文件夹和一些c++源码文件。
Java ——主要是应用于java平台;Python ——是用来参数优选的工具,稍后介绍;svm-toy ——一个可视化的工具,用来展示训练数据和分类界面,里面是源码,其编译后的程序在windows文件夹下;tools ——主要包含四个python文件,用来数据集抽样(subset),参数优选(grid),集成测试(easy), 数据检查(checkdata);windows ——包含libSVM四个exe程序包,我们所用的库就是他们,里面还有个heart_scale,是一个样本文件,可以用记事本打开,用来测试用的。
其他.h和.cpp文件都是程序的源码,可以编译出相应的.exe文件。
其中,最重要的是svm.h和svm.cpp文件,svm-predict.c、svm-scale.c和svm-train.c(还有一个svm-toy.c在svm-toy文件夹中)都是调用的这个文件中的接口函数,编译后就是windows下相应的四个exe程序。
另外,里面的README 跟FAQ 也是很好的文件,对于初学者如果E文过得去,可以看一下。
下面以svm-train为例,简单的介绍下,怎么编译:(这步很简单,也没必要,对于仅仅使用libsvm库的人来说,windows下的4个exe包已经足够了,之所以加这步,是为了那些做深入研究的人,可以按照自己的思路改变一下svm.cpp,然后编译验证)我用的是VC 6.0,新建一个控制台(win32 console application)程序,程序名叫svm-train(这个可以随意),点击OK后,选择empty。
libSVM使用说明
3.2 SVM软件3.2.1 LIBSVM软件包支持向量机所涉及到的数学知识对一般的化学研究者来说是比较难的,自己编程实现该算法难度就更大了。
但是现在的网络资源非常发达,而且国际上的科学研究者把他们的研究成果已经放在网络上,免费提供给用于研究目的,这样方便大多数的研究者,不必要花费大量的时间理解SVM算法的深奥数学原理和计算机程序设计。
目前有关SVM计算的相关软件有很多,如LIBSVM、mySVM、SVMLight等,这些软件大部分的免费下载地址和简单介绍都可以在/上获得。
LIBSVM是台湾大学林智仁(Lin Chih-Jen)副教授等开发设计的一个简单、易于使用和快速有效的SVM模式识别与回归的软件包,他不但提供了编译好的可在Windows系列系统的执行文件,还提供了源代码,方便改进、修改以及在其它操作系统上应用;该软件还有一个特点,就是对SVM所涉及的参数调节相对比较少,提供了很多的默认参数,利用这些默认参数就可以解决很多问题;并且提供了交互检验(Cross Validation)的功能。
该软件包可以在.tw/~cjlin/免费获得。
该软件可以解决C-SVM分类、ν-SVM 分类、ε-SVM回归和ν-SVM回归等问题,包括基于一对一算法的多类模式识别问题。
在第2章中我们也介绍了该软件的一些优点,因此通过综合考虑,我们决定采用该软件作为工作软件。
SVM用于模式识别或回归时,SVM方法及其参数、核函数及其参数的选择,目前国际上还没有形成一个统一的模式,也就是说最优SVM算法参数选择还只能是凭借经验、实验对比、大范围的搜寻或者利用软件包提供的交互检验功能进行寻优。
3.2.2 SVM的辅助程序LIBSVM的输入数据有严格的格式(见该软件的使用方法),因此我们在进行SVM计算之前必须对平常使用的数据文件转换成能够用于LIBSVM的格式;计算结果(分类LOO的识别率或回归的相关系数、模型的支持向量样本数等、生成寻优自动计算的批处理等。
libsvm参数说明
libsvm参数说明摘要:一、libsvm 简介1.libsvm 的作用2.libsvm 的安装和使用二、libsvm 参数说明1.核函数选择2.C 参数调整3.罚参数选择4.迭代次数选择5.其他参数三、libsvm 参数调整策略1.交叉验证2.网格搜索3.启发式方法四、libsvm 在实际应用中的案例分析1.情感分析2.文本分类3.图像分类正文:一、libsvm 简介libsvm 是一款常用的支持向量机(SVM)开源实现库,它提供了C、Python、Java 等语言的接口,方便用户在不同平台上进行使用。
libsvm 具有较高的效率和准确性,被广泛应用于数据挖掘、机器学习、模式识别等领域。
1.libsvm 的作用libsvm 主要作用是实现支持向量机算法,它可以解决分类和回归问题,包括线性分类和非线性分类。
此外,libsvm 还提供了核函数,使得它可以处理高维数据和复杂数据的分类问题。
2.libsvm 的安装和使用libsvm 的安装过程比较简单,只需要按照官方文档的指导进行操作即可。
安装完成后,可以通过调用libsvm 提供的API 进行模型的训练和预测。
二、libsvm 参数说明libsvm 提供了丰富的参数供用户调整,以达到最佳的效果。
1.核函数选择核函数是libsvm 的重要组成部分,它决定了libsvm 如何处理输入数据。
libsvm 提供了多种核函数,如线性核、多项式核、径向基函数核等。
用户可以根据问题的特点选择合适的核函数。
2.C 参数调整C 参数是libsvm 中的一个重要参数,它控制了模型的软约束程度。
较小的C 值会使得模型更加灵活,可能导致过拟合;较大的C 值会使得模型更加严格,可能导致欠拟合。
因此,合理调整C 参数对于模型的性能至关重要。
3.罚参数选择罚参数是libsvm 中的另一个重要参数,它控制了模型对训练数据的惩罚程度。
较小的罚参数会导致模型对训练数据的拟合程度过高,可能会导致过拟合;较大的罚参数会使得模型对训练数据的拟合程度降低,可能会导致欠拟合。
matlab自带的SVM工具箱和libsvm工具箱中svmtrain和svmpredict的句法
matlab自带的SVM工具箱和libsvm工具箱中svmtrain和svmpredict的句法如果你使用的是matlab自带的函数,就有svmtrain 和svmclassify两个函数[相应的你可以看matlab自带的帮助文件]而且只能分两类的(当然多类的你可以在此基础上自己写.)使用简要语法如下:svmtrainTrain support vector machine classifierSyntax SVMStruct = svmtrain(Training, Group)SVMStruct= svmtrain(..., 'Kernel_Function', Kernel_FunctionValue, ...)SVMStruct = svmtrain(..., 'RBF_Sigma', RBFSigmaValue, ...)SVMStruct = svmtrain(..., 'Polyorder', PolyorderValue, ...)SVMStruct = svmtrain(..., 'Mlp_Params', Mlp_ParamsValue, ...) SVMStruct = svmtrain(..., 'Method', MethodValue, ...)SVMStruct= svmtrain(..., 'QuadProg_Opts', QuadProg_OptsValue, ...)SVMStruct = svmtrain(..., 'SMO_Opts', SMO_OptsValue, ...)SVMStruct= svmtrain(..., 'BoxConstraint', BoxConstraintValue, ...)SVMStruct = svmtrain(..., 'Autoscale', AutoscaleValue, ...)SVMStruct = svmtrain(..., 'Showplot', ShowplotValue, ...)svmclassifyClassify data using support vector machineSyntax Group = svmclassify(SVMStruct, Sample)Group= svmclassify(SVMStruct, Sample, 'Showplot', ShowplotValue)================如果你使用其他的工具箱当前最好的是libsvm(台湾的林智仁所写),使用方法里面有相应的帮助文件,你也可以搜索论坛相关的论坛里有过讨论...简要的使用方法如下:语法Usage=====matlab> model = svmtrain(training_label_vector, training_instance_matrix [, 'libsvm_options']);-training_label_vector:An m by 1 vector of training labels (type must be double).-training_instance_matrix:An m by n matrix of m training instances with n features.It can be dense or sparse (type must be double).-libsvm_options:A string of training options in the same format as that of LIBSVM.matlab> [predicted_label, accuracy, decision_values/prob_estimates] = svmpredict(testing_label_vector, testing_instance_matrix, model [, 'libsvm_options']);-testing_label_vector:An m by 1 vector of prediction labels. If labels of testdata are unknown, simply use any random values. (type must be double)-testing_instance_matrix:An m by n matrix of m testing instances with n features.It can be dense or sparse. (type must be double)-model:The output of svmtrain.-libsvm_options:A string of testing options in the same format as that of LIBSVM.。
libsvm-mat在MATLAB平台下的安装
libsvm-mat在MATLAB平台下的安装安装libsvm-mat是在MATLAB平台下使用libsvm的前提,如果没有安装好也就无法使用,在MATLAB平台下安装libsvm-mat一般有以下几个大步骤:前提:已经有好libsvm-mat包。
1.将libsvm-mat所在工具箱添加到matlab工作搜索目录(File ——》Set Path… ——》Add with Subfolders...);2.选择编译器(mex -setup)推荐使用Microsoft Visual C++ 6.0编译器或者更高版本的visual studio,一般MATLAB会自带一个编译器Lcc-win32 C 但这个在这里无法使用!因为libsvm源代码使用c++写的,而Lcc-win32 C是一个c编译器,无法编译c++源代码!下面具体说说如何选择编译器。
首先在MATLAB命令窗【Commond Window】中输入:1.mex -setupRemark : 注意mex后面要打一个空格然后是-setup。
千万别忘记打一个空格,发现好多朋友在mex和-setup之间没有打空格!!会出现类似如下内容:1.Please choose your compiler for building external interface (MEX) files:2.Would you like mex to locate installed compilers [y]/n?问你是否locate本机安装的编译器,正规的选择y然后指定编译器即可,先来看一下选择y (选择n在后面说):根据你本机安装的编译器,会出现类似如下内容:1.Please choose your compiler for building external interface (MEX) files:2.Would you like mex to locate installed compilers [y]/n? y3.Select a compiler:4.[1] Lcc-win32 C 2.4.1 in D:\MATLAB~1\sys\lcc5.[2] Microsoft Visual C++6.0 in D:\Microsoft Visual Studio6.7.[0] None8.piler:然后你选择相应的编译器并确认即可:piler: 22.3.Please verify your choices:4.piler: Microsoft Visual C++6.06.Location: D:\Microsoft Visual Studio7.8.Are these correct [y]/n? y9.10.Trying to update options file:C:\Users\faruto\AppData\Roaming\MathWorks\MATLAB\R2009b\mexopts.bat11.From template: D:\MATLAB~1\bin\win32\mexopts\msvc60opts.bat12.13.Done . . .这样就表示编译器选择成功了(此步骤中可能会出现warning警告是正常现象,不用管的说~)。
SVM的工具箱简介
SVM的工具箱简介现在通用的SVM的工具箱有两种,一种叫做SVM通用工具箱,另一种工具箱叫做SVM OSU_3.00工具箱。
那么这两种工具箱有什么区别了?其实它们在界面上没有什么区别,也就是说你在使用SVM通用工具箱和SVM OSU_3.00工具箱时,都是要在Matalab软件的界面下进行使用,但是当你使用第一种工具箱时,你会发现它的计算速度非常的慢以至于有时算一些复杂的数据你需要老半天,相反的是当你在使用第二种工具箱,你会发现,速度还是非常的快的,那么究竟是为什么呢?其实应该发现的是第一种工具箱只有150KB,而第二种工具箱却有850KB,这就是原因,因为第二种工具箱外挂了一个C程序的编译器,也就是说同样的数据用第一种工具箱就是在Matalab语言下进行计算,而用第二种时,它会自动把Matalab程序编译成C程序,然后在C程序下进行计算,这显而易见提高了速度,所以第二种工具箱更为快捷。
那么究竟怎样使用工具箱呢?请看本网站的在线演示。
(注意:本网站使用在线演示的是第一种工具箱的使用而且只演示了分类SVM的算法,其实第一种和第二种工具箱在使用方法上没有什么区别,无非都是编写简单的Matalab程序直接调用工具箱已有的函数即可。
)matlab中SVM工具箱的使用方法(2009-09-24 16:49:16)标签:matlab svm杂谈1,下载SVM工具箱:/faculty/chzheng/bishe/indexfiles/indexl.htm2,安装到matlab文件夹中将下载的SVM工具箱的文件夹放在\matlab7.0.1\toolbox\下方法 1)在命令窗口 addpath('F:\matlab7.0.1\toolbox\svm')which svc即可正确显示路径。
但这种方法下次运行matlab时有需重新添加。
方法2)打开matlab->File->Set Path中添加SVM工具箱的文件夹现在,就成功的添加成功了.可以测试一下:在matlab中输入which svcoutput 回车,如果可以正确显示路径,就证明添加成功了,例如:C:\Program Files\MATLAB71\toolbox\svm\svcoutput.m3,用SVM做分类的使用方法1)在matlab中输入必要的参数:X,Y,ker,C,p1,p2我做的测试中取的数据为:N = 50;n=2*N;randn('state',6);x1 = randn(2,N)y1 = ones(1,N);x2 = 5+randn(2,N);y2 = -ones(1,N);figure;plot(x1(1,:),x1(2,:),'bx',x2(1,:),x2(2,:),'k.');axis([-3 8 -3 8]);title('C-SVC')hold on;X1 = [x1,x2];Y1 = [y1,y2];X=X1';Y=Y1';其中,X是100*2的矩阵,Y是100*1的矩阵C=Inf;ker='linear';global p1 p2p1=3;p2=1;然后,在matlab中输入:[nsv alpha bias] = svc(X,Y,ker,C),回车之后,会显示:Support Vector Classification_____________________________Constructing ...Optimising ...Execution time: 1.9 secondsStatus : OPTIMAL_SOLUTION|w0|^2 : 0.418414Margin : 3.091912Sum alpha : 0.418414Support Vectors : 3 (3.0%)nsv =3alpha =0.00000.00000.00000.00000.00002)输入预测函数,可以得到与预想的分类结果进行比较.输入:predictedY = svcoutput(X,Y,X,ker,alpha,bias),回车后得到:predictedY =1111111113)画图输入:svcplot(X,Y,ker,alpha,bias),回车补充:X和Y为数据,m*n:m为样本数,n为特征向量数比如:取20组训练数据X,10组有故障,10组无故障的,每个训练数据有13个特征参数,则m=20,n=13 Y为20*1的矩阵,其中,10组为1,10组为-1.对于测试数据中,如果取6组测试数据,3组有故障,3组无故障的,则m=6,n=13Y中,m=6,n=1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
libsvm-mat-加强工具箱介绍
由于libsvm的matlab版本的工具箱libsvm-mat并没有给出寻参的函数模块,而无论利用libsvm工具箱进行分类还是回归,参数的选取是十分重要的,鉴于此libsvm-mat-加强工具箱在libsvm-mat-2.89-3的基础上给出相应的辅助函数插件,方便用户来选取最佳的参数,该加强工具箱可以在MATLAB中文论坛上下载,现对该加强工具箱里主要的辅助函数插件的接口进行介绍,所有的源代码可以到MATLAB中文论坛下载并查看。
====================================================== ====
归一化函数:scaleForSVM
[train_scale,test_scale,ps]= scaleForSVM(train_data,test_data,ymin,ymax) 输入:
train_data:训练集,格式要求与svmtrain相同。
test_data:测试集,格式要求与svmtrain相同。
ymin,ymax:归一化的范围,即将训练集和测试都归一化到[ymin,ymax],这两个参数可不输入,默认值为ymin=0,ymax=1,即默认将训练集和测试都归一化到[0,1]。
输出:
train_scale:归一化后的训练集。
test_scale:归一化后的测试集。
ps:归一化过程中的映射(方便反归一化使用)。
====================================================== ====
pca降维预处理函数:pcaForSVM
[train_pca,test_pca] = pcaForSVM(train_data,test_data,threshold)
输入:
train_data:训练集,格式要求与svmtrain相同。
test_data:测试集,格式要求与svmtrain相同。
threshold:对原始变量的解释程度([0,100]之间的一个数),通过该阈值可以选取出主成分,该参数可以不输入,默认为90,即选取的主成分默认可以达到对原始变量达到90%的解释程度。
输出:
train_pca:进行pca降维预处理后的训练集。
test_pca:进行pca降维预处理后的测试集。
====================================================== ====
网格参数寻优函数(分类问题):SVMcgForClass [bestCVaccuracy,bestc,bestg]=
SVMcgForClass(train_label,train,
cmin,cmax,gmin,gmax,v,cstep,gstep,accstep)
输入:
train_label:训练集的标签,格式要求与svmtrain相同。
train:训练集,格式要求与svmtrain相同。
cmin,cmax:惩罚参数c的变化范围,即在[2^cmin,2^cmax]范围内寻找最佳的参数c,默认值为cmin=-8,cmax=8,即默认惩罚参数c的范围是[2^(-8),2^8]。
gmin,gmax:RBF核参数g的变化范围,即在[2^gmin,2^gmax]范围内寻找最佳的RBF核参数g,默认值为gmin=-8,gmax=8,即默认RBF核参数g的范围是[2^(-8),2^8]。
v:进行Cross Validation过程中的参数,即对训练集进行v-fold Cross Validation,默认为3,即默认进行3折CV过程。
cstep,gstep:进行参数寻优是c和g的步进大小,即c的取值为2^cmin,2^(cmin+cstep),…,2^cmax,,g的取值为2^gmin,2^(gmin+gstep),…,2^gmax,默认取值为cstep=1,gstep=1。
accstep:最后参数选择结果图中准确率离散化显示的步进间隔大小([0,100]之间的一个数),默认为4.5。
输出:
bestCVaccuracy:最终CV意义下的最佳分类准确率。
bestc:最佳的参数c。
bestg:最佳的参数g。
====================================================== ====
网格参数寻优函数(回归问题):SVMcgForRegress
[bestCVmse,bestc,bestg]=
SVMcgForRegress(train_label,train,
cmin,cmax,gmin,gmax,v,cstep,gstep,msestep)
其输入输出与SVMcgForClass类似,这里不再赘述。
====================================================== ====
利用PSO参数寻优函数(分类问题):psoSVMcgForClass [bestCVaccuracy,bestc,bestg,pso_option]=
psoSVMcgForClass(train_label,train,pso_option)
输入:
train_label:训练集的标签,格式要求与svmtrain相同。
train:训练集,格式要求与svmtrain相同。
pso_option:PSO中的一些参数设置,可不输入,有默认值,详细请看代
码的帮助说明。
输出:
bestCVaccuracy:最终CV意义下的最佳分类准确率。
bestc:最佳的参数c。
bestg:最佳的参数g。
pso_option:记录PSO中的一些参数。
====================================================== ====
利用PSO参数寻优函数(回归问题):psoSVMcgForRegress [bestCVmse,bestc,bestg,pso_option]=
psoSVMcgForRegress(train_label,train,pso_option)
其输入输出与psoSVMcgForClass类似,这里不再赘述。
====================================================== ====
利用GA参数寻优函数(分类问题):gaSVMcgForClass [bestCVaccuracy,bestc,bestg,ga_option]=
gaSVMcgForClass(train_label,train,ga_option)
输入:
train_label:训练集的标签,格式要求与svmtrain相同。
train:训练集,格式要求与svmtrain相同。
ga_option:GA中的一些参数设置,可不输入,有默认值,详细请看代码的帮助说明。
输出:
bestCVaccuracy:最终CV意义下的最佳分类准确率。
bestc:最佳的参数c。
bestg:最佳的参数g。
ga_option:记录GA中的一些参数。
====================================================== ====
利用GA参数寻优函数(回归问题):gaSVMcgForRegress [bestCVmse,bestc,bestg,ga_option]=
gaSVMcgForRegress(train_label,train,ga_option)
其输入输出与gaSVMcgForClass类似,这里不再赘述。