libsvm3.22 使用必须有vs吗

1、下载libsvm 3.22,更新日期为日
Download LIBSVM
& &The current release (Version 3.21, December 2015) of&LIBSVM&can be obtained by downloading the&or&file.
You can also check this&&directory.
Please e-mail us if you have problems to download the file.
The package includes the source code of the library in C++ and Java, and a simple program for scaling training data. A README file with detailed explanation is provided. For&MS Windows&users, there is a sub-directory
in the zip file containing binary executable files. Precompiled Java class archive is also included.
Please read the&&notice before using&LIBSVM.&
2、添加路径
& & 将工具包放到任何地方均可(建议放在D:\Program Files\MATLAB\R2014a\toolbox\matlab下),将工具包添加到Matlab的搜索路径,Set Path-&add with subfolders-&save。
& & 备注:保证D:\Program Files\MATLAB\R2014a\toolbox\matlab\libsvm-3.22和D:\Program Files\MATLAB\R2014a\toolbox\matlab\libsvm-3.22\matlab都在路径下。
& & 确保安装有Visual Studio 2010版,matlab当前工作目录切换到D:\Program Files\MATLAB\R2015b\toolbox\matlab\libsvm-3.22下,在matlab命令行窗口下输入:
& & &&mex -setup
4、编译文件
& &matlab当前工作目录切换到D:\Program Files\MATLAB\R2014a\toolbox\matlab\libsvm-3.22\matlab目录下,在matlab命令行窗口下输入命令,若显示MEX completed successfully.表示安装成功:
& 在libsvm-3.21可以看到hear_scale 文件,在命令行输入下面几行代码
[label_vector, instance_matrix] =libsvmread('heart_scale');
model = svmtrain(label_vector, instance_matrix);
[predicted_label, accuracy, prob_estimates] = svmpredict(label_vector, instance_matrix, model, 'b');
备注参考:
-s&svm_type&:&set&type&of&SVM&(default&0)
0&--&C-SVC
1&--&nu-SVC
2&--&one-class&SVM
3&--&epsilon-SVR
4&--&nu-SVR
-t&kernel_type&:&set&type&of&kernel&function&(default&2)
0&--&linear:&u'*v
1&--&polynomial:&(gamma*u'*v&+&coef0)^degree
2&--&radial&basis&function:&exp(-gamma*|u-v|^2)
3&--&sigmoid:&tanh(gamma*u'*v&+&coef0)
-d&degree&:&set&degree&in&kernel&function&(default&3)
-g&gamma&:&set&gamma&in&kernel&function&(default&1/num_features)
-r&coef0&:&set&coef0&in&kernel&function&(default&0)
-c&cost&:&set&the&parameter&C&of&C-SVC,&epsilon-SVR,&and&nu-SVR&(default&1)
-n&nu&:&set&the&parameter&nu&of&nu-SVC,&one-class&SVM,&and&nu-SVR&(default&0.5)
-p&epsilon&:&set&the&epsilon&in&loss&function&of&epsilon-SVR&(default&0.1)
-m&cachesize&:&set&cache&memory&size&in&MB&(default&100)
-e&epsilon&:&set&tolerance&of&termination&criterion&(default&0.001)
-h&shrinking:&whether&to&use&the&shrinking&heuristics,&0&or&1&(default&1)
-b&probability_estimates:&whether&to&train&a&SVC&or&SVR&model&for&probability&estimates,&0&or&1&(default&0)
-wi&weight:&set&the&parameter&C&of&class&i&to&weight*C,&for&C-SVC&(default&1)
The&k&in&the&-g&option&means&the&number&of&attributes&in&the&input&data.
关于LIBSVM在Matlab中的使用,可以参看软件包中matlab目录下的README文件,这里对里面内容做一个翻译和一些细节的讲解。
libsvm函数用于对训练集的数据进行训练,得到训练好的模型。
model = libsvmtrain(training_label_vector, training_instance_matrix [, 'libsvm_options']);
这个函数有三个参数,其中
libpredict函数用于对测试集的数据进行测试,还能对未知样本进行预测。
[predicted_label, accuracy, decision_values/prob_estimates]&
    = libsvmpredict(testing_label_vector, testing_instance_matrix, model [, 'libsvm_options']);
这个函数包括四个参数,其中
3. 训练的参数
LIBSVM训练时可以选择的参数很多,包括:
以上这些参数设置可以按照SVM的类型和核函数所支持的参数进行任意组合,如果设置的参数在函数或SVM类型中没有也不会产生影响,程序不会接受该参数;如果应有的参数设置不正确,参数将采用默认值。
4. 训练返回的内容
libsvmtrain函数返回训练好的SVM分类器模型,可以用来对未知的样本进行预测。这个模型是一个结构体,包含以下成员:
另外,如果在训练中使用了-v参数进行交叉验证时,返回的不是一个模型,而是交叉验证的分类的正确率或者回归的均方根误差。
5. 预测返回的内容
libsvmtrain函数有三个返回值,不需要的值在Matlab可以用~进行代替。
6. 读取或保存
libsvmread函数可以读取以LIBSVM格式存储的数据文件。
[label_vector, instance_matrix] = libsvmread(‘data.txt’);
这个函数输入的是文件的名字,输出为样本的类标和对应的特征。
libsvmwrite函数可以把Matlab的矩阵存储称为LIBSVM格式的文件。
libsvmwrite(‘data.txt’, label_vector, instance_matrix]
这个函数有三个输入,分别为保存的文件名、样本的类标和对应的特征(必须为double类型的稀疏矩阵)。
本文已收录于以下专栏:
相关文章推荐
本人由于在科研中经常用到支持向量机算法,于是准备在我的mbp上装一个svm软件包,工作环境为MacOSX 10.10,Xcode 7.1,Matlab 2014b。
1、安装完matalab R2014a后,由于自带的svm不是很好用,大家都用libsvm-3.18。
libsvm3.22安装和调试
1. 关于LibSVM
百度百科:/view/598089.htm
2. LibSVM下载
台湾大学下载界面:http://www.csie....
optimization finished,#iter = 257
#iter为迭代次数
nu = 0.351161
#nu核函数参数
obj = -225.628984, rho = 0...
关于libsvm的使用,官方文档和matlab中文论坛大神faruto已经写得很明白,针对libsvm3.22版本稍稍有一点需要改进的。
参考来源:
网址:http://www.csie.ntu.e...
他的最新文章
讲师:王哲涵
讲师:王渊命
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)4515人阅读
安装前要先安装Microsoft Visual C++ 6.0编译器或 visual studio (我安装的是VS2010).有人安装VS2013没有安装成功,估计Matlab版本太低。
1、下载libsvm 3.21,下载地址http://www.csie.ntu.edu.tw/~cjlin/libsvm/。
2、将工具包放到任何地方均可,将工具包添加到Matlab的搜索路径。Set Path-&add with subfolders-&save
3、编译。mex -setup & &注意:mex后要有空格,然后再是-。会有以下提示
&mex -setup
MEX configured to use 'Microsoft Visual C++ 2010 (C)' for C language compilation.
Warning: The MATLAB C and Fortran API has changed to support MATLAB
variables with more than 2^32-1 elements. In the near future
you will be required to update your code to utilize the
new API. You can find more information about this at:
/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html.
To choose a different language, select one from the following:
&mex -setup C++&
&mex -setup FORTRAN
(我第一次编译出现了mex 不存在之类的警告,是因为VS安装后没有重启Matlab)
这时你需要用鼠标点击 mex -setup C++.或者输入mex -setup C++,之后会出现
MEX configured to use 'Microsoft Visual C++ 2010' for C++ language compilation.
Warning: The MATLAB C and Fortran API has changed to support MATLAB
variables with more than 2^32-1 elements. In the near future
you will be required to update your code to utilize the
new API. You can find more information about this at:
/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html.
4、编译文件 make
Matlab工作目录进入到libsvm-3.21/matlba,输入make
Building with 'Microsoft Visual C++ 2010 (C)'.
MEX completed successfully.
Building with 'Microsoft Visual C++ 2010 (C)'.
MEX completed successfully.
Building with 'Microsoft Visual C++ 2010'.
MEX completed successfully.
Building with 'Microsoft Visual C++ 2010'.
MEX completed successfully.
看到这个结果说明编译成功。
5、检查SVM是否安装成功
在libsvm-3.21可以看到hear_scale 文件,在命令行输入下面几行代码
[label_vector, instance_matrix] =libsvmread('heart_scale');
model = svmtrain(label_vector, instance_matrix);
[predicted_label, accuracy, prob_estimates] = svmpredict(label_vector, instance_matrix, model, 'b');
运行成功之后的结果
optimization finished, #iter = 162
nu = 0.431029
obj = -100.877288, rho = 0.424462
nSV = 132, nBSV = 107
Total nSV = 132
Accuracy = 86.6667% (234/270) (classification)
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:4813次
排名:千里之外
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'33007人阅读
&&&& 我们在&LibSVM学习(一)&中,讲到libSVM有一个tools文件夹,里面包含有四个python文件,是用来对参数优选的。其中,常用到的是easy.py和grid.py两个文件。其实,网上也有相应的说明,但很不系统,下面结合本人的经验,对使用方法做个说明。
&&&&&& 这两个文件都要用python(可以在上下载到,需要安装)和绘图工具gnuplot(可以在上下载,不需要安装)。假设python安装在d:/libsvm/tools/python26下,而gnuplot解压到d:/libsvm/tools/gnuplot,libsvm放在了d:/libsvm/program中(这时easy.py和grid.py文件的目录为d:/libsvm/program/tools)。另外,需要注意的是版本,我的是python 2.6、gnuplot 4.2 和libsvm 2.89,操作系统是WINXP。
1. grid.py使用方法
&& 文件grid.py是对C-SVC的参数c和&做优选的,原理也是网格遍历,假设我们要对目录d:/libsvm/program/tools下的样本文件heart_scale做优选,其具体用法为:
&&&&&& 第一步:打开d:/libsvm/program下的tools文件夹,找到grid.py文件。用python打开(不能双击,而要右键选择&Edit with IDLE&),修改svmtrain_exe和gnuplot_exe的路径。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&svmtrain_exe = r"D:/libSVM/program/svm-train.exe"
&&&&&& &&&&&&&&&&&&&&&&&&&&&& gnuplot_exe = r"D:/libSVM/gnuplot/pgnuplot.exe"
&&&&&& (这里面有一个是对非win32的,可以不用改,只改# example for windows下的就可以了)
&&&&& 第二步:运行cmd,进入dos环境,定位到d:/libsvm/program/tools文件夹,这里是放置grid.py的地方。怎么定位可以参看第一节。
&&&&&&第三步:输入以下命令:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& d:/libsvm/python26/python grid.py heart_scale
&&&&&& 你就会看到dos窗口中飞速乱串的[local]数据,以及一个gnuplot的动态绘图窗口。大约过10秒钟,就会停止。Dos窗口中的[local]数据时局部最优值,这个不用管,直接看最后一行:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& .5 84.0741
&&&&&& 其意义表示:C = 2048.0;&=0.5(&是哪个参数?参看LibSVM学习(三)中svmtrain的参数说明);交叉验证精度CV Rate = 84.0741%,这就是最优结果。
&&&&& 第四步:打开目录d:/libsvm/program/tools,我们可以看到新生成了两个文件:heart_scale.out和heart_scale.png,第一个文件就是搜索过程中的[local]和最优数据,第二文件就是gnuplot图像。
&&&&&& 现在,grid.py已经运行完了,你可以把最优参数输入到svmtrain中进行训练了。当然了,你在当中某一步很可能出现问题,不过不要紧,我也不是一下子成功的,摸索了半天才成功。下面就需要注意的问题说明一下:
&&&&&&& 1)grid.py和svm-train的版本要统一,也就是说你不能用2.6的grid.py去调用2.89的svm-train。
&&&&&&& 2)你的目录中如果有空格,比如d:/program files/ libsvm/...,那么无论是在第一步还是第二步,请把目录改成d:/progra~1/ libsvm/...
&&&&&&& 3) 第三步的命令问题。首先要看你定位到哪个目录,那么其下的文件就不需要带路径,否则就要带。像我们上面的命令,我当前的目录是d:/libsvm/program/tools,那么其下的easy.py和heart_scale文件就不需要加路径,而python.exe是在d:/libsvm/python26/下,因此不在当前目录下,所以要加路径。比如,当我首先用dos定位到d:/libsvm/python26时,其命令就可以改成:
&&&&&&&&&&&&&&&&&&&& python &d:/libsvm/program/tools/grid.py &d:/libsvm/program/tools/heart_scale
&&&&&& 总起来说,命令为python 目标文件 样本文件,其原则是要让系统找得到文件。假如系统提示你&不是内部或外部命令&,说明你python的路径错误,而如果是&not found file&的提示,很可能是其他两个文件路径错误。
&&&&&&& 4)假如,你仍旧出现问题,那么请换一下python或者gnuplot的版本,目前python最新版本是3.1,但是好像会出问题,老一点的版本2.4或2.5的兼容性会更好。
2. easy.py使用方法
&&& 文件easy.py对样本文件做了&一条龙服务&,从参数优选,到文件预测。因此,其对grid.py、svm-train、svm-scale和svm-predict都进行了调用(当然还有必须的python和gnuplot)。因此,运行easy.py需要保证这些文件的路径都要正确。当然还需要样本文件和预测文件,这里样本文件还是用heart_scale,预测文件我们复制一份然后改名heart_test,下面说一下使用方法:
&&& 第一步:打开easy.py,修改# example for windows下的几个路径:&&
&& 第二步:运行cmd,进入dos环境,定位到放置easy.py的目录d:/libsvm/program/tools。
&&&第三步:输入命令:
&&&&&&&&&&&&&&&&&&&&d:/libsvm/python26/python easy.py heart_scale heat_test
&&&&&&&&&& 你就会看到一个gnuplot的动态绘图窗口。大约20s以后停止,dos窗口显示为:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Scaling training data...
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Cross validation...
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Best c=2048.0, g=0.5 CV rate=84.0741
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Training...
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Output model: heart_scale.model
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Scaling testing data...
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Testing...
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Accuracy = 85.1852% (230/270) (classification)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Output prediction: heart_test.predict
&&& 这就是最终预测结果,可以看到第三行就是调用grid.py的结果。在d:/libsvm/program/tools下你会看到又多了7个文件,都是以前我们碰到的过程文件,都可以用记事本打开。
3. 常见的问题解析:
&&&&&&&&&&&&Scaling training data...&&&&&& &&&&&& Cross validation...&&&&&& &&&&&& Traceback (most recent call last):&&&&&& &&&&&& File "easy.py", line 61, in ?&&&&&& &&&&&& c,g,rate = map(float,last_line.split())&&&&&& &&&&&& ValueError: need more than 0 values to unpack
&&&&&& [解析] 说明你的grid.py运行出现错误,你可以参照第一部分&grid.py使用方法&运行一下就会发现问题。另外,有的说是相对路径的问题,建议找到easy.py的以下部分:
&&&&&& cmd = "%s -svmtrain %s -gnuplot %s %s" % (grid_py, svmtrain_exe, gnuplot_exe, scaled_file)改成&&&&&&&& &cmd = "%s %s -svmtrain %s -gnuplot %s %s" % (python_path, grid_py, svmtrain_exe, gnuplot_exe, scaled_file)
&&&&&&&&&&&&Traceback (most recent call last)&&&&&& &&&&&& File "grid.py", line 349, in ?&&&&&& &&&&&& main()&&&&&& &&&&&& File "grid.py", line 344, in main&&&&&& &&&&&& redraw(db)&&&&&& &&&&&& File "grid.py", line 132, in redraw&&&&&& &&&&&& gnuplot.write("set term windows/n")&&&&&& &&&&&& IOError [Errno 22] Invalid argument&&&&&& [解析] 说明你的gnuplot.exe在调用过程中出现问题,要么是你的路径不对,要么是你的版本不对,请检查。
&&&&&&&&&&&&Traceback (most recent call last): &&&&&& &&&&&& File "C:/Python24/lib/threading.py", line 442, in __bootstrap &&&&&& &&&&&& self.run() &&&&&& &&&&&& File "c:/libsvm/tools/gridregression.py", line 212, in run &&&&&& &&&&&& self.job_queue.put((cexp,gexp,pexp)) &&&&&& &&&&&& File "C:/Python24/lib/Queue.py", line 88, in put &&&&&& &&&&&& self._put(item) &&&&&& &&&&&& File "c:/libsvm/tools/gridregression.py", line 268, in _put &&&&&& &&&&&& self.queue.insert(0,item) &&&&&& &&&&&& AttributeError: 'collections.deque' object has no attribute 'insert
&&&&&& [解析] 很显然,你调用的是gridregression.py,其是用来做回归用的。如果你调用easy.py也出现这种问题按照原作者的说法,这里是因为你的python调用出现错误,很可能是版本不对,如果是2.4的版本,请把easy.py中的
&&&&&&self.queue.insert(0,item)改成&&&&& if sys.hexversion &= 0x:&&&&&&&&&&&&& self.queue.appendleft(item)&&&&&& else&&&&&&&&&&&&& self.queue.insert(0,item)
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:205745次
积分:1471
积分:1471
排名:千里之外
评论:101条
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'关于libsvm的使用,官方文档和matlab中文论坛大神faruto已经写得很明白,针对libsvm3.22版本稍稍有一点需要改进的。
参考来源:
参考文档:《A practical guide to SVM classification》
matlab中文论坛:
具体步骤如下:
(1)数据的处理:
LIBSVM使用的数据格式
该软件使用的训练数据和检验数据文件格式如下:
&label&&index1&:&value1& &index2&:&value2& ...
其中&label& 是训练数据集的目标值,对于分类,它是标识某类的整数(支持多个类);对于回归,是任意数。&index& 是以1开始的整数,可以是不连续的;&value&为实数,也就是我们常说的自变量。检验数据文件中的label只用于计算准确度或误差,如果它是未知的,只需用一个数填写这一栏,也可以空着不填。在程序包中,还包括有一个训练数据实例:heart_scale,方便参考数据文件格式以及练习使用软件。
例如:+1 1:0.708 2:1 3:1 4:-0.320 5:-0.105 6:-1 8:1.21
(2)缩放数据:
svmscale [-l lower] [-u upper] [-y y_lowery_upper] [-s save_filename] [-r restore_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:待缩放的数据文件(要求满足前面所述的格式)。
数据集的缩放结果在此情况下通过DOS窗口输出,当然也可以通过DOS的
文件重定向符号“&”将结果另存为指定的文件。
(缩放规则文件可以用文本浏览器打开,看到其格式为:
lower upper
lval1 uval1
lval2 uval2
其中的lower 与upper 与使用时所设置的lower 与upper 含义相同;index 表
示特征序号;lval 为该特征对应转换后下限lower 的特征值;uval 为对应于转换后上限upper 的特征值。)
使用实例:
例子一: svmscale –s train3.range train3&train3.scale
表示采用缺省值(即对属性值缩放到[ -1,1]的范围,对目标值不进行缩放)
对数据集train3 进行缩放操作,其结果缩放规则文件保存为train3.range,缩放集的缩放结果保存为train3.scale。
例子二: svmscale –r train3.range test3&test3.scale
表示载入缩放规则train3.range 后按照其上下限对应的特征值和上下限值线
性的地对数据集test3 进行缩放,结果保存为test3.scale。
此外,还可以使用matlab中的归一化方法比如mapminmax。
(3)(4)RBF核函数——求最优的C和 &——交叉验证+grid-search 。
一个工具:grid.py 。
具体使用见下一篇文章。
(5)训练SVM。
Svmtrain的用法:model =svmtrain(training_label_vector, training_instance_matrix&
[, 'libsvm_options']);
training_label_vector:An m by 1 vector of training labels (type mustbe double)。
training_instance_matrix:An m by n matrix of m training instances with nfeatures.。libsvm_options:可用的选项即表示的涵义非常多。这些参数设置可以按照SVM的类型和核函数所支持的参数进行任意组合,如果设置的参数在函数或SVM类型中没有也不会产生影响,程序不会接受该参数;如果应有的参数设置不正确,参数将采用默认值。
具体可用参数如下:
-s svm类型:SVM设置类型(默认0)
0 -- C-SVC
2 – one-class-SVM
3 -- e -SVR
4 -- v-SVR
-t 核函数类型:核函数设置类型(默认2)
0 – 线性:u'*v
1 – 多项式:(gamma*u'*v + coef0)^degree
2 – RBF函数:exp(-gamma*|u-v|^2)&&
3 –sigmoid:tanh(gamma*u'*v + coef0)
-d degree:核函数中的degree设置(默认3)
-g gamma:核函数中的g函数设置(默认1/ k) ,k是指输入数据中的属性数
-r coef0:核函数中的coef0设置(默认0)
-c cost:设置C-SVC,e-SVR和v-SVR的参数(默认1)
-n nu:设置v-SVC,one-class-SVM和v-SVR的参数(默认0.5)
-p e:设置e-SVR 中损失函数e的值(默认0.1)
-m cachesize:设置cache内存大小,以MB为单位(默认40)
-e e:设置终止准则中的可容忍偏差(默认0.001)
-h shrinking:是否使用启发式,0或1(默认1)
b 概率估计:是否计算SVC或SVR的概率估计,可选值0 或1(默认0);
-wi weight:设置第几类的参数C为weight?C(C-SVC中的C)(默认1)
-v n: n-fold交互检验模式
运行结果(在命令行中显示):
optimization finished, #iter = 1756
nu = 0.464223
obj = -551.002342, rho = -0.337784
nSV = 604, nBSV = 557
Total nSV = 604
其中,#iter为迭代次数;
nu 与前面的操作参数-n n 相同;
obj为SVM文件转换为的二次规划求解得到的最小值;
rho 为判决函数的常数项b;
nSV 为支持向量个数;
nBSV为边界上的支持向量个数;
Total nSV为支持向量总个数。
svmtrain返回一个model结构体(分类问题):
其中的参数意义为:
返回结果model的含义:
-Parameters: parameters
&&&&&&&-nr_class: = 2 for regression/one-class svm
&&&&&&&-totalSV: total #SV
&&&&&&&-rho: -b of the decision function(s) wx+b
&&&&&&&-Label: empty for regression/one-class SVM
&&&&&&&-sv_indices: values in [1,...,num_traning_data] to indicate SVs in thetraining set
&&&&&&&-ProbA: pairwise pro empty if -b 0 or in one-classSVM
&&&&&&&-ProbB: pairwise pro empty if -b 0 or in one-classSVM
&&&&&&&-nSV: number of SV empty for regression/one-class SVM
&&&&&&&-sv_coef: coefficients for SVs in decision functions
&&&&&&&-SVs: support vectors
(6)测试模型。
Svmpredict的用法:svmpredict [options]test_file model_file output_
options(操作参数):
-b probability_estimates:是否需要进行概率估计预测,可选值为0 或者1,默认值为0;
返回值含义:
predicted_label:预测后得到的label。
accuracy:3 by 1的向量。包括(分类)准确率accuracy、均方误差mean
squared error、(回归)相关系数误差squared correlation coefficient (for regression)。
而且squared correlation coefficient (for regression)越接近你越好,代表回归模型精度越高。
本文精华:
1、如果当前目录在libsvm下,那么就会调用libsvm的svmtrain,而自带的svmtrain的调用格式和libsvm的svmtrain的格式是不一样的,自带的格式是SVMStruct = svmtrain(‘训练矩阵’,‘训练标签’ 'Showplot',ShowplotValue,
...),而libsvm的格式需要把标签写在第一个参数,若想使用自带的,那么把libsvm的路径从搜索路径中删除,即set path然后remove,并且把当前目录切换到toolbox下。
2、不同版本有略微差异。比如安装3.22版本,svmpredict的返回值是三个。而教程上的是两个,导致无法得到结果。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:28127次
排名:千里之外
原创:43篇
(2)(1)(3)(3)(9)(8)(10)(1)(1)(9)(5)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'}

我要回帖

更多关于 libsvm 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信