5

我正在尝试将SVM用于新闻文章分类。

我创建了一个表,其中包含作为行的特征(在文档中找到的唯一词)。我用这些特征创建了权重向量映射。即,如果文章有一个词是特征向量表的一部分,则该位置被标记为1or else 0

例如:- 生成的训练样本...

1 1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:1 9:1 10:1 11:1 12:1 13:1 14:1 15:1 16:1 17 :1 18:1 19:1 20:1 21:1 22:1 23:1 24:1 25:1 26:1 27:1 28:1 29:1 30:1

由于这是第一个文档,所有功能都存在。

我使用1,0作为类标签。

我正在使用svm.Net进行分类。

我将300权重向量手动分类为训练数据,生成的模型将所有向量作为支持向量,这肯定是过拟合的。

我的总特征unique words/row count在特征向量 DB 表中)是7610

可能是什么原因?

由于这个过度拟合,我的项目现在状况很糟糕。它将每一篇可用的文章归类为正面文章。

LibSVM二进制分类中,类标签有什么限制吗?

我正在使用0,1而不是-1and +1。那是问题吗?

4

3 回答 3

3

您需要进行某种类型的参数搜索,如果类不平衡,分类器可能会在不做太多事情的情况下获得人为的高精度。本指南擅长教授基本实用的东西,您应该阅读它

于 2011-04-20T18:18:40.320 回答
1

我肯定会尝试为您的标签使用 -1 和 +1,这是执行此操作的标准方法。

另外,你有多少数据?由于您在 7610 维空间中工作,因此您可能拥有那么多支持向量,其中不同的向量在每个维度中“支持”超平面。

有了这么多功能,您可能想尝试某种类型的功能选择方法,例如主成分分析。

于 2011-04-22T03:23:40.233 回答
1

正如所指出的,在做任何其他事情之前,参数搜索可能是一个好主意。

我还将调查您可用的不同内核。您输入的数据是二进制的这一事实可能对 RBF 内核有问题(或者与另一个内核相比,它的使用可能不是最佳的)。不过,我不知道哪个内核更适合。尝试线性内核,并四处寻找更多建议/想法:)

如需更多信息和更好的答案,请访问 stats.stackexchange.com。

于 2011-04-22T15:50:54.810 回答