python - 如何加速sklearn SVR?

标签 python svm sparse-matrix scikit-learn

我正在实现 SVR使用 sklearn python 中的 svr 包。我的稀疏矩阵大小为 146860 x 10202。我将它分成大小为 2500 x 10202 的各种子矩阵。对于每个子矩阵,SVR 拟合大约需要 10 分钟。 有什么方法可以加快这个过程?请为此建议任何不同的方法或不同的 python 包。 谢谢!

最佳答案

您可以对 SVR 子模型预测进行平均。

或者,您可以尝试在使用 Nystroem method 计算的核扩展输出上拟合线性回归模型.

或者您可以尝试其他非线性回归模型,例如随机树集成或梯度提升回归树。

编辑:我忘了说:内核 SVR 模型本身不可扩展,因为它的复杂性超过二次方,因此没有办法“加速它”。

编辑 2:实际上,通常将输入变量缩放到 [0, 1][-1, 1] 或单位使用 StandardScaler 的方差可以大大加快收敛速度​​。

此外,默认参数不太可能产生良好的结果:您必须网格搜索 gamma 的最佳值,也许还需要对 epsilon 的子样本进行网格搜索在适合大型模型之前增加尺寸(以检查最佳参数的稳定性)。

关于python - 如何加速sklearn SVR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15582669/

相关文章:

python - 打印一个相当具体的矩阵

python - 如何通过 Python 中的 Sagemath 库理解可疑的语法应用

machine-learning - 如何手动解析 LibSVM 模型的支持向量进行分类?

image-processing - 图像检索和图像分类的区别

python - 如何将稀疏矩阵数组转换为json python

loops - Chapel 中的稀疏迭代

python - 我不知道如何在数据库上执行 SUM 函数并将值存储到 python 变量中

python - 使用不同的字体创建 3D 验证码

r - 无法绘制 svm 图。 terms.default(x) 错误 : no terms component nor attribute

c++ - 您将如何管理结构的 std::vector 和 std::vectors 在两个维度上都具有大范围的大小?