libsvm:C++ 与 MATLAB:不同的精度有何不同?
Posted
技术标签:
【中文标题】libsvm:C++ 与 MATLAB:不同的精度有何不同?【英文标题】:libsvm : C++ vs. MATLAB : What's With The Different Accuracies? 【发布时间】:2013-09-23 17:02:13 【问题描述】:我有两个包含 5 个标签的多类数据集,一个用于训练,另一个用于交叉验证。这些数据集存储为 .csv 文件,因此它们在本实验中充当对照。
我有一个用于 libsvm 的 C++ 包装器,以及用于 libsvm 的 MATLAB 函数。
对于 C++ 和 MATLAB: 使用带有 RBF 内核的 C 类型 SVM,我迭代了 2 个 C 和 Gamma 值列表。对于每个参数组合,我在训练数据集上进行训练,然后预测交叉验证数据集。我将预测的准确性存储在与产生准确性的 C 和 Gamma 值相关的 2D 地图中。
我已经多次重新创建不同的训练和交叉验证数据集。每次,C++ 和 MATLAB 的精度都不一样;有时很多!大多数情况下,MATLAB 产生更高的精度,但有时 C++ 实现更好。
造成这些差异的原因是什么?我尝试的 C/Gamma 值相同,其余 SVM 参数也相同(默认)。
【问题讨论】:
【参考方案1】:C 和 Matlab 代码都使用 same svm.c
文件,因此应该没有显着差异。那么可能是什么原因呢?
【讨论】:
以上是关于libsvm:C++ 与 MATLAB:不同的精度有何不同?的主要内容,如果未能解决你的问题,请参考以下文章
解密SVM系列:matlab下libsvm的简单使用:分类与回归