【发布时间】:2018-10-22 13:51:42
【问题描述】:
我需要同时为特定组运行许多交叉验证
SVR 超参数:((C_0,gamma_0),(C_1,gamma_1)...(C_n,gamma_n)) 和 因此,寻求一种并行化方法来加速它。
也许可以运行 GridSearchCV,这样它就不会检查超参数的每个可能组合,而是以“元素明智”的方式检查它们。示例:
tuned_parameters = [{'kernel': ['rbf'], 'gamma': [1e-3, 1e-4],
'C': [100, 1000]]
clf = GridSearchCV(SVR(), tuned_parameters, cv=5, n_jobs=-1)
clf.fit(X_train, y_train)
因此在这种情况下,将只检查两对超参数,即:(1e-3,100) 和 (1e-4,1000),而不是所有四个组合。
【问题讨论】:
-
您考虑过“n_jobs”选项吗?它不会在超参数上并行化,而是在每个超参数的交叉验证数量上并行化。
-
刚刚编辑了帖子。我总是使用 n_jobs=-1。但是,这并不能解决我的问题。
-
听起来您不是在寻找一种并行处理的方法(即通过设置
njobs = N来实现),而是在寻找一种处理自定义参数集而不是整个网格的方法。如果是这样,您为什么不直接循环通过KFold.split()see example in the docs 自己运行CV 或使用RandomizedSearchCV? -
特别考虑到 Vivek Kumar 的回答,这个问题可能与 this question 重复
-
@Quickbeam2k1 你是对的。对不起。我找不到这个答案。
标签: python scikit-learn svm grid-search hyperparameters