Multiclassification doesn’t work. I have no ideas why. Please, help. I also tried to use target with strings instead of numbers.
target:
df['class'].value_counts()
class
0 1176
1 618
2 40
Name: count, dtype: int64
Classifier:
cb = CatBoostClassifier(loss_function='MultiClassOneVsAll',
random_state=RANDOM_STATE,
logging_level='Verbose',
metric_period=10,
name='Подбор гиперпараметров',
classes_count=3,
eval_metric='AUC:type=OneVsAll;hints=skip_train~False',
early_stopping_rounds=20,
cat_features=cat_features
)
param_grid:
param_grid = {'learning_rate': np.linspace(0.001, 0.40, 10),
'iterations': [300, 500, 800, 1000, 1500, 2000],
'max_depth': [6, 10, 16],
'auto_class_weights': [None, 'Balanced']
}
search
grid_search_result = cb.grid_search(param_grid,
train[X],
train[y],
cv=3,
partition_random_seed=RANDOM_STATE,
calc_cv_statistics=False,
search_by_train_test_split=False,
refit=True,
stratified=True,
train_size=1,
verbose=100,
plot=False)
Error
CatBoostError: /src/catboost/catboost/libs/metrics/metric.cpp:3300: AUC type “OneVsAll” isn’t a singleclass AUC type
Details:
CatBoostError Traceback (most recent call last)
<ipython-input-99-e36ee58f1eaa> in <cell line: 4>()
2 # кроссвалидации, которую будем проводить для
3 # каждого набора гиперпараметров
4 grid_search_result = cb.grid_search(param_grid,
5 train[X],
6 train[y],1 frames
/usr/local/lib/python3.10/dist-packages/catboost/core.py in grid_search(self, param_grid, X, y, cv, partition_random_seed, calc_cv_statistics, search_by_train_test_split, refit, shuffle, stratified, train_size, verbose, plot, plot_file, log_cout, log_cerr)
4188 raise TypeError(‘Parameter grid value is not iterable (key={!r}, value={!r})’.format(key, grid[key]))
4189
4190 return self._tune_hyperparams(
4191 param_grid=param_grid, X=X, y=y, cv=cv, n_iter=-1,
4192 partition_random_seed=partition_random_seed, calc_cv_statistics=calc_cv_statistics,/usr/local/lib/python3.10/dist-packages/catboost/core.py in _tune_hyperparams(self, param_grid, X, y, cv, n_iter, partition_random_seed, calc_cv_statistics, search_by_train_test_split, refit, shuffle, stratified, train_size, verbose, plot, plot_file, log_cout, log_cerr)
4077
4078 with plot_wrapper(plot, plot_file, ‘Hyperparameters search plot’, [_get_train_dir(params)]):
4079 cv_result = self._object._tune_hyperparams(
4080 param_grid, train_params[“train_pool”], params, n_iter,
4081 fold_count, partition_random_seed, shuffle, stratified, train_size,_catboost.pyx in _catboost._CatBoost._tune_hyperparams()
_catboost.pyx in _catboost._CatBoost._tune_hyperparams()
CatBoostError: /src/catboost/catboost/libs/metrics/metric.cpp:3300: AUC type “OneVsAll” isn’t a singleclass AUC type
See code fragment. I made enough amount of objects for each class
D B is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.