如何减少 SVM 的执行时间

Posted

技术标签:

【中文标题】如何减少 SVM 的执行时间【英文标题】:How to decrease execution time for SVM 【发布时间】:2017-03-03 05:39:51 【问题描述】:

我目前正在处理一个包含 20 个特征和 400K 行的数据集。我正在使用 e1071 库使用 SVM 进行多类分类。我有这个代码,大约需要 2 天才能得到结果。有没有办法可以使用同一个库来降低时间复杂度?如果不是,我应该在 R 中优先考虑哪些其他库或选项?

svm.model <- svm(y ~., data = traindata, gamma = 0.01, cost = 10, kernel= "radial")

【问题讨论】:

我会尝试对 1000-10000 行进行二次抽样,然后看看使用较少数量的样本可以获得什么性能 - 这可能足以获得一个体面的模型。也可以尝试不同的内核。 是的,我确实尝试过。但是在取 40K 大小的样本与整个数据比较时,误差差异是显着的。 你在做训练/测试、交叉折叠验证等吗? 是的,50% 的数据用于训练,25% 用于测试和验证。 【参考方案1】:

我建议尝试降维(例如使用 PCA)来减少特征数量,这会提高性能。

【讨论】:

以上是关于如何减少 SVM 的执行时间的主要内容,如果未能解决你的问题,请参考以下文章

使用来自 LDA 的主题建模信息作为特征,通过 SVM 执行文本分类

如何减少执行时间

SVM 回归的交叉验证

如何减少此代码的执行时间

如何减少此脚本的执行时间?

SVM 实现,scikit learn 减少运行时间,最快的 svm