libsvm的准确率为100%

时间:2014-01-27 23:08:57

标签: machine-learning classification svm libsvm cross-validation

我正在使用libSVM(使用线性内核)训练和交叉验证(10倍)数据。

数据包括1800个fMRI强度体素,表示为单个数据点。 svm-train的训练集文件中有大约88个数据点。

training-set-file看起来如下:

+1 1:0.9 2:-0.2 ... 1800:0.1

-1 1:0.6 2:0.9 ... 1800:-0.98

...

我还应该提到我正在使用svm-train脚本(随libSVM程序包一起提供)。

问题是,当运行svm-train时 - 结果是100%准确!

这似乎并不反映真正的分类结果!  

以来数据不平衡

#datapoints labeled +1 == #datpoints labeled -1

我还检查了缩放器(正确缩放),并且还尝试随机更改标签以查看它如何影响准确度 - 并且它从100%降低到97.9%。

你能帮我理解一下这个问题吗? 如果是这样,我该怎么做才能解决它?

谢谢,

Gal Star

1 个答案:

答案 0 :(得分:2)

确保在'-v 10'选项中加入svmtrain。我不确定您的100%准确度来自培训样本或验证样本。由于您的样本数少于特征数,因此很有可能获得100%的训练精度。但是如果你的模型过度拟合,验证的准确性可能会很低。