【发布时间】:2014-05-31 15:13:35
【问题描述】:
我正在使用 Libsvm 来解决二进制分类问题。我的数据集有大约 50K 属性和 18 个样本。我正在使用留一法验证(对 17 个样本进行训练并在剩余样本上进行测试)。我正在使用以下方法对数据进行规范化:
svm-scale -s scaling_parameters Train$i > TrainScaled$i
svm-scale -r scaling_parameters Test$i > TestScaled$i
训练和预测如下:
svm-train -s 0 -c 5 -t 2 -g 0.5 -e 0.1 TrainScaled$i model
svm-predict TestScaled$i model predicted.out
模型总是预测相同的类别(大多数)。所以我获得了 75% 的准确率,但该模型没有用,因为它总是为每个样本预测相同的类别。我尝试了不同类型的内核和参数,但我仍然得到相同的结果。会是什么呢?数据很难被超平面“划分”吗?
【问题讨论】:
-
我的数据集有大约 50K 属性和 18 个样本 我认为你需要更多样本来训练模型,你可以尝试分析 50K 维度中是否有任何特征有助于区分你的两个类样本
-
我尝试应用特征选择但没有任何改变,甚至只对 100 个属性进行了大幅缩减
标签: machine-learning classification svm libsvm