我有两个带有 5 个标签的多类数据集,一个用于训练,另一个用于交叉验证。这些数据集存储为 .csv 文件,因此它们在本实验中充当对照。
我有一个用于 libsvm 的 C++ 包装器,以及用于 libsvm 的 MATLAB 函数。
对于 C++ 和 MATLAB:使用带有 RBF 内核的 C 类型 SVM,我迭代了 2 个 C 和 Gamma 值列表。对于每个参数组合,我在训练数据集上进行训练,然后预测交叉验证数据集。我将预测的准确性存储在与产生准确性的 C 和 Gamma 值相关的 2D 地图中。
我已经多次重新创建不同的训练和交叉验证数据集。每次,C++ 和 MATLAB 的精度都不一样;有时很多!大多数情况下,MATLAB 会产生更高的准确度,但有时 C++ 实现会更好。
什么可以解释这些差异?我正在尝试的 C/Gamma 值是相同的,其余的 SVM 参数(默认)也是如此。