xgboost_train
时间: 2024-04-22 15:19:23 浏览: 121
XGBoost是一种基于决策树的集成学习算法,它通过多个弱分类器的集成来提高模型的准确性和鲁棒性[^1]。下面是一个使用XGBoost进行训练的示例:
```python
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)
# 定义模型参数
params = {
'objective': 'reg:squarederror', # 指定回归问题的损失函数
'eta': 0.1, # 学习率
'max_depth': 3, # 决策树的最大深度
'min_child_weight': 1, # 决策树叶子节点的最小权重
'gamma': 0, # 控制决策树的叶子节点分裂的最小损失减少量
'subsample': 0.8, # 每棵树使用的样本比例
'colsample_bytree': 0.8, # 每棵树使用的特征比例
'eval_metric': 'rmse' # 评估指标为均方根误差
}
# 转换数据格式
dtrain = xgb.DMatrix(X_train, label=y_train)
dtest = xgb.DMatrix(X_test, label=y_test)
# 训练模型
num_rounds = 100 # 迭代次数
model = xgb.train(params, dtrain, num_rounds)
# 预测
y_pred = model.predict(dtest)
# 评估模型
mse = mean_squared_error(y_test, y_pred)
print("Mean Squared Error:", mse)
```
这个示例中,我们使用了波士顿房价数据集进行训练和测试。首先,我们加载数据集并将其划分为训练集和测试集。然后,我们定义了XGBoost模型的参数,包括损失函数、学习率、决策树的最大深度等。接下来,我们将数据转换为XGBoost所需的格式,并使用训练集训练模型。最后,我们使用测试集进行预测,并计算均方根误差作为模型的评估指标。
阅读全文