我正在实施SVR http://en.wikipedia.org/wiki/Support_vector_machine#Regression using sklearn http://scikit-learn.org/stable/python 中的 svr 包。我的稀疏矩阵的大小为 146860 x 10202。我将其划分为大小为 2500 x 10202 的各个子矩阵。对于每个子矩阵,SVR 拟合大约需要 10 分钟。
有哪些方法可以加快这一过程?请建议任何不同的方法或不同的 python 包。
谢谢!
您可以对 SVR 子模型预测进行平均。
或者,您可以尝试在核扩展的输出上拟合线性回归模型尼斯特罗姆法 http://scikit-learn.org/dev/modules/kernel_approximation.html.
或者您可以尝试其他非线性回归模型,例如随机树集成或梯度增强回归树。
Edit:我忘了说:内核 SVR 模型本身不可扩展,因为它的复杂性超过二次方,因此无法“加速”。
Edit 2:实际上,经常将输入变量缩放为[0, 1]
or [-1, 1]
或使用单位方差StandardScaler
可以大大加快收敛速度。
此外,默认参数不太可能产生良好的结果:您必须网格搜索最佳值gamma
也许还有epsilon
在拟合大型模型之前,先对尺寸不断增加的子样本进行分析(以检查最佳参数的稳定性)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)