我有两个带有5个标签的多类数据集,一个用于培训,另一个用于交叉验证。这些数据集存储为.csv文件,因此它们在此实验中充当控件。
我有libsvm的C ++包装器和libsvm的MATLAB函数。
对于C ++和MATLAB: 使用带有RBF内核的C型SVM,我迭代了2个C和Gamma值列表。对于每个参数组合,我训练训练数据集,然后预测交叉验证数据集。我将预测的准确性存储在2D地图中,该地图与产生准确度的C和Gamma值相关。
我已经多次重新创建了不同的培训和交叉验证数据集。每次,C ++和MATLAB的精度都不同;有时很多!大多数MATLAB产生更高的精度,但有时C ++实现更好。
有什么可以解释这些差异?我正在尝试的C / Gamma值与剩余的SVM参数(默认值)相同。
答案 0 :(得分:4)
由于C和Matlab代码都使用相同的 svm.c
文件,因此应该没有显着差异。那可能是什么原因?