【问题标题】:Is LIBSVM suitable for many categories and samples?LIBSVM 是否适用于许多类别和样本?
【发布时间】:2018-12-05 17:34:56
【问题描述】:

我正在构建一个文本分类器,它应该能够给出文档属于某些类别的概率(即 80% 的小说、30% 的营销等)

我相信 Libsvm 是通过“预测”方法做到这一点的,但问题是我有大约 20 个类别要测试。此外,我还有数百个文档可用于培训。

问题是训练文件变大了 1 GB - 2 GB,这使得 Libsvc 超级慢。

如何解决这个问题?我应该改用 Liblinear,还是有更好的选择?

【问题讨论】:

  • 请先做一些基础研究。这包括 SVM 在预测概率方面的劣势(关键词:Platt-scaling;基于 CV 的概率校准)及其(通常)二元性质(尽管可能存在一些多项式配置)。然后你可以尝试推断出 libsvm 和 liblinear 的区别。这里的其他一切都非常广泛/猜测。
  • SVM 可用于预测概率。 LibSVM 和 Liblinear 都有这方面的方法。到目前为止,我发现的唯一区别是 LibSVM 更准确一点,但速度慢了很多,这使得它对于大型训练文件毫无用处
  • 作为参考,LibSVM 使用 Platt-scaling (stats.stackexchange.com/a/211973/212921)
  • 我在合理的时间内使用 LIBSVM 进行文本分类,文档集合 > 40k 文档(启用或不启用 Platt-scaling)。你的特征空间有多大?
  • 500 个文档,大约 20 个类别。存储在磁盘上,变为 2 GB!

标签: machine-learning svm libsvm


【解决方案1】:

关于这个具体问题,我不得不使用 Liblinear,因为 LibSVC 一直在运行。

但如果有人想知道最终结果如何:

  1. 我从 PHP / C++ 切换到 Python,这非常棒 更容易并且没有遇到任何内存问题
  2. 我的案例是“多标签”。 This article 为我指明了正确的方向,the magpie project 帮助我完成了任务。

【讨论】:

    猜你喜欢
    • 2014-06-23
    • 1970-01-01
    • 1970-01-01
    • 2020-02-26
    • 1970-01-01
    • 2020-04-18
    • 2011-11-19
    • 2017-10-08
    • 1970-01-01
    相关资源
    最近更新 更多