我正在使用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
答案 0 :(得分:2)
确保在'-v 10'
选项中加入svmtrain
。我不确定您的100%准确度来自培训样本或验证样本。由于您的样本数少于特征数,因此很有可能获得100%的训练精度。但是如果你的模型过度拟合,验证的准确性可能会很低。