电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOC文档下载
分享到微信 分享到微博 分享到QQ空间

libsvm学习

  • 资源ID:89125190       资源大小:215.50KB        全文页数:10页
  • 资源格式: DOC        下载积分:12金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要12金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

libsvm学习

LibSVM学习LibSVM学习2011年11月17日LibSVM学习 初识LibSVM LibSVM是台湾 林智仁(Chih-Jen Lin's) 教授2001年开发的一套支持向量机的库,这套库运算速度还是挺快的,可以很方便的对数据做分类或回归。 由于libSVM程序小,运用灵活,输入参数少,并且是开源的,易于扩展,因此成为目前国内应用最多的SVM的库。 这套库可以从林智仁的home page上免费获得,目前已经发展到3.0版。下载.zip格式的版本,解压后可以看到,主要有5个文件夹和一些c+源码文件。 Java 主要是应用于java平台的源码和libsvm.jar包; Python 是用来参数优选的工具,稍后介绍; svm-toy 一个可视化的工具,用来展示训练数据和分类界面,里面是源码,其编译后的程序在windows文件夹下; tools 主要包含四个python文件,用来数据集抽样(subset.py),参数优选(grid.py),集成测试(easy.py), 数据检查(checkdata.py); windows 包含libSVM四个exe程序包,我们所用的库和程序就是它们。 其他.h和.cpp文件都是程序的源码,可以编译出相应的.exe文件。其中,最重要的是svm.h和svm.cpp文件,svm-predict.c、svm-scale.c和svm-train.c(还有一个svm-toy.cpp在svm-toyqt文件夹中)都是调用的这个文件中的接口函数,编译后就是windows下相应的四个exe程序。另外,里面的 README 跟 FAQ 也是很好的文件,对于初学者如果E文过得去,可以看一下。 下面以svm-train为例,简单的介绍下,怎么编译:(这步很简单,也没必要,对于仅仅使用libsvm库的人来说,windows下的4个exe包已经足够了,之所以加这步,是为了那些做深入研究的人,可以按照自己的思路改变一下svm.cpp,然后编译验证) 我用的是VC 6.0,新建一个控制台(win32 console application)程序,程序名叫svmtrain(这个可以随意),点击OK后,选择empty。 进入程序框架后,里面什么都没有,然后找到你的程序目录,把svm-train.c、svm.h和svm.cpp拷贝过去(.c文件是c语言的,要是你习惯了c+,你尽可以改成.cpp),然后把这3个文件添加到工程,编译。如果没错误,到debug下面看看,是不是有个svm-train.exe。其实windows下的svm-train.exe就是这样编译出来的。 哈哈,怎么样是不是很简单。但是,这样的程序直接运行没意义,他要在dos下运行,接收参数才行。下面开始我们的libsvm的体验之旅。 第一次体验libSvm 1. 把LibSVM包解压到相应的目录(因为我只需要里面windows文件夹中的东东,我们也可以只把windows文件夹拷到相应的目录),比如D:libsvm。 2. 在电脑"开始"的"运行"中输入cmd,进入DOS环境。定位到D:libsvmwindows目录下,具体命令如下: (上面第一行是先定位到盘符d,第二行cd 是定位到相应盘符下的目录) 3. 进行libsvm训练,输入命令:(这里要注意文件的名字,2.89以前版本都是svmtrain.exe) svm-train heart_scale train.model PS:heart_scale 是目录下的已经存在的样本文件(此处将下载的压缩文件中的heart_scale放置入D:libsvmwindows下即可),要换成自己的文件,只需改成自己的文件名就可以了。 PS:train.model 是创建的结果文件,保存了训练后的结果。 #iter为迭代次数; nu 是你选择的核函数类型的参数; obj为SVM文件转换为的二次规划求解得到的最小值,rho为判决函数的偏置项b; nSV 为标准支持向量个数(0<ai<c),nBSV为边界上的支持向量个数(ai=c); Total nSV为支持向量总个数(对于两类来说,因为只有一个分类模型Total nSV = nSV,但是对于多类,这个是各个分类模型的nSV之和)。 在目录下,还可以看到产生了一个train.model文件,可以用记事本打开,记录了训练后的结果。 svm_type c_svc /所选择的svm类型,默认为c_svc kernel_type rbf /训练采用的核函数类型,此处为RBF核 gamma 0.0769231 /RBF核的参数 nr_class 2 /类别数,此处为两分类问题 total_sv 132 /支持向量总个数 rho 0.424462 /判决函数的偏置项b label 1 -1 /原始文件中的类别标识 nr_sv 64 68 /每个类的支持向量机的个数 SV /以下为各个类的权系数及相应的支持向量 到现在,第一次体验libsvm到这就基本结束了,其他的两个(svm-predict、svm-scale)的使用过程类似。怎么样,挺爽的吧。对于个别参数你还不理解,没关系,下面我们会具体讲到。 LibSVM使用规范 其实,这部分写也是多余,google一下"libsvm使用",就会N多的资源,但是,为了让你少费点心,在这里就简单的介绍一下,有不清楚的只有动动你的mouse了。需要说明的是,2.89版本以前,都是svmscale、svmtrain和svmpredict,最新的是svm-scale、svm-train和svm-predict,要是用不习惯,只需要把那四个exe文件名去掉中间的短横线,改成svmscale、svmtrain和svmpredict就可以了,我们还是按原来函数名的讲。 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,从编程的角度来说,这样做可以减少内存的使用,并提高做矩阵内积时的运算速度。我们平时在matlab中产生的数据都是没有序号的常规矩阵,所以为了方便最好编一个程序进行转化。 2. svmscale的用法 svmscale是用来对原始样本进行缩放的,范围可以自己定,一般是0,1或-1,1。 缩放的目的主要是: 1)防止某个特征过大或过小,从而在训练中起的作用不平衡; 2)为了计算速度。因为在核计算中,会用到内积运算或exp运算,不平衡的数据可能造成计算困难。 用法: svmscale -l lower -u upper-y y_lower y_upper -s save_filename -r restore_filename filename 其中,中都是可选项: -l:设定数据下限;lower:设定的数据下限值,缺省为-1 -u:设定数据上限;upper:设定的数据上限值,缺省为 1 -y:是否对目标值同时进行缩放;y_lower为下限值,y_upper为上限值; -s save_filename:表示将缩放的规则保存为文件save_filename; -r restore_filename:表示将按照已经存在的规则文件restore_filename进行缩放; filename:待缩放的数据文件,文件格式按照libsvm格式。 默认情况下,只需要输入要缩放的文件名就可以了:比如(已经存在的文件为test.txt) svmscale test.txt 这时,test.txt中的数据已经变成-1,1之间的数据了。但是,这样原来的数据就被覆盖了,为了让规划好的数据另存为其他的文件,我们用一个dos的重定向符 > 来另存为(假设为out.txt): svmscale test.txt > out.txt 运行后,我们就可以看到目录下多了一个out.txt文件,那就是规范后的数据。 假如,我们想设定数据范围0,1,并把规则保存为test.range文件: svmscale l 0 u 1 s test.range test.txt > out.txt 这时,目录下又多了一个test.range文件,可以用记事本打开,下次就可以用-r test.range来载入了。 3. svmtrain的用法 svmtrain我们在前面已经接触过,他主要实现对训练数据集的训练,并可以获得SVM模型。 用法: svmtrain options training_set_file model_file 其中,options为操作参数,可用的选项即表示的涵义如下所示: -s 设置svm类型: 0 C-SVC 1 v-SVC 2 one-class-SVM 3 -SVR 4 n - SVR -t 设置核函数类型,默认值为2 0 - 线性核:u'*v 1 - 多项式核: (g*u'*v+ coef 0)degree 2 - RBF 核:exp(-*|u-v|2) 3 - sigmoid 核:tanh(*u'*v+ coef 0) -d degree: 设置多项式核中degree的值,默认为3 -g: 设置核函数中的值,默认为1/k,k为特征(或者说是属性)数; -r coef 0:设置核函数中的coef 0,默认值为0; -c cost:设置C-SVC、-SVR、n - SVR中从惩罚系数C,默认值为1; -n v :设置v-SVC、one-class-SVM 与n - SVR 中参数n ,默认值0.5; -p :设置v-SVR的损失函数中的e ,默认值为0.1; -m cachesize:设置cache内存大小,以MB为单位,默认值为40; -e :设置终止准则中的可容忍偏差,默认值为0.001; -h shrinking:是否使用启发式,可选值为0 或1,默认值为1; -b 概率估计:是否计算SVC或SVR的概率估计,可选值0 或1,默认0; -wi weight:对各类样本的惩罚系数C加权,默认值为1; -v n:n折交叉验证模式; model_file:可选项,为要保存的结果文件,称为模型文件,以便在预测时使用。 默认情况下,只需要给函数提供一个样本文件名就可以了,但为了能保存结果,还是要提供一个结果文件名,比如:test.model,则命令为: svmtrain tes

注意事项

本文(libsvm学习)为本站会员(小**)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.