我正在进行网格搜索以确定最佳的 SVM 参数。我使用的是 ipython 和 sklearn。代码运行速度很慢,并且只使用了一个核心。如何加速这个过程并利用多个核心?谢谢
random_state = np.random.RandomState(10)X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=.2,random_state=random_state)model_to_set = OneVsRestClassifier(svm.SVC(kernel="linear"))parameters = { "estimator__C": [1, 2, 4, 8, 16, 32], "estimator__kernel": ["linear", "rbf"], "estimator__gamma":[1, 0.1, 1e-2, 1e-3, 1e-4],}model_tuning = GridSearchCV(model_to_set, param_grid=parameters)model_tuning.fit(X_train, y_train)print model_tuning.best_score_print model_tuning.best_params_print "Time passed: ", "{0:.1f}".format(time.time()-t), "sec"
回答:
GridSearchCV 中有一个 n_jobs
参数
n_jobs : int, default=1
并行运行的作业数。在 0.17 版本中进行了更改:升级到 joblib 0.9.3。