gpt4 book ai didi

python - 有没有更快的运行 GridsearchCV 的方法

转载 作者:太空狗 更新时间:2023-10-29 20:44:55 24 4
gpt4 key购买 nike

我正在为 sklearn 中的 SVC 优化一些参数,这里最大的问题是在我尝试任何其他参数范围之前必须等待 30 分钟。更糟糕的是,我想在同一范围内尝试更多的 c 和 gamma 值(这样我可以创建更平滑的曲面图)但我知道它会花费越来越长的时间......当我今天运行它时我将 cache_size 从 200 更改为 600(实际上并不知道它的作用)以查看它是否有所作为。时间减少了大约一分钟。

我能帮上忙吗?还是我只需要处理很长时间?

clf = svm.SVC(kernel="rbf" , probability = True, cache_size = 600)

gamma_range = [1e-7,1e-6,1e-5,1e-4,1e-3,1e-2,1e-1,1e0,1e1]
c_range = [1e-3,1e-2,1e-1,1e0,1e1,1e2,1e3,1e4,1e5]
param_grid = dict(gamma = gamma_range, C = c_range)

grid = GridSearchCV(clf, param_grid, cv= 10, scoring="accuracy")
%time grid.fit(X_norm, y)

返回:

Wall time: 32min 59s

GridSearchCV(cv=10, error_score='raise',
estimator=SVC(C=1.0, cache_size=600, class_weight=None, coef0=0.0, degree=3, gamma=0.0,
kernel='rbf', max_iter=-1, probability=True, random_state=None,
shrinking=True, tol=0.001, verbose=False),
fit_params={}, iid=True, loss_func=None, n_jobs=1,
param_grid={'C': [0.001, 0.01, 0.1, 1.0, 10.0, 100.0, 1000.0, 10000.0, 100000.0], 'gamma': [1e-07, 1e-06, 1e-05, 0.0001, 0.001, 0.01, 0.1, 1.0, 10.0]},
pre_dispatch='2*n_jobs', refit=True, score_func=None,
scoring='accuracy', verbose=0)

最佳答案

一些事情:

  1. 10 倍 CV 是矫枉过正,会导致您为每个参数组拟合 10 个模型。通过切换到 5 倍或 3 倍 CV(即 GridSearchCV 调用中的 cv=3),您可以获得即时 2-3 倍的加速,而性能没有任何有意义的差异估计。
  2. 在每一轮尝试更少的参数选项。使用 9x9 组合,您在每次运行中尝试 81 种不同的组合。通常,您会在规模的一端或另一端发现更好的性能,因此可以从 3-4 个选项的粗略网格开始,然后在您开始确定对您的数据更感兴趣的区域时变得更精细。 3x3 选项意味着与您现在所做的相比,速度提高了 9 倍。
  3. 您可以通过在 GridSearchCV 调用中将 njobs 设置为 2+ 来获得微不足道的加速,这样您就可以同时运行多个模型。根据您的数据大小,您可能无法将其增加得太高,并且您不会看到将其增加到超过您正在运行的内核数量的改进,但您可以通过这种方式减少一些时间.

关于python - 有没有更快的运行 GridsearchCV 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35655701/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com