кросс-валидацию:
params = {
'iterations': 1000,
'depth': 3,
'learning_rate': 0.01,
'loss_function': 'Logloss',
'eval_metric': 'Precision:use_weights=false',
'custom_metric': ['Logloss', 'Precision:use_weights=false'],
'auto_class_weights': 'Balanced',
}
CatBoostError: catboost/libs/metrics/metric.cpp:6278: If non-default weights for objects are not set, the 'use_weights' parameter must not be specified.
Не очень понятно что делать + я не задавал напрямую use_weights поэтому ошибка наверное всё-таки не очень корректна. Мне надо просто поставить object weights == 1? Если так то почему так важно делать это вручную?
Заранее спасибо 💛💛💛
Update: я изначально думал что проблема как-то связана с class weights, теперь понимаю что скорее всего с Precision:use_weights. Всё равно не очень понятно, что от меня здесь требуется
+1. не удается посчитать правильно метрику (без взвешивания) на кросс-валидации с class_weights. Если указать use_weights=false, то выдает ошибку, а если не указывать - то метрика считается по дефолту со взвешиванием @rudolfovic , удалось найти решение? model_test = CatBoostClassifier( iterations=600, eval_metric='F1:use_weights=False', learning_rate=0.01, loss_function= 'Logloss' ,class_weights=[1,2] ) scores_test = cv( train_pool, model_test.get_params(), fold_count=3 )
Обсуждают сегодня