【发布时间】: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