我目前正在使用 Scikit learn 和以下代码:
clf = svm.SVC(C=1.0, tol=1e-10, cache_size=600, kernel='rbf', gamma=0.0,
class_weight='auto')
然后对一组具有 7 个不同标签的数据进行拟合和预测。我得到了一个奇怪的输出。无论我使用哪种交叉验证技术,验证集上的预测标签总是标签 7。
我尝试了一些其他参数,包括完整的默认参数 ( svm.SVC()
),但只要我使用的内核方法是rbf
而不是,poly
否则linear
它就不起作用,而它对poly
and非常有效linear
。
此外,我已经尝试过对训练数据而不是验证数据进行预测,它非常适合。
有没有人以前见过这种问题并且知道这里发生了什么?
我从不详细查看我的班级分布,但我知道应该是 30% 左右是 7,14% 是 4。
我什至尝试了手动 1-vs-rest 实现,但仍然没有帮助。