【问题标题】:Training of nu-SVR taking too much timenu-SVR 的训练花费了太多时间
【发布时间】:2018-03-08 20:52:44
【问题描述】:

我正在一个大型数据集上运行一个 nu-SVR 模型,我正在使用 sklearn,但是训练花费了太多时间,我什至不使用网格搜索来寻找最佳参数,我修复了 C 和nu 参数。

 clf = NuSVR(kernel="rbf",C=15.0, nu=0.3)

有没有办法加快训练速度?

【问题讨论】:

  • 支持向量机的扩展性很差,样本很多,非线性内核在某种程度上禁止替代方案(例如 SGDRegressor,它可以用于线性支持向量机的海量数据)。所以不行。一般来说,您无能为力(尽管 C,nu 的某些值可能训练得更快;取决于您的数据是否好)。删除内核或寻找另一个回归量。
  • 还可以先尝试标准化您的数据,这可能有助于 svm 运行得更快。
  • 感谢您的回答,是的,我的数据是标准化的@VivekKumar。
  • @sascha SVM 回归器给了我最好的结果,对于我在上面给你的配置( C=15.0, nu=0.3 )花了 3 个小时来完成训练,有什么我可以做的吗,我有一个带有 8g RAM 的 i7 英特尔,这不是硬件问题
  • 我已经说过:这是一个算法问题(您已经使用事实上的标准库来优化它)。

标签: python scikit-learn


【解决方案1】:

如果可能,请使用多项式内核而不是 rbf,并在初始化 nuSVR 时设置 max_iter 字段。

clf = NuSVR(kernel="poly",C=15.0, nu=0.3, max_iter=10000)

这减少了我的时间,但它可能会也可能不会收敛。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-19
    • 2019-05-25
    • 1970-01-01
    • 2017-02-15
    • 2020-07-23
    • 2013-07-11
    • 2014-01-13
    • 1970-01-01
    相关资源
    最近更新 更多