【问题标题】:How to perform model selection with LibSVM using Java Library?如何使用 Java 库通过 LibSVM 执行模型选择?
【发布时间】:2015-05-15 18:46:12
【问题描述】:

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

【问题讨论】:

    标签: java machine-learning libsvm


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 谢谢先生,我会通过 JSAT,如果我觉得合适我会告诉你的。也许你能给我一些关于编写我自己的 ABC 或基于遗传算法的模型选择项目的建议。
      • 遗传算法大多只在我们没有很好的方法来搜索空间时才有用。对于参数运行网格搜索很好,如果参数太多,随机搜索效果很好。
      【解决方案3】:

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

      e1071

      【讨论】:

      • 谢谢VTT,交叉验证其实就是模型选择。我会考虑 R,但我想知道我们是否可以在具有连续流动数据的实际生产级项目中使用它。
      猜你喜欢
      • 2015-06-13
      • 2017-11-28
      • 2012-11-04
      • 2017-04-13
      • 2012-05-28
      • 2015-04-04
      • 1970-01-01
      • 2019-01-30
      • 1970-01-01
      相关资源
      最近更新 更多