直接看结果:
要使用贝叶斯优化来优化LightGBM模型的超参数,你可以使用 bayes_opt
库。下面是一个基本示例:
首先确保你已经安装了 bayes_opt
库。如果没有安装,可以使用以下命令安装:
pip install xgboost
这段代码展示了如何使用XGBoost进行回归任务的训练。你需要定义参数,将数据转换成XGBoost的DMatrix
数据类型,然后使用 xgb.train
函数来训练模型。最后,评估模型性能并保存训练好的模型。你可以根据需要调整参数以及应用其他特定于任务的技术来提高模型性能。
import xgboost as xgb
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
# 加载数据集
boston = load_boston()
X, y = boston.data, boston.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 定义XGBoost回归模型的参数
params = {
'objective': 'reg:squarederror', # 回归任务
'eta': 0.1, # 学习率
'max_depth': 5, # 树的最大深度
'min_child_weight': 1, # 叶子节点的最小权重
'gamma': 0, # 控制是否剪枝的参数
'subsample': 0.8, # 每棵树用来训练的样本占比
'colsample_bytree': 0.8, # 每棵树用来训练的特征占比
'eval_metric': 'rmse', # 评估指标为均方根误差
'seed': 42
}
# 将数据转换为XGBoost需要的数据类型
dtrain = xgb.DMatrix(X_train, label=y_train)
dtest = xgb.DMatrix(X_test, label=y_test)
# 训练模型
num_round = 100 # 迭代次数
model = xgb.train(params, dtrain, num_round)
# 在测试集上进行预测
y_pred = model.predict(dtest)
# 计算预测结果的均方根误差(RMSE)
rmse = mean_squared_error(y_test, y_pred, squared=False)
print(f"均方根误差(RMSE):{rmse}")
# 保存训练好的模型
model.save_model('xgboost_model.model')