Я хочу выполнить CatBoost над моим набором данных Titanic, который состоит в основном из категориальных данных и имеет двоичную цель.
Мои данные выглядят так:
train.head()
Embarked Pclass Sex Survived IsCabin Deck IsAlone IsChild Title AgeBin FareBin
0 S 3 male 0.0 0 Unknown 0 1 Mr Young Low
1 C 1 female 1.0 1 C 0 1 Mrs Adult High
2 S 3 female 1.0 0 Unknown 1 1 Miss Young Mid low
3 S 1 female 1.0 1 C 0 1 Mrs Adult High
4 S 3 male 0.0 0 Unknown 1 1 Mr Adult Mid low
Я сделал:
# Get train and validation sub-datasets
from sklearn.model_selection import train_test_split
x = train.drop(["Survived"], axis=1)
y = train["Survived"]
#Do train data splitting
X_train, X_test, y_train, y_test = train_test_split(x,y, test_size=0.2, random_state=42)
# Get categorical features
cat_features_indices = np.where(x.dtypes != float)[0]
import catboost
model = catboost.CatBoostClassifier(
one_hot_max_size=7,
iterations=100,
random_seed=42,
verbose=False,
eval_metric='Accuracy'
)
pool = catboost.Pool(X_train, y_train, cat_features_indices)
cv_scores = catboost.cv(pool, model.get_params(), fold_count=10, plot=True)
... который возвращает:
CatBoostError: catboost / libs / metrics / metric.cpp: 4617: потеря [RMSE] несовместима с метрикой [Точность] (без поддержки классификации)
Помощь будет оценена. Я немного смущен ошибкой. Спасибо!