Я обучил модель классификации, называющую 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'])))