Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何绘制XGBoost评估指标?_Python_Pandas_Matplotlib_Xgboost_Xgbclassifier - Fatal编程技术网

Python 如何绘制XGBoost评估指标?

Python 如何绘制XGBoost评估指标?,python,pandas,matplotlib,xgboost,xgbclassifier,Python,Pandas,Matplotlib,Xgboost,Xgbclassifier,我有以下代码 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

我有以下代码

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

我用它制作了一个数据帧,并在时间(0-99)和其他指标之间绘制。是否有其他方法可以直接绘制输出?

我将继续从代码中显示绘制AUC分数的示例

results = model.evals_result()
epochs = len(results['validation_0']['error'])
x_axis = range(0, epochs)
结果是您的y轴值,年代是您的“n_估计值”。下面的代码绘制了这些结果:

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()
这将提供以下输出:


如果您想查看分类错误,请在ax.plot中将['auc']更改为['error']您所说的“我用它制作了一个数据帧”是什么意思?最直接的选择是在绘图中使用
model.evals_result()['sample name']['metric name']
list。看一看example@MykhailoLisovyi谢谢,我去看看。所谓数据帧,我的意思是我获取了输出并创建了一个。