【问题标题】:Optimizing SVR() parameters using GridSearchCv使用 GridSearchCv 优化 SVR() 参数
【发布时间】:2019-12-21 00:52:15
【问题描述】:

我想调整“SVR()”回归函数的参数。它开始处理并且不会停止,我无法找出问题所在。我正在使用 SVM 回归函数 SVR() 预测参数。使用 Python 中的默认值时结果不好。所以我想尝试使用“GridSearchCv”对其进行调整。最后一部分“grids.fit(Xtrain,ytrain)”开始运行而没有给出任何错误并且不会停止。 SVR() tunning using GridSearch 代码:

从 sklearn.model_selection 导入 GridSearchCV。

param = {'kernel' : ('linear', 'poly', 'rbf', 'sigmoid'),'C' : [1,5,10],'degree' : [3,8],'coef0' : [0.01,10,0.5],'gamma' : ('auto','scale')},

modelsvr = SVR(),

grids = GridSearchCV(modelsvr,param,cv=5)

grids.fit(Xtrain,ytrain)

它继续处理而不停止。

【问题讨论】:

    标签: python-3.x svm


    【解决方案1】:

    是的,你是对的。当我尝试为 SVR() 运行 GridsearchCV 时,我遇到了同样的情况。可能的原因是,1)您的处理器内存(RAM)必须更少,2)训练数据样本量更大,由于您的处理器内存不足,因此花费更多时间运行 Gridsearch 的机会相同,因此作业运行没有任何错误时间会更多。

    供您参考:我使用 16GB RAM 内存空间运行了 Gridsearch,训练样本大小为 30K,完成运行用了 210 分钟。所以,这里必须要有耐心。

    分析愉快!!

    【讨论】:

      【解决方案2】:

      也许您应该在 GridSearch 中再添加两个选项(n_jobsverbose):

      grid_search = GridSearchCV(estimator = svr_gs, param_grid = param, 
                            cv = 3, n_jobs = -1, verbose = 2)
      

      verbose 表示您会看到一些关于您的进程进度的输出。

      n_jobs 是已用内核的数量(-1 表示您可用的所有内核/线程)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-06-21
        • 2017-07-09
        • 2019-08-30
        • 2020-09-12
        • 2018-11-18
        • 2013-02-23
        • 2020-10-29
        • 2019-09-14
        相关资源
        最近更新 更多