以下是一个基本的XGBRegressor参数调优代码,它包括了一些常见的参数以及它们的默认值和可以调整的范围。您可以根据您自己的数据和需求进行修改和扩展。

import pandas as pd
import numpy as np
import xgboost as xgb
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import GridSearchCV

# 加载数据
train_data = pd.read_csv('train.csv')
test_data = pd.read_csv('test.csv')

# 准备数据
X_train = train_data.drop(['target'], axis=1)
y_train = train_data['target']
X_test = test_data.drop(['target'], axis=1)
y_test = test_data['target']

# 定义模型
xgb_model = xgb.XGBRegressor()

# 定义要调优的参数及其范围
param_grid = {
    'max_depth': [3, 5, 7],
    'min_child_weight': [1, 3, 5],
    'gamma': [0, 0.1, 0.2],
    'subsample': [0.8, 1.0],
    'colsample_bytree': [0.8, 1.0],
    'learning_rate': [0.1, 0.01, 0.001]
}

# 使用GridSearchCV进行参数调优
grid_search = GridSearchCV(estimator=xgb_model, param_grid=param_grid, cv=5, n_jobs=-1, verbose=2)
grid_search.fit(X_train, y_train)

# 输出最佳参数和最佳得分
print("Best parameters: ", grid_search.best_params_)
print("Best score: ", grid_search.best_score_)

# 在测试集上进行预测
y_pred = grid_search.predict(X_test)

# 计算均方根误差
rmse = np.sqrt(mean_squared_error(y_test, y_pred))
print("RMSE: ", rmse)

在这个代码中,我们首先加载了训练集和测试集的数据,然后定义了一个XGBRegressor模型。接下来,我们通过定义一个param_grid字典来指定要调优的参数及其范围。然后,我们使用GridSearchCV来进行参数调优,并将结果输出到控制台。最后,我们在测试集上进行预测,并计算均方根误差

XGBRegressor 参数调优代码

原文地址: http://www.cveoy.top/t/topic/eaZ4 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录