我已经训练了一个分类模型调用CatBoostClassifier.fit()
,还提供了一个eval_set
.
现在,我怎样才能获取评估指标的最佳值,以及在训练期间实现的迭代次数?plot=True
我可以通过设置调用来绘制信息fit()
,但是如何将其分配给变量?
我可以在训练模型调用时做到这一点cv()
,因为它会cv()
返回所需的信息。但CatBoostClassifier.fit()
根据文档不返回任何内容。
这是我用来拟合模型的代码片段:
model = CatBoostClassifier(
random_seed=42,
logging_level='Silent',
eval_metric='Accuracy'
)
model.fit(X_train,
y_train,
cat_features=cat_features_idxs,
eval_set=(X_val, y_val),
plot=True
)
如果我改用以下方法,我将如何设法获取所需的信息cv()
:
cv_data = cv(Pool(X, y, cat_features = cat_features_idxs),
model.get_params(),
fold_count = 5,
plot=True)
print('Validation accuracy (best average among cross-validation folds) is {} obtained at step {}.'.format(np.max(cv_data['test-Accuracy-mean']), np.argmax(cv_data['test-Accuracy-mean'])))