5

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

4

1 回答 1

7

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

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

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

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

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

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

于 2013-03-23T06:23:44.583 回答