我正在使用LIBSVM进行数据分类。我主要做一类分类。
我的训练集只包含一个班级的数据。我的测试数据包含两个类的数据(一个属于目标类,另一个不属于目标类)。
在训练和测试数据集上应用svmtrain和svmpredict后,训练集的准确率为48%,测试集的准确率为34.72%。
好吗?我怎么知道LIBSVM是否正确地对数据集进行分类?
答案 0 :(得分:0)
说它是否好是完全取决于您尝试分类的数据。您应该根据您的分类搜索SVM模型的最新精确度,然后您就能够知道您的模型是否良好。
我从你的结果中可以看出,测试精度比训练精度差,这是正常的,因为分类器通常对以前已经看到的数据表现更好。
您现在可以尝试使用正则化参数(如果使用线性内核,则使用C),并查看测试集的性能是否有所改善。
您还可以跟踪学习曲线,看看您的分类器是否适合,这将有助于您选择是否需要增加或减少正则化。
对于你的情况,你可能想对类应用加权,因为数据通常是稀疏的,有利于反面的例子。
要知道Libsvm是否正确地对数据集进行分类,您可以查看它正确预测的哪些示例以及它预测错误的示例。然后,您可以尝试更改功能以改善其结果。
如果您担心您的代码是正确的,您可以尝试编写玩具示例代码并使用它或使用网络上某人的示例并复制其结果。