xgboost的损失函数曲线绘制代码
时间: 2024-10-09 12:10:47 浏览: 48
Detectron2-FasterRCNN 画损失函数曲线
5星 · 资源好评率100%
XGBoost是一种流行的梯度 boosting 库,它通常通过迭代地训练弱学习器并合并它们来提高模型性能。它的损失函数可以可视化,这有助于理解模型的学习过程和性能。在Python中,我们可以使用`xgboost`库本身提供的`plot_importance`函数或者结合其他第三方库如`matplotlib`来绘制。
下面是一个简单的例子,展示如何在每轮迭代后绘制XGBoost的训练集和验证集的损失函数曲线:
```python
import xgboost as xgb
import matplotlib.pyplot as plt
# 创建简单数据集
dtrain = xgb.DMatrix('path/to/train.csv')
dvalid = xgb.DMatrix('path/to/val.csv')
# 设置模型参数
params = {
'objective': 'binary:logistic', # 使用二分类逻辑回归
'eval_metric': 'logloss', # 使用对数损失作为评估指标
}
# 训练模型
watchlist = [(dtrain, 'train'), (dvalid, 'eval')]
num_rounds = 100 # 设定训练轮次
bst = xgb.train(params, dtrain, num_rounds, watchlist)
# 绘制损失函数曲线
fig, ax = plt.subplots()
ax.plot(bst.evals_result()['train']['logloss'], label='Training Loss')
ax.plot(bst.evals_result()['eval']['logloss'], label='Validation Loss')
ax.set_xlabel('Iterations')
ax.set_ylabel('Log Loss')
ax.legend()
plt.show()
阅读全文