2015-03-13 30 views
0

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

回答

0

SVM中的模型选择过程可帮助您根据不同的函数参数选择最佳模型。在LibSVM库中,使用交叉验证方法完成模型选择。它所做的是将您的训练数据分成多个子集,并且每次使用不同的参数训练模型,以提高精度。这也消除了over fitting problem

0

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

e1071

+0

谢谢VTT,交叉验证实际上是模型选择。我会考虑R,但我想知道我们是否可以在实际生产水平的项目中使用它,并持续流动数据。 – 2015-03-15 06:33:39

0

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

偏差说明:我是图书馆的作者。

+0

谢谢先生,我会通过JSAT,如果我觉得合适,我会让你知道。也许你可以给我一些建议,写我自己的基于ABC或遗传算法的模型选择项目。 – 2015-03-15 06:47:23

+0

遗传算法大多只在我们没有好的方法来搜索空间时才有用。对于运行网格搜索的参数很好,并且随机搜索很有效,因为你有太多的参数。 – 2015-03-16 16:23:58