Перекрестная проверка в CATBOOST Regressor: ValueError: Классификационные метрики не могут обрабатывать смесь двоичных и непрерывных целей - PullRequest
0 голосов
/ 18 марта 2020

У меня есть фрейм данных, который имеет без нулевых значений и имеет только числовые значения (я сделал необходимые преобразования)

Реализация CATBOOST

from catboost import CatBoostRegressor
from sklearn.model_selection import cross_val_score
CatBoost_clf=CatBoostRegressor()
CatBoost_clf.fit(X, y)
print('Train Accuracy',cross_val_score(CatBoost_clf, X_train, y_train, 
    cv=3, scoring='accuracy'))
print('Test Accuracy',cross_val_score(CatBoost_clf, X_test, y_test, cv=3, 
    scoring='accuracy'))

Ошибка

> ----> 5 print('Accuracy:',cross_val_score(CatBoost_clf, X, y, cv=3, scoring='accuracy'))

> ValueError: Classification metrics can't handle a mix of binary and continuous targets

Как рассчитать точность перекрестной проверки (cv = 3 или 3 итерации наборов проверки) в CATBOOST? (Выход y имеет значения 0 и 1)

1 Ответ

1 голос
/ 18 марта 2020

Необходимо использовать CatBoostClassifier.

Вы используете CatBoostRegressor, который предназначен для минимизации ошибки на основе непрерывных значений (например, 0,43823). Классификатор, например CatBoostClassifier, принимает категориальные входные значения (например, 0 или 1), что у вас есть. В вашем примере y - это:

0    1
1    0
2    0
3    0
4    0
5    0
6    1

Это определенно категорично, а не непрерывно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...