如何使用 Java 库使用 LibSVM 执行模型选择?

How to perform model selection with LibSVM using Java Library?

在寻找推文分类问题的算法时,我遇到了 SVM。从 LibSVM 开始,我使用它的 java 库(不是命令行)实现了一个系统,它产生了大约 50%-60% 的线性函数。现在我希望进行模型选择、缩放、交叉验证和特征选择,以期提高我的准确性。问题是,我无法在 LibSVM 的 Java 库中找到这些功能。那么我有什么选择。考虑到我是一名 java 程序员?如果选择自己编写它们,如何以及使用什么算法?我应该使用任何其他机器学习库或算法来完成这项任务吗?

我不确定模型选择或缩放比例是什么意思。我知道 LibSVM 做交叉验证,但我不知道特征选择。我建议使用 R 而不是 java。有许多针对不同特征选择方法的软件包,还有 SVM,例如:

e1071

JSAT 有一个 SVM 实现(与 LibSVM 使用的算法不完全相同,但解决了相同的问题)以及许多其他算法、GridSearch 和特征选择方法。

偏见:我是图书馆的作者。

SVM 中的模型 selection 过程可帮助您 select 基于函数的不同参数的最佳模型。在 LibSVM 库中,模型 selection 是使用交叉验证方法完成的。它所做的是将您的训练数据分成几个子集,并每次使用每个数据使用不同的参数训练模型,以提高准确性。这也消除了 over fitting problem