scikit-learn 优化 xgboost的参数GPU溢出问题

scikit-learn中的GridSearchCV用来优化算法参数比较方便,代码如下:

# 优化min_child_weight以及max_depth
cv_params = {'max_depth': [3, 4, 5, 6, 7, 8, 9, 10], 'min_child_weight': [1, 2, 3, 4, 5, 6]}
other_params = {'tree_method':'gpu_hist','objective':'reg:gamma','learning_rate': 0.1, 'n_estimators': 570, 'max_depth': 4, 'min_child_weight': 5, 'seed': 0,
                    'subsample': 0.8, 'colsample_bytree': 0.8, 'gamma': 0, 'reg_alpha': 0, 'reg_lambda': 1}
model = xgb.XGBRegressor(**other_params)
optimized_GBM = GridSearchCV(estimator=model, param_grid=cv_params, scoring='r2', cv=3, verbose=1, n_jobs=2)
optimized_GBM.fit(x_train, y_train)
evalute_result = optimized_GBM.grid_scores_
print('每轮迭代运行结果:{0}'.format(evalute_result))
print('参数的最佳取值:{0}'.format(optimized_GBM.best_params_))
print('最佳模型得分:{0}'.format(optimized_GBM.best_score_))

 

只是在优化xgboost的参数时略微不同,单个xgboost的fit是基于GPU来进行的,如果设置线程或者进程太多会导致GPU内运算出问题,这里不报错,也不停止

解决方案:调整n_jobs=2,原来为8

注:这里调到适合自己电脑就行

0
分享到:
广告位招租

评论0

请先

没有账号? 注册忘记密码?