




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
在用林智仁老师的LIBSVM-2.82做SVM回归的过程中,深深得益于网上共享的学习笔记以及一些热心网友的帮助(哪怕只是一句提醒),前面想着一定要写个学习笔记。自己会用了之后,突然发现原来值得讲出来的实在很少,甚至不想再写什么。想到自己花大概两个月才把一个程序跑明白,觉得还是因为其中有些让自己头疼的问题的,想必其他学习者未尝不需要多花功夫琢磨这些,未免浪费时间(技术问题嘛),还是写一个简单的学习笔记,把自己觉得最要弄明白的难点记下来吧。装microsoft Visualstudio 6.0(是装python需要的,可能是需要c语言的环境吧)装gnuplot :gp400win32装python试运行程序中遇到的问题读PYTHON写的GRID.PY程序问题1:程序的路径指定问题 在程序的相关语句中指出调用的程序的路径注意类似:D:programm filesgnuplot.exe 这样的路径会报错,因为程序在读语句时在programm后面断句,而不是把programm files整体当作一个路径问题2:命令行运行PYTHON 以及输入参数 E:libsvm-2.82toolspython gridregcopy.py,首先进入到PYTHON程序的上一级路径 然后用python接程序名称以及参数当时的问题是怎么也弄不明白PYTHON程序自带的几个操作窗口都不能进行程序的运行。呵呵,好像都只是脚本编辑器(反正我能用命令行运行就可以了何况加一个!就可以在MATLAB中执行)。另外关于参数,读原程序怎么也不懂,看了魏忠的学习笔记才明白的:OS.ARGV可以在命令行输入,作为OS.ARGV列表的值。但是注意OS.ARGV0默认的就是所执行的程序本身,也就是除了输入的N个参数,OS.ARGV列表实际上有N+1个值,其中输入的第一个参数就是OS.ARGV1,也就是它的第二个参数。问题3:参数选择程序跑不动 提示:worker local quit晕了几天后面终于明白不是程序有问题,是因为数据量太大,程序直接溢出的缘故:注意有一个参数-M 用来选择缓存的大小。subset这个程序仍然运行不了不知道自己的数据和程序包里给出的例子有什么区别。不过我的s数据量小,这个不能用不碍事。注意:testing data/training data(不同文件) 需要一起scale。也就是要把测试集和训练集在一个框架下进行归一化处理,很容易想见的道理(可是容易忽略)。n-fold cross validationn 就是要拆成几组,像 n=3 就会拆成三組,然后先拿1和2来train model 并predict 3 以得到正确率; 再来拿2和3 train 并predict 1,最后用1和3 train并predict 2。其它以此类推。一般数据选5-或10 fold cross validation就可以。不过n越大,数据浪费的就越少(用于训练集的信息就多),但是运算量增加,极端的就是n等于数据的个数(叫做LEAVE-ONE OUT)。回归的参数选择程序:paiup的笔记里面说GRID程序只能用于分类的参数选择,不过还好林智仁老师开发了专门用于回归的参数选择程序。GRID程序的原理很简单:就是把要选择的参数当作一个坐标格子上的点,选择的过程就是遍历空间(当然可以有一定的范围)中的各个方向的参数组合的空间点。如果是两个参数,就是在二维的平面中找到一个合适的点(这种离散的选择参数的方法,应该只是找到一个比较好的收敛的参数吧)。至于GRID选择参数,在我做的回归里头还是相当要紧的。选好了参数R2会是0.99,但是参数(C,g,p)参数稍微变动一下,可能使R2降低到0.2。而参数v,即用来做cross validation的数据组数对参数的选择影响并不太大就是说v选为5和10并不会导致最后选到的参数大相径庭。支持向量机工具libsvm简单介绍关键词: 支持向量机 libsvm 林智仁 Matlab 1. LIBSVM 软件包简介 LIBSVM 是台湾大学林智仁(Chih-Jen Lin)博士等开发设计的一个操作简单、易于使用、快速有效的通用SVM 软件包,可以解决分类问题(包括C- SVC、n - SVC )、回归问题(包括e - SVR、n - SVR )以及分布估计(one-class-SVM )等问题,提供了线性、多项式、径向基和S形函数四种常用的核函数供选择,可以有效地解决多类问题、交叉验证选择参数、对不平衡样本加权、多类问题的概率估计等。LIBSVM 是一个开源的软件包,需要者都可以免费的从作者的个人主页.tw/cjlin/ 处获得。他不仅提供了LIBSVM的C+语言的算法源代码,还提供了Python、Java、R、MATLAB、Perl、Ruby、LabVIEW以及C#.net 等各种语言的接口,可以方便的在Windows 或UNIX 平台下使用。另外还提供了WINDOWS 平台下的可视化操作工具SVM-toy,并且在进行模型参数选择时可以绘制出交叉验证精度的等高线图。 2. LIBSVM 使用方法简介 LibSVM是以源代码和可执行文件两种方式给出的。如果是Windows系列操作系统,可以直接使用软件包提供的程序,也可以进行修改编译;如果是Unix类系统,必须自己编译。 LIBSVM 在给出源代码的同时还提供了Windows操作系统下的可执行文件,包括:进行支持向量机训练的svmtrain.exe;根据已获得的支持向量机模型对数据集进行预测的svmpredict.exe;以及对训练数据与测试数据进行简单缩放操作的svmscale.exe。它们都可以直接在DOS 环境中使用。如果下载的包中只有C+的源代码,则也可以自己在VC等软件上编译生成可执行文件。 3. LIBSVM 使用的一般步骤是: 1) 按照LIBSVM软件包所要求的格式准备数据集; 2) 对数据进行简单的缩放操作; 3) 考虑选用RBF 核函数; 4) 采用交叉验证选择最佳参数C与g ; 5) 采用最佳参数C与g 对整个训练集进行训练获取支持向量机模型; 6) 利用获取的模型进行测试与预测。 4. LIBSVM使用的数据格式 1)训练数据和检验数据文件格式如下: : : . 其中 是训练数据集的目标值,对于分类,它是标识某类的整数(支持多个类);对于回归,是任意实数。 是以1开始的整数,可以是不连续的;为实数,也就是我们常说的自变量。检验数据文件中的label只用于计算准确度或误差,如果它是未知的,只需用一个数填写这一栏,也可以空着不填。 在程序包中,还包括有一个训练数据实例:heart_scale,方便参考数据文件格式以及练习使用软件。可以编写小程序,将自己常用的数据格式转换成这种格式 2)Svmtrain和Svmpredict的用法 LIBSVM软件提供的各种功能都是DOS命令执行方式。我们主要用到两个程序,svmtrain(训练建模)和svmpredict(使用已有的模型进行预测),下面分别对这两个程序的使用方法、各参数的意义以及设置方法做一个简单介绍: (1)Svmtrain的用法: svmtrain options training_set_file model_file Options:可用的选项即表示的涵义如下 -s svm类型:SVM设置类型(默认0) 0 - C-SVC 1 -v-SVC 2 一类SVM 3 - e -SVR 4 - v-SVR -t 核函数类型:核函数设置类型(默认2) 0 线性:uv 1 多项式:(r*uv + coef0)degree 2 RBF函数:exp(-r|u-v|2) 3 sigmoid:tanh(r*uv + coef0) -d degree:核函数中的degree设置(默认3) -g 函数设置(默认1/ r(gama):核函数中的gk) -r coef0:核函数中的coef0设置(默认0) -c cost:设置C-SVC,e -SVR和n-SVR的参数(默认1) -n nu:设置n-SVC,一类SVM和n- SVR的参数(默认0.5) -pe-SVR 中损失函数ee:设置的值(默认0.1) -m cachesize:设置cache内存大小,以MB为单位(默认40) -e e:设置允许的终止判据(默认0.001) -h shrinking:是否使用启发式,0或1(默认1) -wi weight:设置第几类的参数C为weightC(C-SVC中的C)(默认1) -v n: n-fold交互检验模式 其中-g选项中的k是指输入数据中的属性数。option -v 随机地将数据剖分为n部分并计算交互检验准确度和均方根误差。以上这些参数设置可以按照SVM的类型和核函数所支持的参数进行任意组合,如果设置的参数在函数或SVM类型中没有也不会产生影响,程序不会接受该参数;如果应有的参数设置不正确,参数将采用默认值。training_set_file是要进行训练的数据集;model_file是训练结束后产生的模型文件,文件中包括支持向量样本数、支持向量样本以及lagrange系数等必须的参数;该参数如果不设置将采用默认的文件名,也可以设置成自己惯用的文件名。 (2)Svmpredict的用法: svmpredict test_file model_file output_file model_file 是由svmtrain产生的模型文件;test_file是要进行预测的数据文件;Output_file是svmpredict的输出文件。svm-predict没有其它的选项。 下面是具体的使用例子 svmtrain -s 0 -c 1000 -t 1 -g 1 -r 1 -d 3 data_file 训练一个由多项式核(uv+1)3和C=1000组成的分类器。 svmtrain -s 1 -n 0.1 -t 2 -g 0.5 -e 在RBF核函数exp(-0.5|u-v|2)和终止允许限0.00001的条件下,训练一个n-SVM (n0.00001 data_file = 以线性核函数uv和C=10及损失函数e0.1)分类器。 svmtrain -s 3 -p 0.1 -t 0 -c 10 data_file = 0.1求解SVM回归。LibS调用方法及参数 2007-05-03 12:30:42 | Author: King Font Size: Large | Medium | Small libsvm是著名的SVM开源组件,目前有JAVA.C/C+,.NET 等多个版本,本人使用的是2.82libsvm命名空间下主要使用类:svm_model 为模型类,通过训练或加载训练好的模型文件获得svm_parameter 为参数类,主要为支持向量机设定参数,具体参数如下:svm_parameter.svm_typesvm类型:SVM设置类型(默认svm_parameter.C_SVC) svm_parameter.C_SVC - C-SVC n(n=2)分类器,允许用异常值惩罚因子C进行不完全分类。svm_parameter.NU_SVC - -SVC n类似然不完全分类的分类器。参数nu取代了c,其值在区间【0,1】中,nu越大,决策边界越平滑。 svm_parameter.ONE_CLASS 一类SVM 单分类器,所有的训练数据提取自同一个类里,然後SVM建立了一个分界线以分割该类在特征空间中所占区域和其它类在特征空间中所占区域。 svm_parameter.EPSILON_SVR - -SVR 回归。 训练集中的特征向量和拟合出来的超平面的距离需要小于p。异常值惩罚因子C被采用。 svm_parameter.NU_SVR - -SVR 回归;nu 代替了p svm_parameter.kernel_type核函数类型:核函数设置类型(svm_parameter.LINEAR)svm_parameter.LINEAR 线性:uv - 没有任何向映射至高维空间,线性区分(或回归)在原始特征空间中被完成,这是最快的选择。 d(x,y) = x?y = (x,y) svm_parameter.POLY 多项式:(uv + coef0)degree - 多项式核: d(x,y) = (gamma*(x?y)+coef0)degree svm_parameter.RBF RBF函数:exp(-|u-v|2) - 径向基,对于大多数情况都是一个较好的选择:d(x,y) = exp(-gamma*|x-y|2) svm_parameter.SIGMOID sigmoid:tanh(uv + coef0) - sigmoid函数被用作核函数: d(x,y) = tanh(gamma*(x?y)+coef0) degree, gamma, coef0:都是核函数的参数,具体的参见上面的核函数的方程。 svm_parameter.degree核函数中的degree设置(默认3)svm_parame
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于新型分析技术的彗星大气成分研究-洞察及研究
- 油墨厂辛苯存储规章
- 英国留学方案流程咨询
- 橡胶厂销售费用管理实施办法
- 国际情报员营销方案策划
- 跨界文献融合-洞察及研究
- 学生消防安全培训报到课件
- 学生步行安全培训记录课件
- 手入室自我防护课件
- 出差旅游证明书出国旅行许可(5篇)
- 幕墙UHPC施工专项方案 (评审版)
- 苏东坡人物介绍下载
- 2025届高三二轮复习+生态脆弱区的综合治理
- 《电力储能运行人员培训规范》
- 轻钢屋面工程施工方案
- DB3702T 31-2023 未成年人家庭监护能力评估工作规范
- 2024-2025年历年成人高考民法真题及复习资料
- 幼儿园课程教研活动
- 幼儿烫伤课件教学课件
- 国家职业技术技能标准 6-29-01-01 砌筑工 人社厅发20235号
- 部编版一年级语文上册全册教案
评论
0/150
提交评论