from xgboost import XGBRegressor tuned_parameters = [{ 'max_depth': range(3,10), 'n_estimators': range(100, 600, 100), 'learning_rate':[0.01] },] # 非GPU xgb= GridSearchCV(estimator=XGBRegressor(), param_grid=tuned_parameters, cv=5) # GPU # xgb= GridSearchCV(estimator=XGBRegressor(tree_method='gpu_hist', gpu_id=0), param_grid=tuned_parameters, cv=5) # 也可以换成lgbm,lgbm比xgboost快很多 # xgb= GridSearchCV(estimator=LGBMRegressor(), param_grid=tuned_parameters, cv=5) xgb.fit(XX_train,YY_train) y_xgb= xgb.predict(XX_test) print ('Optimum epsilon and kernel 1D: ', xgb.best_params_) # evaluate predictions mae = mean_absolute_error(YY_test, y_xgb) mape = mean_absolute_percentage_error(YY_test['BOD'], y_xgb) score = xgb.score(XX_test, YY_test) train_score = xgb.score(XX_train, YY_train) print('MAE: %.3f, MAPE: %.3f, R2_tain: %.3f, R2_test: %.3f' % ((mae,mape,train_score,score)))
时间: 2024-04-29 18:21:01 浏览: 154
这段代码是用来进行XGBoost模型的超参数调优的。首先定义了一些参数的取值范围,然后使用GridSearchCV函数来进行网格搜索,通过交叉验证来选择最佳的参数组合。其中,可以选择使用GPU进行计算以提高速度,也可以选择使用LightGBM模型代替XGBoost模型。最后打印出最佳参数组合,并输出模型在测试集上的MAE、MAPE、R2_train和R2_test等指标。
阅读全文
相关推荐











