如何绘制 XGBoost 评估指标?
how to plot XGBoost evaluation metrics?
我有以下代码
eval_set = [(X_train, y_train), (X_test, y_test)]
eval_metric = ["auc","error"]
在接下来的部分中,我正在训练 XGBClassifier
模型
model = XGBClassifier()
%time model.fit(X_train, y_train, eval_set=eval_set, eval_metric=eval_metric, verbose=True)
这为我提供了以下格式的指标
[0] validation_0-auc:0.840532 validation_0-error:0.187758 validation_1-auc:0.84765 validation_1-error:0.17672
[1] validation_0-auc:0.840536 validation_0-error:0.187758 validation_1-auc:0.847665 validation_1-error:0.17672
....
[99] validation_0-auc:0.917587 validation_0-error:0.13846 validation_1-auc:0.918747 validation_1-error:0.137714
Wall time: 5 s
我用它制作了一个 DataFrame 并在时间 (0-99) 和其他指标之间绘制。有没有其他方法可以直接绘制输出?
我将从您的代码继续展示绘制 AUC 分数的示例。
results = model.evals_result()
epochs = len(results['validation_0']['error'])
x_axis = range(0, epochs)
results 是您的 y 轴值,epochs 是您的 'n_estimators' 值。下面的代码绘制了这些结果:
fig, ax = pyplot.subplots()
ax.plot(x_axis, results['validation_0']['auc'], label='Train')
ax.plot(x_axis, results['validation_1']['auc'], label='Test')
ax.legend()
pyplot.ylabel('AUC')
pyplot.title('XGBoost AUC')
pyplot.show()
这将给出以下输出:
如果要查看分类错误,将['auc']更改为['error'] ax.plot
我有以下代码
eval_set = [(X_train, y_train), (X_test, y_test)]
eval_metric = ["auc","error"]
在接下来的部分中,我正在训练 XGBClassifier
模型
model = XGBClassifier()
%time model.fit(X_train, y_train, eval_set=eval_set, eval_metric=eval_metric, verbose=True)
这为我提供了以下格式的指标
[0] validation_0-auc:0.840532 validation_0-error:0.187758 validation_1-auc:0.84765 validation_1-error:0.17672
[1] validation_0-auc:0.840536 validation_0-error:0.187758 validation_1-auc:0.847665 validation_1-error:0.17672
....
[99] validation_0-auc:0.917587 validation_0-error:0.13846 validation_1-auc:0.918747 validation_1-error:0.137714
Wall time: 5 s
我用它制作了一个 DataFrame 并在时间 (0-99) 和其他指标之间绘制。有没有其他方法可以直接绘制输出?
我将从您的代码继续展示绘制 AUC 分数的示例。
results = model.evals_result()
epochs = len(results['validation_0']['error'])
x_axis = range(0, epochs)
results 是您的 y 轴值,epochs 是您的 'n_estimators' 值。下面的代码绘制了这些结果:
fig, ax = pyplot.subplots()
ax.plot(x_axis, results['validation_0']['auc'], label='Train')
ax.plot(x_axis, results['validation_1']['auc'], label='Test')
ax.legend()
pyplot.ylabel('AUC')
pyplot.title('XGBoost AUC')
pyplot.show()
这将给出以下输出:
如果要查看分类错误,将['auc']更改为['error'] ax.plot