在尝试训练 SVM 时,我从 Liblinear 收到以下错误:'错误:C <= 0'。虽然很明显出了什么问题,但我无法弄清楚为什么会出现问题,因为通过交叉验证找到的 CI 是肯定的。
这是用于查找 C 的交叉验证代码(我已删除低位)
for log2c = 2:1:6,
cmd = ['-s 2 -v 5 -c ', num2str(2^log2c)];
cv = train(labels, features, cmd);
我得到的结果是
Cross Validation Accuracy = 91.6772%
bestc = 4, cv = 91.6772
但是,当我训练 SVM 时,我得到了
models{i} = train(trainLabel, trainFeats, ['-s 2 -c ', bestc]);
Error: C <= 0
如果有人有任何建议,他们将不胜感激!
(另外,如果有任何用处,我的数据大约是 2/3 负数和 1/3 正数)