我正在使用python中的sklearn SVR包实现SVR。我的稀疏矩阵的大小是146860 x 10202。我把它分成大小为2500 x 10202的各种子矩阵。对于每个子矩阵,SVR拟合大约需要10分钟。有什么方法可以加快这一进程呢?请建议任何不同的方法或不同的python包。谢谢!
你可以平均SVR子模型的预测。
或者,您可以尝试在使用Nystroem方法计算的核展开的输出上拟合线性回归模型。
或者你可以尝试其他非线性回归模型,如随机树的集合或梯度增强回归树。
编辑:我忘了说:内核SVR模型本身是不可扩展的,因为它的复杂性超过二次,因此没有办法"加速它"。
编辑2:实际上,通常将输入变量缩放为[0, 1]
或[-1, 1]
或使用StandardScaler
的单位方差可以大大加快收敛速度。
默认参数也不太可能产生良好的结果:在拟合大型模型之前,您必须在增大尺寸的子样本上网格搜索gamma
和epsilon
的最佳值(以检查最佳参数的稳定性)。