当前位置:文档之家› LIBSVM使用介绍

LIBSVM使用介绍

LIBSVM使用介绍
LIBSVM使用介绍

附录1:LIBSVM的简单介绍

1. LIBSVM软件包简介

LIBSVM是台湾大学林智仁(Chih-Jen Lin)博士等开发设计的一个操作简单、易于使用、快速有效的通用SVM软件包,可以解决分类问题(包括C SVC

?、SVC

ν?)、回归问题(包括SVR

ε?、SVR

ν?)以及分布估计(on e class SVM

??)等问题,提供了线性、多项式、径向基和S形函数四种常用的核函数供选择,可以有效地解决多类问题、交叉验证选择参数、对不平衡样本加权、多类问题的概率估计等。LIBSVM是一个开源的软件包,需要者都可以免费的从作者的个人主页https://www.doczj.com/doc/719699474.html,.tw/~cjlin/处获得。他不仅提供了LIBSVM的C++语言的算法源代码,还提供了Python、Java、R、MA TLAB、Perl、Ruby、LabVIEW 以及C#.net等各种语言的接口,可以方便的在Windows或UNIX平台下使用,也便于科研工作者根据自己的需要进行改进(譬如设计使用符合自己特定问题需要的核函数等)。另外还提供了WINDOWS平台下的可视化操作工具SVM-toy,并且在进行模型参数选择时可以绘制出交叉验证精度的等高线图。

2. LIBSVM使用方法简介

LIBSVM在给出源代码的同时还提供了Windows操作系统下的可执行文件,包括:进行支持向量机训练的svmtrain.exe;根据已获得的支持向量机模型对数据集进行预测的svmpredict.exe;以及对训练数据与测试数据进行简单缩放操作的svmscale.exe。它们都可以直接在DOS环境中使用。如果下载的包中只有C++的源代码,则也可以自己在VC等软件上编译生成可执行文件。

LIBSVM使用的一般步骤是:

1)按照LIBSVM软件包所要求的格式准备数据集;

2)对数据进行简单的缩放操作;

3)考虑选用RBF核函数

2 (,)x y

K x y eγ??

=;

4)采用交叉验证选择最佳参数C与γ;

5)采用最佳参数C与γ对整个训练集进行训练获取支持向量机模型;

6)利用获取的模型进行测试与预测。

一. LIBSVM使用的数据格式

LIBSVM使用的训练数据和测试数据文件格式如下:

其中

+1 1:0.708 2:1 3:1 4:-0.320 5:-0.105 6:-1 8:1.21

为了使用的方便,可以编写小程序,将自己常用的数据格式按照这种数据格式要求转换成这种格式供LIBSVM直接使用。例如:笔者编写的在MA TLAB中使用的格式转换函数write4libsvm如下:

function write4libsvm

% 为了使得数据满足libsvm的格式要求而进行的数据格式转换

% 原始数据保存格式为:

% [标签第一个属性值第二个属性值...]

% 转换后文件格式为满足libsvm的格式要求,即:

% [标签 1:第一个属性值 2:第二个属性值 3:第三个属性值 ...]

% JGRong@ustc

% 2004.6.16

[filename, pathname] = uigetfile( {'*.mat', ...

'数据文件(*.mat)'; '*.*', '所有文件 (*.*)'}, '选择数据文件');

try

S=load([pathname filename]);

fieldName = fieldnames(S);

str = cell2mat(fieldName);

B = getfield(S,str);

[m,n] = size(B);

[filename, pathname] = uiputfile({'*.txt;*.dat' ,'数据文件

(*.txt;*.dat)';'*.*','所有文件 (*.*)'},'保存数据文件');

fid = fopen([pathname filename],'w');

if(fid~=-1)

for k=1:m

fprintf(fid,'%3d',B(k,1));

for kk = 2:n

fprintf(fid,'\t%d',(kk-1));

fprintf(fid,':');

fprintf(fid,'%d',B(k,kk));

end

fprintf(fid,'\n');

end

fclose(fid);

else

msgbox('无法保存文件!');

end

catch

msgbox('文件保存过程中出错!','出错了...','error');

end

二. svmscale的用法

对数据集进行缩放的目的在于:1)避免一些特征值范围过大而另一些特征值范围过小;2)避免在训练时为了计算核函数而计算内积的时候引起数值计算

?或者是[0,1]之间。

的困难。因此,通常将数据缩放到[1,1]

用法:svmscale [-l lower] [-u upper] [-y y_lower y_upper]

[-s save_filename] [-r restore_filename] filename (缺省值:lower = -1,upper = 1,没有对y进行缩放)

其中,

-l:数据下限标记;lower:缩放后数据下限;

-u:数据上限标记;upper:缩放后数据上限;

-y:是否对目标值同时进行缩放;y_lower为下限值,y_upper为上限值;

-s save_filename:表示将缩放的规则保存为文件save_filename;

-r restore_filename:表示将缩放规则文件restore_filename载入后按此缩放;

filename:待缩放的数据文件(要求满足前面所述的格式)。

缩放规则文件可以用文本浏览器打开,看到其格式为:

lower upper

lval1 uval1

lval2 uval2

其中的lower 与upper 与使用时所设置的lower 与upper 含义相同;index 表示特征序号;lval 为该特征对应转换后下限lower 的特征值;uval 为对应于转换后上限upper 的特征值。

数据集的缩放结果在此情况下通过DOS 窗口输出,当然也可以通过DOS 的文件重定向符号“>”将结果另存为指定的文件。

使用实例:

1) svmscale –s train3.range train3>train3.scale

表示采用缺省值(即对属性值缩放到[1,1]?的范围,对目标值不进行缩放)对数据集train3进行缩放操作,其结果缩放规则文件保存为train3.range ,缩放集的缩放结果保存为train3.scale 。

2) svmscale –r train3.range test3>test3.scale

表示载入缩放规则train3.range 后按照其上下限对应的特征值和上下限值线性的地对数据集test3进行缩放,结果保存为test3.scale 。

三. svmtrain 的用法

svmtrain 实现对训练数据集的训练,获得SVM 模型。

用法: svmtrain [options] training_set_file [model_file]

其中,

options (操作参数)

:可用的选项即表示的涵义如下所示 -s svm 类型:设置SVM 类型,默认值为0,可选类型有:

0 -- C SVC ?

1 -- SVC ν?

2 -- on e class SVM ??

3 -- SVR ε?

4 -- SVR ν?

-t 核函数类型:设置核函数类型,默认值为2,可选类型有:

0 -- 线性核:'*u v

1 -- 多项式核:

deg (*'*0)ree u v coef γ+ 2 -- RBF 核:2()u v e γ?

3 -- sigmoid 核:tanh(*'*0)u v coef γ+

-d degree :核函数中的degree 设置,默认值为3;

-g γ:设置核函数中的γ,默认值为1/k ;

-r 0coef :设置核函数中的0coef ,默认值为0;

-c cos t :设置C SVC ?、SVR ε?、SVR ν?中从惩罚系数C ,默认值为1; -n ν:设置SVC ν?、on e class SVM ??与SVR ν? 中参数ν,默认值0.5; -p ε:设置SVR ν?的损失函数中的ε,默认值为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 折交叉验证模式。

其中-g 选项中的k 是指输入数据中的属性数。操作参数 -v 随机地将数据剖分为n 部分并计算交叉检验准确度和均方根误差。以上这些参数设置可以按照SVM 的类型和核函数所支持的参数进行任意组合,如果设置的参数在函数或SVM 类型中没有也不会产生影响,程序不会接受该参数;如果应有的参数设置不正确,参数将采用默认值。training_set_file 是要进行训练的数据集;model_file 是训练结束后产生的模型文件,该参数如果不设置将采用默认的文件名,也可以设置成自己惯用的文件名。

使用实例:

1)svmtrain train3.scale train3.model

训练train3.scale ,将模型保存于文件train3.model ,并在dos 窗口中输出如下结果:

optimization finished, #iter = 1756

nu = 0.464223

obj = -551.002342, rho = -0.337784

nSV = 604, nBSV = 557

Total nSV = 604

其中,#iter 为迭代次数,nu 与前面的操作参数-n ν相同,obj 为SVM 文件转换为的二次规划求解得到的最小值,rho 为判决函数的常数项b ,nSV 为支持向量个数,nBSV 为边界上的支持向量个数,Total nSV 为支持向量总个数。

训练后的模型保存为文件train3.model ,用记事本等文本浏览器打开可以看

到其内容如下(其后“%”后内容为笔者所加注释):

svm_type c_svc % 训练所采用的svm 类型,此处为C SVC ?

kernel_type rbf % 训练采用的核函数类型,此处为RBF 核

gamma 0.047619 % 与操作参数设置中的γ含义相同

nr_class 2 % 分类时的类别数,此处为两分类问题

total_sv 604 % 总共的支持向量个数

rho -0.337784 % 决策函数中的常数项b

label 0 1 % 类别标签

nr_sv 314 290 % 各类别标签对应的支持向量个数

SV % 以下为支持向量

1 1:-0.963808 2:0.906788 ... 19:-0.197706 20:-0.928853 21:-1 1 1:-0.885128 2:0.768219 ... 19:-0.452573 20:-0.980591 21:-1 ... ... ...

1 1:-0.847359 2:0.485921 ... 19:-0.541457 20:-0.989077 21:-1 % 对于分类问题,上面的支持向量的各列含义与训练数据集相同;对于回归问题,略有不同,与训练数据中的标签label (即y 值)所对应的位置在模型文件的支持向量中现在存放的是Lagrange 系数α值,即为下面决策函数公式中的α值:

**1()()(()())()(,)(,)k

i i i i i i i i sv i i i sv f x a a x x b a a k x x b

k x x b

α=∈∈=?ΦΦ+=?+=+∑∑∑g

四. svmpredict 的用法

svmpredict 是根据训练获得的模型,对数据集合进行预测。

用法:svmpredict [options] test_file model_file output_file

options (操作参数):

-b probability_estimates :是否需要进行概率估计预测,可选值为0或者1,默认值为0。

model_file 是由svmtrain 产生的模型文件;test_file 是要进行预测的数据文件;output_file 是svmpredict 的输出文件,表示预测的结果值。svmpredict 没有其它的选项。

MATALB中SVM工具箱快速入手简易教程(常出现的错误解决办法)

MATALB中SVM工具箱快速入手简易教程(常出现的错误解决办法) ——胡matlab 自带的函数(matlab帮助文件里的例子)[只 有较新版本的matlab中有这两个SVM的函数] (本人使用的是2012版本) svmtrain svmclassify =====简要语法规则==== svmtrain Train support vector machine classifier Syntax 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, ...) --------------------- svmclassify Classify data using support vector machine Syntax Group = svmclassify(SVMStruct, Sample) Group = svmclassify(SVMStruct, Sample, 'Showplot', ShowplotValue)

LIBSVM使用介绍

附录1:LIBSVM的简单介绍 1. LIBSVM软件包简介 LIBSVM是台湾大学林智仁(Chih-Jen Lin)博士等开发设计的一个操作简单、易于使用、快速有效的通用SVM软件包,可以解决分类问题(包括C SVC ?、SVC ν?)、回归问题(包括SVR ε?、SVR ν?)以及分布估计(on e class SVM ??)等问题,提供了线性、多项式、径向基和S形函数四种常用的核函数供选择,可以有效地解决多类问题、交叉验证选择参数、对不平衡样本加权、多类问题的概率估计等。LIBSVM是一个开源的软件包,需要者都可以免费的从作者的个人主页https://www.doczj.com/doc/719699474.html,.tw/~cjlin/处获得。他不仅提供了LIBSVM的C++语言的算法源代码,还提供了Python、Java、R、MA TLAB、Perl、Ruby、LabVIEW 以及C#.net等各种语言的接口,可以方便的在Windows或UNIX平台下使用,也便于科研工作者根据自己的需要进行改进(譬如设计使用符合自己特定问题需要的核函数等)。另外还提供了WINDOWS平台下的可视化操作工具SVM-toy,并且在进行模型参数选择时可以绘制出交叉验证精度的等高线图。 2. LIBSVM使用方法简介 LIBSVM在给出源代码的同时还提供了Windows操作系统下的可执行文件,包括:进行支持向量机训练的svmtrain.exe;根据已获得的支持向量机模型对数据集进行预测的svmpredict.exe;以及对训练数据与测试数据进行简单缩放操作的svmscale.exe。它们都可以直接在DOS环境中使用。如果下载的包中只有C++的源代码,则也可以自己在VC等软件上编译生成可执行文件。 LIBSVM使用的一般步骤是: 1)按照LIBSVM软件包所要求的格式准备数据集; 2)对数据进行简单的缩放操作; 3)考虑选用RBF核函数 2 (,)x y K x y eγ?? =; 4)采用交叉验证选择最佳参数C与γ;

使用 db2pd 进行监视和故障诊断

使用 db2pd 进行监视和故障诊断 因为 db2pd 工具可从 DB2? 内存集合迅速返回即时信息,所以该工具可用于故障诊断。 该工具不需要获得任何锁存器或使用任何引擎资源就可以收集信息。因此,在 db2pd 收集 信息时,有可能(并且预计)会检索到正在更改的信息;这样,数据可能不是十分准确。 如果遇到正在更改的内存指针,可使用信号处理程序来防止 db2pd 异常终止。这可能会导 致输出中出现诸如以下的消息:“正在更改的数据结构已强制终止命令”。虽然如此,该工 具对于故障诊断却非常有用。在不锁存的情况下收集信息有两个好处:检索速度更快并且 不会争用引擎资源。 如果要在出现特定 SQLCODE、ZRC 代码或 ECF 代码时捕获关于数据库管理系统的信息,那 么可以使用 db2pdcfg -catch 命令完成此操作。捕获到错误时,将启动 db2cos(调出脚本)。db2cos 文件可以自动改变,以便运行解决问题所需的任何 db2pd 命令、操作系统命令或任何其他命令。在 UNIX? 和Linux? 上,模板文件 db2cos 位于 sqllib/bin 中。在 Windows? 操 作系统上,db2cos 位于 $DB2PATH in 目录中。 以下是使用 db2pd 快速故障诊断的一组示例。 场景 1:诊断锁定等待 使用 db2pd -db -locks -transactions -applications -dynamic 命令来获取下列 结果: 锁定: Address TranHdl Lockname Type Mode Sts Owner Dur HldCnt Att ReleaseFlg 0x07800000202E5238 3 00020002000000040000000052 Row ..X G 3 1 0 0x0000 0x40000000 0x07800000202E4668 2 00020002000000040000000052 Row ..X W* 2 1 0 0x0000 0x40000000 对于使用 -db 数据库名称选项指定的数据库,开头的结果会显示该数据库的锁定。您会发 现 TranHdl 2 正在等待 TranHdl 3 挂起的锁定。 事务: Address AppHandl [nod-index] TranHdl Locks State Tflag Tflag2 Firstlsn Lastlsn LogSpace SpaceReserved TID AxRegCnt GXID

libsvm简单介绍

在用林智仁老师的LIBSVM-2.82做SVM回归的过程中,深深得益于网上共享的学习笔记以及一些热心网友的帮助(哪怕只是一句提醒),前面想着一定要写个学习笔记。自己会用了之后,突然发现原来值得讲出来的实在很少,甚至不想再写什么。想到自己花大概两个月才把一个程序跑明白,觉得还是因为其中有些让自己头疼的问题的,想必其他学习者未尝不需要多花功夫琢磨这些,未免浪费时间(技术问题嘛),还是写一个简单的学习笔记,把自己觉得最要弄明白的难点记下来吧。 装microsoft Visualstudio 6.0(是装python需要的,可能是需要c语言的环境吧) 装gnuplot :gp400win32 装python 试运行程序中遇到的问题 读PYTHON写的GRID.PY程序 问题1:程序的路径指定问题在程序的相关语句中指出调用的程序的路径 注意类似: D:\programm files\gnuplot.exe 这样的路径会报错,因为程序在读语句时在programm后面断句,而不是把programm files整体当作一个路径 问题2:命令行运行PYTHON 以及输入参数 E:\libsvm-2.82\tools>python gridregcopy.py,首先进入到PYTHON程序的上一级路径然后用python接程序名称以及参数 当时的问题是怎么也弄不明白PYTHON程序自带的几个操作窗口都不能进行程序的运行。呵呵,好像都只是脚本编辑器(反正我能用命令行运行就可以了——何况加一个"!"就可以在MA TLAB中执行)。 另外关于参数,读原程序怎么也不懂,看了魏忠的学习笔记才明白的: OS.ARGV 可以在命令行输入,作为OS.ARGV列表的值。但是注意OS.ARGV[0]默认的就是所执行的程序本身,也就是除了输入的N个参数,OS.ARGV列表实际上有N+1个值,其中输入的第一个参数就是OS.ARGV[1],也就是它的第二个参数。 问题3:参数选择程序跑不动 提示: worker local quit 晕了几天后面终于明白不是程序有问题,是因为数据量太大,程序直接溢出的缘故:注意有一个参数-M 用来选择缓存的大小。 subset这个程序仍然运行不了——不知道自己的数据和程序包里给出的例子有什么区别。不过我的s数据量小,这个不能用不碍事。 注意: testing data/training data(不同文件) 需要一起scale。 也就是要把测试集和训练集在一个框架下进行归一化处理,很容易想见的道理(可是容易忽

db2pd命令捕获死锁信息

本文通过一个实例讲解了在DB2版本9以后,如何使用db2pd命令捕获死锁信息 死锁经常会存在于我们的应用系统中,如何捕获死锁信息并解决死锁问题,是一个比较复杂的问题。DB2提供了死锁事件监控器来获取死锁信息,可以非常方便地获取死锁信息。从DB2版本8.2.2开始,DB2也可以使用db2pd命令和db2cos脚本来获取死锁信息,提供了一种新的途径来获取死锁信息。 从DB2版本9开始,我们可以使用db2pd -catch 命令来捕获错误信息,然后调用一个sqllib/db2cos 的脚本收集出错时的现场信息。该命令的使用语法如下: Usage: -catch clear | status | [] [count=] Sets catchFlag to catch error or warning. Error Codes: [,] / sqlcode=[,] ZRC (hex or integer) ECF (hex or integer) "deadlock" or "locktimeout" Actions: [db2cos] (default) Run sqllib/db2cos callout script [lockname=] Lockname for catching specific lock (lockname=000200030000001F0000000052) [locktype=] Locktype for catching specific lock (locktype=R or locktype=52) 下面我们通过一个实例来讲解如何使用db2pd -catch命令获取死锁信息。如无特殊说明,命令均使用DB2实例用户执行。 1、将$HOME/sqllib/cfg/db2cos例子脚本拷贝到$HOME/sqllib下,并改变属性为实例用户添加执行权限: cp $HOME/sqllib/cfg/db2cos $HOME/sqllib

Libsvm-FarutoGUI版本介绍与使用(《Learn SVM Step by Step》by faruto2011系列视频-应用篇)

——打造最优秀、专业和权威的MATLAB技术交流平台! https://www.doczj.com/doc/719699474.html, MATLAB技术论坛| Simulink仿真论坛| 专业MATLAB技术交流平台! 网址:https://www.doczj.com/doc/719699474.html, 邮箱:matlabsky@https://www.doczj.com/doc/719699474.html, 客服:1341692017(QQ) 技术论坛:https://www.doczj.com/doc/719699474.html, 函数百科:https://www.doczj.com/doc/719699474.html, 电子期刊:https://www.doczj.com/doc/719699474.html, 官方博客:https://www.doczj.com/doc/719699474.html, 读书频道:https://www.doczj.com/doc/719699474.html, 视频教程:https://www.doczj.com/doc/719699474.html, 有偿编程:https://www.doczj.com/doc/719699474.html, 软件汉化:https://www.doczj.com/doc/719699474.html,

——打造最优秀、专业和权威的MATLAB技术交流平台! https://www.doczj.com/doc/719699474.html, MATLAB技术论坛视频教学 内容:《Learn SVM Step by Step 》系列视频 作者:faruto 时间:2011.6-9 版权:All Rights Preserved By https://www.doczj.com/doc/719699474.html, 声明:严厉谴责和鄙夷一切利用本论坛资源进行任何牟利或盗版的行为! 更多MATLAB精彩视频详见https://www.doczj.com/doc/719699474.html,/forum-5-1.html

——打造最优秀、专业和权威的MATLAB技术交流平台! https://www.doczj.com/doc/719699474.html, 《Learn SVM Step by Step 》系列视频目录 –《Learn SVM Step by Step 》应用篇 ?Libsvm的下载、安装和使用 ?https://www.doczj.com/doc/719699474.html,/thread-18080-1-1.html ?Libsvm参数实例详解 ?https://www.doczj.com/doc/719699474.html,/thread-18457-1-1.html ?一个实例搞定libsvm分类 ?https://www.doczj.com/doc/719699474.html,/thread-18521-1-1.html ?一个实例搞定libsvm回归 ?https://www.doczj.com/doc/719699474.html,/thread-18552-1-1.html ?Libsvm-FarutoUltimate版本介绍与使用 ?https://www.doczj.com/doc/719699474.html,/thread-18594-1-1.html ?Libsvm-FarutoGUI版本介绍与使用 ?https://www.doczj.com/doc/719699474.html,/thread-18606-1-1.html ?…… ?Lssvm的下载、安装和使用 ?一个实例搞定lssvm分类 ?一个实例搞定lssvm回归 ?…… –《Learn SVM Step by Step 》理论篇 ?具体内容待定。

使用宏命令FormatDataLibsvm.xls将数据转成LIBSVM格式

使用宏命令FormatDataLibsvm.xls将数据转成LIBSVM格式 (2009-03-23 23:52:23) 转载 标签:libsvm formatdata libsvm.xls 宏 下载 数据 格式 excel txt 教育分类:科研-支持向量机(SVM)预测 毕业设计做的是svm,虽然不是很新的东西,但是能把它弄懂也是好的。要加一点技术含量无非就是用一些搜素算法(遗传、蚁群。。。)加入svm去寻找最优的参数,对于本科生来说还能做一下前期的数据处理,当然是用一些统计方法咯,什么数据挖掘乱七八糟的网上套,没办法,中国的学术永远是这样,不会进步,看看神经网络在中国学术界盛行的时间之长就知道学术水平了,不想多说,只是想把我这次svm的经历写一下,确实学到了很多东西。 因为也是通过网上的论坛还有其他帖子看懂的,可是觉得他们还写的不够详细,或者我自己太笨,所以想详细点从头到尾说一下,还有不明白的尽管问。。。可以交流。

当然做svm首先就要把数据的格式处理好,这么多在excel里的数据用人工的方法输到txt里是不可能的,所以有两个办法: 1,自己编一个小程序(C足够了)说说简单,编起来还是很麻烦的,虽然我专业和cs 密切相关,但是真的不会。。。我们惰性很强,有现成的第二个方法干嘛还吃力不讨好? 2,使用人家已经做好的一个类似于软件一样的FormatDataLibsvm.xls(里面包含一个宏命令),没有他你要苦一阵子。 BTY,这个软件不好找,网上看了很多帖子,都是不能下载的,在别人博客上跪求几天也没人给,最后还是在一个隐晦的小网站下载下来了。哎,中国人就这样,自己有的东西就是不想共享出来,搞个p的学术啊。。。真是无语,要的联系我。 其实这个软件就是一个excel工作薄,没什么奇特,打开它就会跳出来一个对话框,选“启用宏”就行了,其他不用管它,把你要的数据拷上去就好了,但是注意下格式,网上帖子也很多,照他们说的办吧。 1,先运行FormatDataLibsvm.xls然后将数据粘贴到sheet1的topleft单元。 2,再"工具"-->"宏"-->执行下面有一个选项(FormatDatatoLibsvm)-->执行,要选中这个然后运行就可以了,这时数据转换的问题就解决了,可是现在生成的数据是.xls格式,它还是不能做为libsvm的训练文件啊!还需要怎么转换呢? 3,可以copy到一个记事本中即可。但是注意在用libsvm的时候要在命令行输入.txt 后缀。 注意,宏安全性应当设置为中或者低。输入数据的格式是 条件属性a 条件属性b ... 决策属性 7 5 (2) 4 2 (1)

LIBSVM使用方法

LIBSVM 1 LIBSVM简介 LIBSVM是台湾大学林智仁(Lin Chih-Jen)副教授等开发设计的一个简单、易于使用和快速有效的SVM模式识别与回归的软件包,他不但提供了编译好的可在Windows 系列系统的执行文件,还提供了源代码,方便改进、修改以及在其它操作系统上应用;该软件还有一个特点,就是对SVM所涉及的参数调节相对比较少,提供了很多的默认参数,利用这些默认参数就可以解决很多问题;并且提供了交互检验(Cross -SVM回归等问题,包括基于一对一算法的多类模式识别问题。SVM用于模式识别或回归时,SVM方法及其参数、核函数及其参数的选择,目前国际上还没有形成一个统一的模式,也就是说最优SVM算法参数选择还只能是凭借经验、实验对比、大范围的搜寻或者利用软件包提供的交互检验功能进行寻优。ν-SVM回归和ε-SVM分类、νValidation)的功能。该软件包可以在https://www.doczj.com/doc/719699474.html,.tw/~cjlin/免费获得。该软件可以解决C-SVM分类、-SVM回归等问题,包括基于一对一算法的多类模式识别问题。SVM用于模式识别或回归时,SVM方法及其参数、核函数及其参数的选择,目前国际上还没有形成一个统一的模式,也就是说最优SVM算法参数选择还只能是凭借经验、实验对比、大范围的搜寻或者利用软件包提供的交互检验功能进行寻优。 2 LIBSVM使用方法 LibSVM是以源代码和可执行文件两种方式给出的。如果是Windows系列操作系统,可以直接使用软件包提供的程序,也可以进行修改编译;如果是Unix类系统,必须自己编译,软件包中提供了编译格式文件,我们在SGI工作站(操作系统IRIX6.5)上,使用免费编译器GNU C++3.3编译通过。 2.1 LIBSVM 使用的一般步骤: 1) 按照LIBSVM软件包所要求的格式准备数据集; 2) 对数据进行简单的缩放操作; 3) 考虑选用RBF 核函数; 4) 采用交叉验证选择最佳参数C与g; 5) 采用最佳参数C与g 对整个训练集进行训练获取支持向量机模型; 6) 利用获取的模型进行测试与预测。 2.2 LIBSVM使用的数据格式 该软件使用的训练数据和检验数据文件格式如下:

db2 实战常用命令

db2 force application all –断开所有链接数据库的应用 db2 list application-查看连接数据库的应用 db2 bakup db ksdbs 备份数据库 db2start db2stop启停数据库 db2 connect reset断开所有链接 scp get trans.ini -r back@10.10.9.160/home/back/bccbin \ scp local_file remote_username@remote_ip:remote_folder 或者 scp local_file remote_username@remote_ip:remote_file scp -r ip:/db/dbhome/dbguard 【1】 db2top –d ksdbs db2pd -d ksdbs -stat >stat.log 查看数据库状态(数据超大超详细) 【1】find -type f | xargs dos2unix 遍历格式转换 【1】 find . -name [A-Z]* -print 查找当前目录下以大写字母命名的文件 【1】 >db2ckbkp 检查数据库的完整性 >tee 命令 用途--显示程序的输出并将其复制到一个文件中。 【1】db2 connect reset db2 list directory db2 list active databases db2 get db cfg db2 get db cfg 【1】归档日志 db2 update db cfg for db_name using LOGRETAIN ON 更改归档目录: db2 update db cfg for db_name using LOGARCHMETH1 "disk:/archive/db_name_db_log" 在我重新连接数据库的时候提示: db2 connect to t_1 to mydb SQL1116N A connection to or activation of database "T_1" cannot be made because of BACKUP PENDING. SQLSTATE=57019 网上找了n多最后才知道 若修改数据库LOGRETAIN参数,从循环日志模式改为归档日志模式,则会导致数据库backup pending状态。

libsvm-mat-加强工具箱介绍

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

IBM DB2 Connect 简介

IBM DB2 Connect 简介: 内有乾坤 2005 年 4 月 对于那些脱离大型机的应用程序——分布式应用程序来说,IBM? DB2? Connect? 已成为向它们开放 DB2 for z/OS 数据库以及 zSeries 硬件平台传统公认的所有优点的首选方法。本文是一个由 5 部分组成的系列中的第一篇文章,这个系列将介绍 DB2 Connect 的一些主要特性,这些特性有助于提高交付随需应变解决方案的能力。 简介 1993 年,计算机界的专家们预测大型机(mainframe)将迅速退出历史舞台。他们宣称,未来的计算基础设施将会是一个高度分布的、松散连接的个人电脑和客户机-服务器系统的集合。作为该行业的相关参与者,IBM 几乎无立身之处。 我们都知道后来是怎么回事。IBM 设法在分布式市场重新占得先机,并成为大型机(mainframe)技术的“主要”支持力量。从价格的角度来看,IBM 大大缩减了大型机的价格。从技术的角度来看,IBM 放弃了为其大型机提供动力的双极技术(bi-polar technology),而将大量赌注放在 CMOS 芯片技术上,试图通过这种方式,以剧减的价格交付大型机级别的计算。更重要的是,对于所谓大型机是一种过时的技术,属于大型机的时代已经一去不复返这类荒诞的说法,这是一个直接有力的反击。 如今,企业比以前更多地使用大型机作为其计算基础设施的基础。与此同时,Linux?、UNIX?、Windows? 和其他客户机-服务器系统(在此处被称作分布式平台)并没有消失,因为大型机又重新为它们在企业中赢得了地位。 实际上,这些分布式计算基础设施经历了一个发展的过程。最终的结果是,客户希望将分布式平台的简单性和长处与大型机技术无可匹敌的强大性相结合。如果说信息技术(IT)中有一个领域能让这种结合产生立杆见影的效果,那么这个领域一定是数据库应用领域。 IBM DB2 Universal Database? for z/OS (DB2 for z/OS) 原本是一种大型机数据库,现在已转型为世界上第一种用于客户机-服务器应用程序的数据库服务器。在如今的数据中心里,当您使用运行在大型机上的 CICS 或 COBOL 应用程序时,很可能会遇到 DB2 for z/OS 被用作运行在 Windows、UNIX 和 Linux 上的应用程序的数据库服务器的情况。 正是在这种环境下,我发现 IBM DB2 Connect (DB2 Connect) 产品扮演着一个中心角色。如今,对于那些脱离大型机的应用程序——分布式应用程序来说,DB2 Connect 已成为向它们开放 DB2 for z/OS 数据库和 zSeries 硬件平台的所有传统公认优点的事实上的首选。 为什么当其他产品遭遇失败的时候,DB2 Connect 却能获得成功呢?这个关于DB2 Connect 的系列试图描述 DB2 Connect 的一些关键特性,我们相信正是这

LibSVM-2.6+程序代码注释

LibSVM-2.6程序代码注释

我不经心地,服下你调好的毒 我知道今后我将万劫不复 但是你的红唇仍让我屈服 四月的樱花火红满天 我和你的梦,却要一以何处去缱绻?虽然人间的情爱万万千千 世上已有太多崩毁的誓言 七个黑夜,七个白天 我为你写下的歌,彩绘的纸笺 却只能随着晚风 飘在大海的岸边 我仍愿服下你精心为我调好的毒 从你那深情的吻 吞下我与你在人间 最后的流光万千辗转朱颜……

第一节: SVM.h文件 struct svm_node { int index; double value; }; struct svm_node用来存储单一向量中的单个特征,例如: 向量x1={ 0.002, 0.345, 4, 5.677}; 那么用struct svm_node来存储时就使用一个包含5个svm_node的数组来存储此4维向量,内存映象如下: 1 2 3 4 -1 0.002 0.345 4.000 5.677 空 其中如果value为0.00,该特征将不会被存储,其中(特征3)被跳过: 1 2 4 5 -1 0.002 0.345 4.000 5.677 空 0.00不保留的好处在于,做点乘的时候,可以加快计算速度,对于稀疏矩阵,更能充分体现这种数据结构的优势。但做归一化时,操作就比较麻烦了。 (类型转换不再说明) struct svm_problem { int l; double *y; struct svm_node **x; }; struct svm_problem存储本次参加运算的所有样本(数据集),及其所属类别。在某些数据挖掘实现中,常用DataSet来实现。 int l;记录样本总数 double *y;指向样本所属类别的数组。在多类问题中,因为使用了one-agianst-one方法,可能原始样本中y[i]的内容是1.0,2.0,3.0,…,但参与多类计算时,参加分类的两类所对应的y[i]内容是+1,和-1。 Struct svm_node **x;指向一个存储内容为指针的数组; 如下图,最右边的四个长条格同上表,存储三维数据。(黑边框的是最主要的部分)

Pages 的简介与使用方法

株洲职业技术学院专业论文(设计)

题目: 关于Pages 的简介与使用方法 Pages on the history and method of use 学院株洲职业技术学院 年级专业苹果动漫1201班 学生姓名龙甜 学号201210330124 指导教师李思静 完 成 日 期 2012 年 12 月 株洲职业技术学院专业论文 诚信声明 本人郑重声明:所呈交的专业论文,题目《 关于Pages的简介与使用方法》 是本人在指导教师的指导下,进行研究工作所取得的成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式注明。除此之外,本论文不包含任何其他个人或集体已经发表或撰写过的作品成果。本人完全意识到本声明应承担的法律责任。

作者签名:龙甜 日期:2012年12月21日 关于P a g e s的简介与使用方法 龙甜 摘要 P a g e s是苹果公司多功能办公软件套装A p p l e W o r k s的继承者,是一个用于文字处理和页面排版的应用程序。它是由苹果公司所开发,包括在i W o r k软件套装中。P a g e s支持多栏排版,文本段落样式,脚注和其他高级文字处理功能,并为用户提供了强大的模板功能。创建的文档可以导出多种文件格式,同样也能导入A p p l e W o r k s和微软W o r d文件。文档中可直接绘制形状,并修改属性;可以环绕文本;可以插入图形,并设置阴影,多角度旋转等。并且,P a g e s可以制作各种宣传海报,新闻报道,贺卡,请柬,论文和教学材料等。并能从i T u n e s,i M o v i e和i P h o t o中接受数据,设置U R L链接。 关键词:P a g e s使用方法苹果 Abstract P a g e s i s a A p p l e C o r p m u l t i f u n c t i o n a l o f f i c e s o f t- w a r e s u i t e a s u c c e s s o r t o A p p l e W o r k s,i s o n e f o r w o r d p r o c e s s i n g a n d p a g e l a y o u t a p p l i c a t i o n.I t i s t h e A p p l e C o r p f o r t h e d e v e l o p m e n t,i n c l u d i n g i n t h e i Wo r k s o f t- w a r e s u i t e.P a g e s s u p p o r t s m u l t i p l e c o l u m n l a y o u t,t e x t p a r a g r a p h s t y l e s,f o o t n o t e s a n d o t h e r a d v a n c e d t e x t p r o c-

libsvm的原理及使用方法介绍

LibSVM学习 目录 LibSVM学习 (1) 初识LibSVM (1) 第一次体验libSvm (3) LibSVM使用规范 (5) 1. libSVM的数据格式 (5) 2. svmscale的用法 (5) 3. svmtrain的用法 (6) 4. svmpredict 的用法 (7) 逐步深入LibSVM (7) 分界线的输出 (11) easy.py和grid.py的使用 (13) 1. grid.py使用方法 (13) 2. easy.py使用方法 (14) 参考 (16) 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-toy\qt 文件夹中)都是调用的这个文件中的接口函数,编译后就是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安装教程matlab中使用(详细版)

libsvm安装教程(详细版)(本机matlab版本16b)第一步,把libsvm放到工具箱toolbox中。 把libsvm安装包解压,并放入matlab程序文件中toolbox中。 运行matlab程序,点击主页,找到布局旁边的设置路径,并点击设计路径 选择添加并包含子文件,找到toolbox下面的libsvm添加即可,并点击保存。

第二步更新工具箱 找到布局旁边的预测按钮,并点击预设按钮。 找到常规,选择更新工具箱路径缓存,并点击应用,最后点击确定。 第三步,更改libsvm文件 在matlab文件行,打开如下地址:D:\B\toolbox\libsvm-3.24\matlab 打开make.m文件,将make.m中的CFLAGS改为COMPFLAGS。 注:因为matlab中有自带的svm,为了防止libsvm和自带的svm

发生冲突,所以将D:\B\toolbox\libsvm-3.24\matlab中将svmtrian.c和svmpredic.c前面加入lib,相应的make.m文件中也做修改 第四步,安装编译器 编译器采用最新版tdm64-gcc-9.2.0,安装教程很简单 选择Creat,保存路径直接选择C盘即可,C:\TDM-GCC-64。

第五步,使用matlab读取C语言程序。 Matlab文件行调整到此目录下D:\B\toolbox\libsvm-3.24\matlab 并在命令行窗口输入: setenv('MW_MINGW64_LOC','C:\TDM-GCC-64') make 点击回车,当命令行窗口出现: 使用'MinGW64 Compiler (C)' 编译。 MEX 已成功完成。 使用'MinGW64 Compiler (C)' 编译。 MEX 已成功完成。 使用'MinGW64 Compiler (C)' 编译。 MEX 已成功完成。 使用'MinGW64 Compiler (C)' 编译。 MEX 已成功完成。 证明读取成功,这个时候就可以用测试程序进行测试了 第六步,测试libsvm程序。 本人采用了简单的三角正弦函数进行测试,代码如下: %%clean work tic;%记录运行时间 close all;%关闭所有figure窗口 clear;%清空变量 clc;%清空命令 format compact;%空格紧凑 %生成待回归的数据 x = (-1:0.1:1)'; y = -x.^2;%建立回归模型 model = libsvmtrain(y,x,'-s 3 -t 2 -c 2.2 -g 2.8 -p 0.01'); %利用建立的模型看其在训练集上的回归效果 [py,mse,prob] = libsvmpredict(y,x,model,'-b 0'); figure;%建立一个窗口 plot(x,y,'o');%原始数据以o这种形式标记 hold on;%保持当前图像不刷新 plot(x,py,'r*');%回归数据以红色的*标记 legend('原始数据','回归数据');%设置图例线条 grid on;%画图的时候添加网格线 %进行预测 testx = [1.1;1.2;1.3]; display('真实数据');%控制台输出 testy = -testx.^2 [ptesty,tmse,prob2] = libsvmpredict(testy,testx,model,'-b 0'); display('预测数据'); ptesty

使用db2pd 进行监视和故障诊断

db2 使用db2pd 进行监视和故障诊断 因为db2pd工具可从DB2? 内存集合迅速返回即时信息,所以该工具可用于故障诊断。 该工具不需要获得任何锁存器或使用任何引擎资源就可以收集信息。因此,在db2pd收集信息时,有可能(并且预计)会检索到正在更改的信息;这样,数据可能不是十分准确。如果遇到正在更改的内存指针,可使用信号处理程序来防止db2pd异常终止。这可能会导致输出中出现诸如以下的消息:“正在更改的数据结构已强制终止命令”。虽然如此,该工具对于故障诊断却非常有用。在不锁存的情况下收集信息有两个好处:检索速度更快并且不会争用引擎资源。 如果要在出现特定SQLCODE、ZRC 代码或ECF 代码时捕获关于数据库管理系统的信息,那么可以使用db2pdcfg -catch命令完成此操作。捕获到错误时,将启动db2cos(调出脚本)。db2cos文件可以自动改变,以便运行解决问题所需的任何db2pd命令、操作系统命令或任何其他命令。在UNIX? 和Linux? 上,模板文件db2cos位于sqllib/bin中。在Windows? 操作系统上,db2cos位于$DB2PATH\bin目录中。 以下是使用db2pd快速故障诊断的一组示例。 场景1:诊断锁定等待 使用db2pd -db -locks -transactions -applications -dynamic 命令来获取下列结果: 对于使用 -db 数据库名称选项指定的数据库,开头的结果会显示该数据库的锁定。您会发现TranHdl 2 正在等待TranHdl 3 挂起的锁定。 您会发现TranHdl 2 与AppHandl 11 相关联,而TranHdl 3 与AppHandl 12 相关联。 您会发现AppHandl 12 最后运行动态语句17, 1。ApplHandl 11 是当前正在运行的动态语句17, 1,而最后运行的语句是94, 1。 您会发现,文本列显示与锁定超时相关联的SQL 语句。 场景2:使用-wlocks选项捕获所有正在等待的锁定 在下面的样本输出中,应用程序1(AppHandl 47)正在执行插入操作,而应用程序2(AppHandl 46)正在选择该表。 场景3:使用-apinfo选项捕获关于锁定所有者和锁定等待者的详细运行时信息 下面的样本输出是在与上面的场景 2 相同的条件下捕获的。 venus@boson:/home/venus =>db2pd -apinfo 47 -db pdtest 数据库分区 0 -- 数据库 PDTEST -- 活动 -- 正常运行 0 天 00:01:30

相关主题
文本预览
相关文档 最新文档