我正在使用python中的SVR svr包实现sklearn。我的稀疏矩阵的大小为146860 x10202。我将其划分为大小为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/