【发布时间】:2018-11-05 03:25:48
【问题描述】:
我已经训练了一个分类模型调用CatBoostClassifier.fit(),同时提供了一个eval_set。
现在,如何获取评估指标的最佳值,以及训练期间达到的迭代次数?我可以通过在对fit() 的调用中设置plot=True 来绘制信息,但是如何将其分配给变量?
当我训练模型调用cv() 时,我可以做到这一点,因为cv() 返回所需的信息。但是根据文档,CatBoostClassifier.fit() 没有返回任何内容。
这里是我用来拟合模型的代码的 sn-p:
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'])))
【问题讨论】:
标签: catboost