gayathri dornadula
gayathri dornadula

Reputation: 71

XGBoost Error when using xgboost function

Here is my code:

xgb <- xgboost(data = as.matrix(df_all_combined), 
               label = as.matrix(target_train), 
               eta = 0.1,
               max_depth = 15, 
               nround=100, 
               subsample = 0.5,
               colsample_bytree = 0.5,
               seed = 1,
               eval_metric = "auc",
               objective = "binary:logistic",
               num_class = 12,
               nthread = 3)

Getting the below Error:

Error in xgb.iter.update(bst$handle, dtrain, iteration - 1, obj) : [09:17:34] amalgamation/../src/objective/regression_obj.cc:90: Check failed: (preds.size()) == (info.labels.size()) labels are not correctly providedpreds.size=840756, label.size=70063

Could anyone help me out to solve this issue? Not able to figure out the issue.

Upvotes: 7

Views: 13144

Answers (4)

Bak_was
Bak_was

Reputation: 45

The Objective and num_class donot seem to be in sync From xgboost parameter description : objective "binary:logistic: logistic regression for binary classification, output probability"

And in your question the mentioned num_class =12 ,this seems to be a mismatch as binary objective is used to predict variables belonging to 2 classes only (0/1).

Upvotes: 0

user2215860
user2215860

Reputation: 25

Xgboost has a bug with multiclass classification. It uses preds.size () = info.labels.size() * num_classes, while using 'auc' which is wrong. So use any other metric like merror.

Upvotes: 0

PixelPioneer
PixelPioneer

Reputation: 4170

The error says: labels are not correctly provided preds.size=840756, label.size=70063

This means that number of rows in df_all_combined does not correspond to the number of rows in target_train

So target_train should be of the shape (840756,)

Upvotes: 1

Sara
Sara

Reputation: 79

Try remove num_class = 12 from your parameters.

Upvotes: 7

Related Questions