LibSVM将我的所有训练向量都变成了支持向量,为什么?

我正在尝试使用SVM进行新闻文章分类。

我创建了一个表格,将特征(文档中找到的独特词汇)作为行。我创建了与这些特征映射的权重向量。即如果文章中包含特征向量表中的某个词,则该位置标记为1,否则标记为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

由于这是第一篇文档,所有特征都存在。

我使用10作为类别标签。

我使用svm.Net进行分类。

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

我的总特征(特征向量数据库表中的独特词汇/行数)是7610

原因可能是什么?

由于这种过拟合,我的项目现在状况非常糟糕。它将所有可用的文章都分类为正面文章。

LibSVM的二元分类中,对类别标签有任何限制吗?

我使用01而不是-1+1。这会是问题吗?


回答:

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

我还会研究你可用的不同核函数。你的输入数据是二进制的,这对于RBF核函数来说可能是个问题(或者可能使其使用效果不佳,与其他核函数相比)。我不知道哪个核函数更适合,不过。尝试使用线性核函数,并寻找更多建议/想法 🙂

要获取更多信息和可能更好的答案,请查看stats.stackexchange.com。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注