我试图做一个网格搜索来优化我的模型,但是执行起来太长了。我的数据集只有大约15,000个观测值,大约有30-40个变量.我成功地在网格搜索中运行了一个随机森林,花费了一个半小时,但是现在我切换到了SVC,它已经运行了9个多小时,而且还没有完成。下面是我的交叉验证代码示例:
代码语言:javascript运行复制from sklearn.model_selection import GridSearchCV
from sklearn import svm
from sklearn.svm import SVC
SVM_Classifier= SVC(random_state=7)
param_grid = {'C': [0.1, 1, 10, 100],
'gamma': [1,0.1,0.01,0.001],
'kernel': ['linear', 'poly', 'rbf', 'sigmoid'],
'degree' : [0, 1, 2, 3, 4, 5, 6]}
grid_obj = GridSearchCV(SVM_Classifier,
return_train_score=True,
param_grid=param_grid,
scoring='roc_auc',
cv=3,
n_jobs = -1)
grid_fit = grid_obj.fit(X_train, y_train)
SVMC_opt = grid_fit.best_estimator_
print('='*20)
print("best params: " + str(grid_obj.best_estimator_))
print("best params: " + str(grid_obj.best_params_))
print('best score:', grid_obj.best_score_)
print('='*20)我已经将交叉验证从10减少到3,我使用的是n_jobs=-1,所以我使用了我的所有核心。在这里我还能做些什么来加速这个过程吗?