Libsvm常见问题及帮助.docx

上传人:b****6 文档编号:8824512 上传时间:2023-02-02 格式:DOCX 页数:27 大小:37.79KB
下载 相关 举报
Libsvm常见问题及帮助.docx_第1页
第1页 / 共27页
Libsvm常见问题及帮助.docx_第2页
第2页 / 共27页
Libsvm常见问题及帮助.docx_第3页
第3页 / 共27页
Libsvm常见问题及帮助.docx_第4页
第4页 / 共27页
Libsvm常见问题及帮助.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

Libsvm常见问题及帮助.docx

《Libsvm常见问题及帮助.docx》由会员分享,可在线阅读,更多相关《Libsvm常见问题及帮助.docx(27页珍藏版)》请在冰豆网上搜索。

Libsvm常见问题及帮助.docx

Libsvm常见问题及帮助

LIBSVM 常见问题

最后编辑时间:

 周日,2011年3月13日十三时30分52秒GMT

OriginalText:

Q:

HowtohandlethenameconflictbetweensvmtraininthelibsvmmatlabinterfaceandthatinMATLABbioinformaticstoolbox?

显示其他翻译

所有的问题(74)

∙Q1:

_Some_sample_uses_of_libsvm

(2)

∙Q2:

_Installation_and_running_the_program(12)

∙3:

_Data_preparation(7)

∙Q4:

_Training_and_prediction(33)

∙Q5:

_Probability_outputs(3)

∙6:

_Graphic_interface(3)

∙7:

_Java_version_of_libsvm(4)

∙Q8:

_Python_interface

(1)

∙9:

_MATLAB_interface(9)

o有些课程已作为一种工具libsvm的

o使用libsvm的一些应用程序/工具

olibsvm的文件在哪里可以找到?

o更改日志和早期版本在哪里?

o如何举LIBSVM?

o我想用我的软件libsvm的。

没有任何许可证的问题吗?

o是否有一个额外的工具库libsvm的基础吗?

oUNIX机器上,我得到了“共享库加载错误”或“无法打开共享对象文件。

” 发生了什么事?

o我已经修改了源和想建立的图形界面“SVM玩具”MSWindows上。

我应该怎样做呢?

o我是一个MSWindows用户,但为什么只有这些预编译的。

exe(SVM玩具),实际运行?

o有什么区别“。

” 和“*”outputed在训练吗?

o为什么偶尔崩溃的程序(包括MATLAB或其他接口),并给出一个分割故障?

o如何建立一个动态库(。

dll文件)MSWindows上吗?

o在某些系统上(例如,Ubuntu的),编译LIBSVM提供了很多的警告信息。

这是一个问题,如何禁用警告消息?

o为什么有时不是所有的数据的属性出现在训练/模型文件?

o如果我的数据都是非数值?

o你为什么考虑稀疏的格式?

将培训密集的数据要慢得多?

o为什么有时我的数据的最后一行不读SVM的火车?

o有一个程序来检查,如果我的数据是正确的格式吗?

o我可以把数据文件的意见?

o如何转换其他数据格式LIBSVM格式?

o培训的C-SVM的输出类似于以下。

他们是什么意思?

o你能解释模型文件?

o我应该使用float或double存储在缓存中的数字?

o我该如何选择内核呢?

olibsvm的线性SVM的特殊待遇吗?

o免费支持向量的数量很大。

我应该怎么办?

o我应该以类似的方式扩展训练和测试数据?

o它使一个很大的区别,如果我每个属性的缩放,而不是[1,1][0,1]?

o预测率是低的。

我怎么能提高呢?

o我的数据是不平衡的。

可以libsvm的处理这样的问题呢?

oNU-SVC和C-SVC的之间的区别是什么?

o程序继续运行(不显示任何输出)。

我应该怎么办?

o程序继续运行(与输出,即多点)。

我应该怎么办?

o训练时间太长。

我应该怎么办?

o始终没有萎缩帮助吗?

o我要如何决定值(S)?

o我如何获得一个点的超平面之间的距离?

o32位的机器上,如果我在Linux机器上使用一个大的缓存(即大米),这就是为什么有时我得到“分割故障?

o我如何禁用屏幕输出SVM的火车吗?

o我想用我自己的内核。

任何例子?

svm.cpp,有两个子程序为核心的评价:

k_function()和kernel_function()。

我应该修改哪一个?

o没有什么方法libsvm的使用多类SVM的吗?

你为什么不使用“1对其余”的方法吗?

o做交叉验证后,为何有没有模型文件输出?

o为什么我的交叉验证的结果是从实用指南“中的那些不同呢?

o在某些系统上的简历准确性是一样的,在多次运行。

我怎么能使用不同的数据分区?

换句话说,我该如何设置LIBSVM中的随机种子吗?

o我想解决L2丢失的SVM(即误差项是二次)。

我应该如何修改代码?

o如何选择一类SVM的参数训练数据中只有一类?

o为什么代码给出NaN(不是一个数字)结果呢?

o为什么在Windowsgrid.py有时失败?

o为什么,grid.py/easy.py有时会产生以下警告消息?

o为什么预测的标签和决策值的符号,有时逆转?

o我不知道测试数据的类标签。

我应该在测试文件中的第一列是什么?

o我怎样才能使用OpenMP并行多核/共享内存的计算机上LIBSVM?

o我怎么能知道哪些培训实例支持向量?

o为什么培训的一种概率模型(即,B1)需要更长的时间呢?

o为什么使用-b选项,不给我更好的准确性?

o为什么使用SVM的预测-B0-B1给出了不同的精度值吗?

o我怎样才能挽救绘制SVM玩具的图像?

o我按下“Load”按钮加载数据点,但SVM玩具为什么不能吸引他们呢?

o我想SVM的玩具来处理以上三类数据,我应该怎么办?

oJava版本和C++的libsvm的版本之间的区别是什么?

o是Java版本明显比C++版本慢?

o虽然训练中,我得到以下错误消息:

java.lang.OutOfMemoryError。

什么是错的?

o为什么你有主源文件svm.m4,然后把它转换到svm.java?

o除了Python的C++接口提供的,我能使用Jython调用libsvm的呢?

o我编译MATLAB的接口没有问题,但为何发生错误,同时运行?

o我对64位Windows编译MATLAB的接口没有问题,但为何发生错误,同时运行?

oMATLAB的接口没有提供一个函数来做到缩放?

o我怎么能使用MATLAB的接口参数选择呢?

o我使用MATLAB并行编程工具箱上的参数选择的多核心环境。

为什么程序更慢?

o我如何使用在MATLAB环境下使用OpenMPLIBSVM?

o我怎么能产生线性SVM的原始变量w?

o有libsvm的OCTAVE的接口吗?

o如何处理之间的的svmtrain名称冲突libsvm的MATLAB接口,在MATLAB生物信息学工具箱?

问:

有些课程已作为一种工具libsvm的 

∙计算机科学,应用科学学院,德国弗赖堡大学,研究所

∙数学与计算机科学的分工。

faculteitDERExacteWetenschappenVrije大学,荷兰。

∙威斯康星大学麦迪逊分校电气工程和计算机系,

∙Technion工业(以色列理工学院),以色列。

∙美国佛罗里达大学计算机与信息科学系,

∙计算机科学研究所,大学,肯尼亚内罗毕。

∙应用数学与计算机科学,冰岛大学。

∙支持向量机在机器学习暑期学校的教程,芝加哥大学,2005。

[返回顶部]

问:

有些应用程序/使用libsvm的工具 

(也许liblinear)。

∙LIBPMK:

金字塔比赛工具包

∙maltparser:

数据驱动的依赖解析系统

∙分类neuroimagesPyMVPA:

蟒蛇工具

∙SOLpro:

蛋白质溶解度预测

∙BDVal:

生物标志物的发现在高吞吐量的数据集。

∙实时识别物体

∙scikits.learn:

在Python的学习机

[返回顶部]

问:

我在哪里可以找到libsvm的文件?

 

∙正式实施文件:

 

C.-C. 张和C.-J. 林 LIBSVM:

支持向量机库。

∙使用SVM的流程大概的说明是在一些目录中的README文件 

在主目录中的自述:

“所有细节选项,数据格式和库调用 

工具/自述:

参数选择和其他工具

∙对于初学者指南:

 

C.-W. 许C.-C. 张和C.-J. 林。

 支持向量机分类的实用指南

[返回顶部]

问:

在哪里更改日志和早期版本?

 

查看更改日志。

在这里你可以下载早期版本 。

[返回顶部]

问:

如何举LIBSVM?

 

请举出下列文件:

张稚涌和林之仁,LIBSVM:

支持向量机库,2001年。

在http:

//www.csie.ntu.edu.tw/〜cjlin/libsvm的软件可用

2011-12-01格式

@手册{CC01a

撰文={张致中和林致仁},

标题={{LIBSVM}:

为支持向量机库}

年={2001年}

注={\URL提供的软件{http:

//www.csie.ntu.edu.tw/〜cjlin/libsvm的}}

}

[返回顶部]

问:

我想用我的软件libsvm的。

没有任何许可证的问题吗?

 

libsvm的许可证(“修改的BSD许可证”),是很多,如GPL的自由软件许可证兼容。

因此,它很容易在您的软件使用libsvm的。

请详细的版权文件。

基本上你需要

1.清楚地表明,使用SVM的流程大概。

2.保留在软件的LIBSVM版权文件。

它也可以在商业产品中使用。

[返回顶部]

问:

是否有一个额外的工具libsvm的基础库?

 

是的,看到libsvm的工具

[返回顶部]

问:

在UNIX机器上,我得到了“共享库加载错误”或“无法打开共享对象文件。

” 发生了什么事?

 

这通常发生,如果你在一台机器上编译代码并运行另一个有不兼容的库。

尝试重新编译该机器上的程序或使用静态链接。

[返回顶部]

问:

我已经修改了源代码,并想建立的图形界面“SVM玩具”在MSWindows。

我应该怎样做呢?

 

通过选择“Win32项目建设作为一个项目。

” 另一方面,“SVM一条龙”和“SVM的预测:

”你要选择“Win32控制台项目。

” libsvm的2.5后,您还可以使用文件Makefile.win。

在自述的细节。

如果你不使用Makefile.win,看看下面的链接错误

LIBCMTD.lib(wwincrt0.obj)的:

错误LNK2001:

无法解析的外部符号

_wWinMain@16

你可能已经选择了一个错误的项目类型。

[返回顶部]

问:

我是一个MSWindows用户,但为什么只有那些预编译EXE(SVM玩具),实际运行。

 

你需要打开一个命令窗口,然后键入svmtrain.exe看到所有选项。

一些例子是在README文件。

[返回顶部]

问:

什么是区别“。

” 和“*”outputed在训练吗?

 

“。

” 意味着每1000个迭代(或每迭代#数据是你的#数据小于1000)。

“*”是指使用一个较小的缩水问题的迭代后,我们重置为使用全套。

看到 执行文件详情。

[返回顶部]

问:

为什么偶尔崩溃的程序(包括MATLAB或其他接口),并给出一个分割故障?

 

该计划很可能会消耗太多的内存比什么操作系统可以提供。

尝试使用较小的数据,如果程序仍然崩溃。

[返回顶部]

问:

如何建立一个动态库(dll文件。

)在MSWindows?

 

最简单的方法是使用Makefile.win。

在自述的细节。

另外,您可以使用VisualC++ 下面是示例使用VisualStudio.NET2008。

1.创建一个Win32的空的DLL项目和集(项目>$PROJECT_NAME属性->配置)“。

释放” 关于如何创建一个新的动态链接库,请参阅 

2.将svm.cpp,svm.h添加到您的项目。

3.添加_WIN32__“和_CRT_SECURE_NO_DEPRECATE处理器定义(项目>$PROJECT_NAME属性...->的C/C++->预处理器)

4.设置不使用预编译头(项目->$PROJECT_NAME属性...->的C/C++->预编译头)创建/使用预编译头

5.设置调制定义文件svm.def的路径(在项目->$PROJECT_NAME属性->链接器->输入

6.建立DLL。

7.重命名的dll文件到libsvm.dll和移动到正确的路径。

[返回顶部]

问:

在某些系统(如Ubuntu的),编译LIBSVM使许多警告消息。

这是一个问题,如何禁用警告消息?

 

警告消息是什么样

svm.cpp:

2730:

警告:

忽略返回值的intfscanf(文件*,常量字符*,...),与属性warn_unused_result声明

但是,这不是一个问题。

在未来,我们可以修改代码,使这些信息不会出现。

在这一刻,禁用警告消息,您可以替换

CFLAGS=墙Wconversion-O3-fPIC的

CFLAGS=墙Wconversion-O3-fPIC的,U_FORTIFY_SOURCE

在Makefile。

[返回顶部]

问:

为什么有时不是所有的数据的属性出现在训练/模型文件?

 

libsvm的使用所谓的“疏”的格式,其中零值并不需要存储。

因此,一个数据与属性

1020

表示为

1:

13:

2

[返回顶部]

问:

如果我的数据都是非数值?

 

目前libsvm的只支持数值数据。

您可能必须改变非数值数据数值。

例如,您可以使用多种的二进制属性代表一个明确的属性。

[返回顶部]

问:

为什么你认为稀疏的格式?

将培训密集的数据要慢得多?

 

这是一个有争议的问题。

稀疏向量(即内积)内核的评价是速度较慢,所以总的训练时间可以至少两次或3次,用密集的格式。

但是,我们不能支持只有密集的格式,那么我们就不能处理极为稀少的情况下。

简单的代码是另一个值得关注。

现在,我们决定只支持稀疏的格式。

[返回顶部]

问:

为什么有时我的数据的最后一行不读通过SVM火车?

 

我们假设你的'\n'在每行结束。

所以,请按输入你的最后一行结束。

[返回顶部]

问:

是否有一个程序来检查,如果我的数据在正确的格式吗?

 

在libsvm的的SVM火车方案进行输入数据只是一个简单的检查。

libsvm的2.85后,做了详细的检查,你可以使用Python的脚本工具/checkdata.py的。

有关详细信息,请参阅工具/自述。

[返回顶部]

问:

我可以把数据文件的评论?

 

我们不正式支持。

但,cureentlyLIBSVM是能够处理以下格式的数据:

11:

22:

1#您的意见

需要注意的是字符“:

”不应该出现在您的意见。

[返回顶部]

问:

如何转换其他数据格式LIBSVM格式?

 

这取决于你的数据格式。

我们有一个简单的C代码,空格/冒号分隔的格式传送到libsvm的格式。

如果需要的话,请联系我们。

另外,一个简单的方法是使用libsvm的MATLAB/八度接口libsvmwrite。

采取一个CSV(冒号分隔的格式)文件为例,在UCI机器学习库。

下载SPECTF.train。

标签是在第一列。

下面的步骤产生的libsvm的格式的文件。

MATLAB>SPECTF=csvread(“SPECTF.train);%读取csv文件

MATLAB>标签:

=SPECTF

(1);%,从第一列标签

MATLAB>特性=SPECTF(2底);

MATLAB因素>features_sparse=稀疏(功能);%功能必须是在一个稀疏矩阵

MATLAB>libsvmwrite(SPECTFlibsvm.train,标签,features_sparse的);

tranformed数据存储在SPECTFlibsvm.train。

[返回顶部]

问:

培训输出的C-SVM是像以下。

他们是什么意思?

 

优化完成,#ITER=219 

NU=0.431030 

OBJ=-100.877286,ρ=0.424632 

NSV=132,nBSV=107 

共有NSV=132

obj是双SVM问题的最优目标函数值。

Rho是在决策函数SGN(W^TX-RHO)的偏见的任期。

NSV和nBSV是支持向量的和有界支持向量数目(即,alpha_i=C)NU-SVM的C-SVM是有点等价形式,其中C是由NU取代。

怒江只显示相应的参数。

更多细节 libsvm的文件。

[返回顶部]

问:

你能否解释模型文件?

 

参数后,每一行代表一个支持向量。

支持向量列在前面列出的“标签”的顺序。

(即,在“标签”列表中的第一类的分组第一,依此类推。

)如果k是班级总数在J类支持向量前,有K-1系数Y*阿尔法阿尔法是以下两个类问题的解决方案:

双 

J,1比2比j,...,J-1和j,J和J+1,j与j+2...,J与k 

在第j-1系数和y=1,Y=在余下的KJ系数为-1。

例如,如果有4类,文件看起来像:

-+-+-+--------------------+

|1|1|1||

|V|V|V||1类支持向量

|2|3|4||

-+-+-+--------------------+

|1|2|2||

|V|V|V|支持向量2级|

|2|3|4||

-+-+-+--------------------+

|1|2|3||

|V|V|V||3类支持向量

|3|3|4||

-+-+-+--------------------+

|1|2|3||

|V|V|V|支持向量由4级|

|4|4|4||

-+-+-+--------------------+

还看到 一个例证,利用MATLAB/倍频程。

[返回顶部]

问:

我应该使用float或double存储在缓存中的数字?

 

我们已经漂浮作为默认存储在缓存中,你可以更多的数字。

一般这是不够好,但一些困难的情况下(例如C非常大)的解决方案是大量的地方,它可能是可能的数值精度是不够的使用仅浮法。

[返回顶部]

问:

如何选择内核呢?

 

一般情况下,我们建议您先尝试RBF核。

Keerthi和林(由最近的成果 在这里下载文件)显示,如果径向基函数模型选择与使用,那么就没有必要考虑线性内核。

使用乙状结肠内核矩阵未必是正定的,它的精度是一般不超过RBF神经更好。

(林和林(看到 这里的文件下载文件)。

多项式内核是确定的,但如果使用高度,数值困难,往往发生(思想关于DTH功率(<1)0

(1)变为到无穷大)。

[返回顶部]

问:

请问libsvm的线性SVM的特殊待遇吗?

 

没有,libsvm的线性/非线性SVMs的以同样的方式来解决。

一些技巧可以节省培训/测试时间,如果使用线性核,libsvm的是不是特别线性SVM高效,尤其是当C是大的数据的数量远远比属性的数量较大。

您可以

∙只使用小C。

我们已经表明在以下文件后,C是大于某一阈值,决定功能是相同的。

ss全部Keerthi 和 C.-J.的 林。

 高斯核支持向量机的渐近行为 。

 神经计算,15(2003),1667年至1689年。

∙检查liblinear,这是大型线性分类设计。

另请参阅我们的SVM指南 使用RBF和线性内核的讨论。

[返回顶部]

问:

免费支持向量的数量非常大。

我应该怎么办?

 

这通常发生数据时overfitted。

如果您的数据的属性是在大范围内,尽量扩大它们。

然后在适当的参数区域可能会更大。

需要注意的是在libsvm的规模方案。

[返回顶部]

问:

我应该扩大训练和测试数据,以类似的方式?

 

是的,你可以做到以下几点:

SVM大规模-Sscaling_parameterstrain_data>scaled_train_data

>SVM大规模-Rscaling_parameterstest_data>scaled_test_data

[返回顶部]

问:

如果我每个属性的缩放,而不是[1,1][0,1],是否有很大的差别?

 

线性缩放方法,如果使用RBF核进行参数选择,没有什么区别。

假设宓公里,分别是第i个属性的最大和最小的值。

缩放到[0,1]的方法

x'=(X-MI)/(MI-MI)

为[-1,1],

X''=2(X-MI)/(米英里)-1。

在RBF核,

x'-Y'=(XY)/(米-MI),X''Y''=2(XY)/(MI-MI)。

因此,使用(C,G)[0,1]规模的数据是一样(C,G/2)在[-1,1],规模数据。

虽然性能是相同的,计算时间可能有所不同。

对于许多零项的数据,​​[0,1]缩放保持输入数据的稀疏性,因此可以节省时间。

[返回顶部]

问:

预测率是低的。

我怎么能提高呢?

 

尝试使用模型选择工具grid.py在Python目录,找到了良好的参数。

看到模式选择的重要性,请参阅我的谈话:

 支持向量机分类的实用指南

[返回顶部]

问:

我的数据是不平衡的。

可以libsvm的处理这样的问题呢?

 

是的,有一个无线网络选项。

例如,如果您使用

>SVM一条龙-0-C10-W1-W-115data_file

类“-1”的刑罚是较大的。

请注意,-W选项只用于C-SVC。

[返回顶部]

问:

NU-SVC和C-SVC的之间的区别是什么?

 

他们基本上是一回事,但用不同的参数。

C的范围是从零到无穷大,但女始终是[0,1]之间。

怒江的一个很好的属性,它关系到支持向量率和训练误差比。

[返回顶部]

问:

该程序保持运行(不显示任何输出)。

我应该怎么办?

 

您可能要检查你的数据。

每次训练/测试数据必须在同一行。

不能分开的。

此外,你必须删除空行。

[返回顶部]

问:

该程序保持运行(与输出,即多点)。

我应该怎么办?

 

在理论上libsvm的保证收敛。

因此,这意味着你正在处理病态的情况下(如过大/小参数),所以数值发生困难。

[返回顶部]

问:

培训的时间太长。

我应该怎么办?

 

对于大的问题,请指定足够的高速缓存大小(即米)。

收敛速度慢,可能会出现一些困难的情况下(如-C大)。

您可以尝试使用-E停止容忍宽松。

如果仍然不起作用,你可以训练,只是数据的一个子集。

您可以使用目录中的“工具”的的方案subset.py获得一个随机子集。

如果你有非常大的数据,面对这一困难,请与我们联系。

我们将很乐意来讨论可能的解决方案。

当使用-E大,你可能要检查,如果H0(无收缩)或-h1(收缩)是更快。

看到下面相关的问题。

[返回顶部]

问:

是否萎缩总是帮助吗?

 

如果迭代次数是高的,然后缩小经常帮助。

但是,如果迭代次数是小(例如,你指定一个较大的-E),那么很可能使用-H0(无收缩)是更好的。

看到 执行文件详情。

[返回顶部]

问:

我如何决定值(S)?

 

我们打​​印出决定回归值。

分类,我们解决几个二进制SVMs的多类案件。

您可以通过轻松地调用子程序svm_predict_values​​,价值观。

可以从svm_get_labels获得其相应的标签。

详情libsvm的README文件包。

我们不建议以下。

但是,如果你想获得价值为2级分类标签+1和-1(注:

如5日和10+1和-1,但不事)最简单的方法,只

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1