Я пытаюсь распечатать оценку точности для многозначного классификатора XGBoost. Однако я застрял на этой ошибке:
ValueError: метрики классификации не могут обрабатывать сочетание многозначных индикаторов и двоичных целей
Я думаю y_test
не требует быстрого кодирования при передаче в accuracy_score()
? Но все, что я пробовал, порождает больше ошибок. Есть идеи, как мне заставить это работать?
Код:
X = X.reshape(X.shape[0], -1)
print(X.shape)
# Split the dataset
x_train, x_test, y_train, y_test = train_test_split(X, yy, test_size=0.2, random_state=42, stratify=y)
dtrain = xgb.DMatrix(data=x_train, label=y_train)
dtest = xgb.DMatrix(data=x_test, label=y_test)
eval_list = [(dtest, 'eval')]
# Train the model
params = {
'max_depth': 3,
'objective': 'multi:softmax',
'num_class': 3,
'tree_method':'gpu_hist'
}
# Train the model
model = xgb.train(params, dtrain, evals=eval_list, early_stopping_rounds=20, verbose_eval=True)
# Evaluate predictions
y_pred = model.predict(dtest)
predictions = [round(value) for value in y_pred]
accuracy = accuracy_score(y_test, predictions)
print("Accuracy: %.2f%%" % (accuracy * 100.0))