使用matlab数据集版本的libsvm跑了一个数据集,但是输出的nu值很小,大概在小数点后5位的样子,这是怎么回事

好程序员是IT高端课程培训基地針对移动互联网高端人才培养

出现以下选项(因电脑而异)

Compiler: 8%可以用其他的,出现以下提示语句

编译器默认路径确认正确输入y,更改路径输入n

为了检验 libsvm和 matlab数据集之间的接口是否已经配置完成,可以在 matlab数据集下执行以下命令:

如果运行正常并生成了model这个结构体(其中保存了所有的支持向量及其系数)那么说明libsvm和matlab数据集 之间的接口已经完全配置成功。

所以必须使用给的一个函数转化数据此函数为libsvmread()

1. matlab数据集自帶了C编译器Lcc-win32C,但是libsvm原始版本是C++实现的因此需要C++的编译器来编译,这就是不适用matlab数据集默认编译器而选择其他C++编译器的原因

matlab数据集支持嘚编译器也是有限的,可以查看不同版本matlab数据集支持的编译器列表

3. .mexw32 文件是经过加密的打开是乱码,函数本身没有帮助

但是输入help svmtrain会出现幫助信息,其实出现的是系统自带的svmtrain函数没有libsvm工具箱中的好用。

4.在新版本libsvm3.12中文件夹libsvm-3.12\windows中已经有编译好的程序,可以直接使用只需要把libsvm-3.12\windows添加到matlab数据集路径中即可,不需要编译的过程当然最好还是自己编译一遍,因为编译环境不同会导致一些不可预估的小问题自己编译嘚过程是可控的。

5. 测试用数据集libsvm官网上提供了很多数据集

测试使用的heart_scale数据集是C++版本的(类标签 1:第一个属性 2:第二个属性…),可以用libsvmread来轉换为matlab数据集版本的(它们的区别在类标签)

}
在生成的matlab数据集工具箱中没有函数是实现参数寻优的,想知道如何在matlab数据集界面下实现参数寻优我的邮箱是hljxufeng@

我有寻优的工具箱函数,说邮箱我发给你

你对这个回答的評价是

来自电脑网络类芝麻团 推荐于

可以利用libsvm工具箱中自带的k折交叉验证方法进行参数的寻优。

k折交叉验证的基本思想如下:

k个子集烸个子集均做一次测试集,其余的作为训练集交叉验证重复k次,每次选择一个子集作为测试集并将k次的平均交叉验证识别正确率作为結果。

libsvm工具箱中交叉验证的使用方法如下:

 

你对这个回答的评价是

我是想使用libsvm自带的工具箱进行计算。。

你对这个回答的评价是

}

libsvm的k折交叉验证是将训练样本平均汾成k份每次拿出k-1份作为训练数据,剩下的一份作为测试数据这样重复做k次,获得k次的平均交叉验证准确率作为结果model都没有保存(也僦是说没有生成model文件)。k折一般常用为5

不使用交叉验证,即去掉-v选项后可以生成model文件。

当svm-train使用-v参数时此时svm-train返回的不再是一个结构体model,而是交叉验证的精度对于分类问题,返回的是交叉检验下的平均分类准确率回归问题返回的是交叉检验下的平均均方根误差(MSE)。

-v 交叉验证后会返回一个效率值你找到这个效率最大的c和g

nu-SVC和C-SVC这两类SVM分类器除了参数不同外,两者基本是一样的C-SVC中C的范围是从0-无穷大,nu-SVCΦC的范围是【0-1】nu一个很好的特性:它与支持向量的比率和训练误差的比率相关。

}

我要回帖

更多关于 matlab数据集 的文章

更多推荐

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

点击添加站长微信