Проверка не удалась: метка Loss :: CheckLabel (y) должна быть в [0,1] для логистической регрессии - PullRequest
0 голосов
/ 03 сентября 2018

Это ошибка с функцией поезда xgboost()? Метки поезда обновляются как numeric, но все же я вижу ту же ошибку, что метки должны быть [0,1] для лог рег.

Что я пробовал.

Первый метод.

train.y <- as.factor(train.y)

levels(train.y)[levels(train.y) =='klar'] <- 0
levels(train.y)[levels(train.y) =='trüb'] <- 1
train.y <- as.numeric(train.y)

1010 * Альтернативный * Второй метод. train.y <- as.numeric(as.factor(train.y)) > class(train.y) [1] "numeric" # convert dataset into Dmatrix dtrain <- xgb.DMatrix(data =as.matrix(train.x), label= train.y) # train model model.xgb <- xgboost(data = dtrain, # the data max.depth = 3, nround = 50, # boosting iterations objective = "binary:logistic") # the objective function Error

Error in xgb.iter.update(bst$handle, dtrain, iteration - 1, obj) : 
  [12:55:32] amalgamation/../src/objective/regression_obj.cc:98: Check failed: Loss::CheckLabel(y) label must be in [0,1] for logistic regression

Как я могу обойти это?

Похожая проблема зарегистрирована здесь . Я сообщил об этом здесь , но на всякий случай, если кто-то уже решил это.

Вот воспроизводимый пример.

Воспроизводимый пример

train.x <- matrix(rexp(5000), ncol = 10)

train.y <- rep(c('klar', 'trüb'), times=250)
train.y <- as.numeric(as.factor(train.y))

dtrain <- xgb.DMatrix(as.matrix(train.x), label=train.y)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...