2024-05-22 02:12:26 发布
网友
我正在使用python中的sklearnsvr包实现SVR。我的稀疏矩阵是146860 x 10202。我把它分成大小为2500 x 10202的各种子矩阵。对于每个子矩阵,SVR拟合大约需要10分钟。 有什么方法可以加快这一进程?对于同一个问题,请提出不同的方法或不同的python包。 谢谢!在
你可以平均SVR子模型的预测。在
或者,您可以尝试在使用Nystroem method计算的内核扩展的输出上拟合一个线性回归模型。在
或者你可以尝试其他非线性回归模型,比如随机化树的集合或梯度增强的回归树。在
编辑:我忘了说:内核SVR模型本身是不可伸缩的,因为它的复杂性超过了二次方,因此没有办法“加速”。在
编辑2:实际上,通常将输入变量缩放为[0, 1]或{},或者使用StandardScaler将输入变量调整为单位方差,可以大大加快收敛速度。在
[0, 1]
StandardScaler
另外,默认参数也不太可能产生好的结果:在拟合大型模型之前,您必须网格搜索gamma的最佳值,也可能在不断增大的子样本上epsilon(以检查最佳参数的稳定性)。在
gamma
epsilon
你可以平均SVR子模型的预测。在
或者,您可以尝试在使用Nystroem method计算的内核扩展的输出上拟合一个线性回归模型。在
或者你可以尝试其他非线性回归模型,比如随机化树的集合或梯度增强的回归树。在
编辑:我忘了说:内核SVR模型本身是不可伸缩的,因为它的复杂性超过了二次方,因此没有办法“加速”。在
编辑2:实际上,通常将输入变量缩放为},或者使用
[0, 1]
或{StandardScaler
将输入变量调整为单位方差,可以大大加快收敛速度。在另外,默认参数也不太可能产生好的结果:在拟合大型模型之前,您必须网格搜索
gamma
的最佳值,也可能在不断增大的子样本上epsilon
(以检查最佳参数的稳定性)。在相关问题 更多 >
编程相关推荐