Я запускаю классификацию xgboost через пакет mlr.В моих данных отсутствуют значения, которые я хотел бы сохранить (то есть я хотел бы сохранить эти наблюдения и избежать вменения).Я понимаю, что реализация xgboost в mlr может обрабатывать пропущенные значения.Однако я не понимаю предупреждения, предоставляемого функцией mlr makeLearner.
Я попытался прочитать документацию и нашел это предупреждение в коде других людей.Но я не видел предупреждение, адресованное так, чтобы оно имело смысл для меня.
Например, я прочитал это обсуждение предупреждения, но оно не прояснило для меня: https://github.com/mlr-org/mlr/pull/1225
При вызове функции makeLearner появляется предупреждение:
xgb_learner <- makeLearner(
"classif.xgboost",
predict.type = "prob",
par.vals = list(
objective = "binary:logistic",
eval_metric = "error",
nrounds = 200,
missing = NA,
max_depth = 6,
eta = 0.1,
gamma = 5,
colsample_bytree = 0.5,
min_child_weight = 1,
subsample = 0.7
)
)
Warning in makeParam(id = id, type = "numeric", learner.param = TRUE, lower = lower, :
NA used as a default value for learner parameter missing.
ParamHelpers uses NA as a special value for dependent parameters.
Мои пропущенные значения в настоящее время кодируются как пропущенные значения (т. Е. NA).Ясно, что R распознает их как таковые из:
> sum(is.na(training$day))
[1] 58
Из функции getParamSet кажется, что параметр отсутствующий принимает числовые значения от -Inf до Inf.Таким образом, возможно, NA не является допустимым значением?
> getParamSet("classif.xgboost")
Warning in makeParam(id = id, type = "numeric", learner.param = TRUE, lower = lower, :
NA used as a default value for learner parameter missing.
ParamHelpers uses NA as a special value for dependent parameters.
Type len Def Constr Req Tunable Trafo
booster discrete - gbtree gbtree,gblinear,dart - TRUE -
watchlist untyped - <NULL> - - FALSE -
eta numeric - 0.3 0 to 1 - TRUE -
gamma numeric - 0 0 to Inf - TRUE -
max_depth integer - 6 1 to Inf - TRUE -
min_child_weight numeric - 1 0 to Inf - TRUE -
subsample numeric - 1 0 to 1 - TRUE -
colsample_bytree numeric - 1 0 to 1 - TRUE -
colsample_bylevel numeric - 1 0 to 1 - TRUE -
num_parallel_tree integer - 1 1 to Inf - TRUE -
lambda numeric - 1 0 to Inf - TRUE -
lambda_bias numeric - 0 0 to Inf - TRUE -
alpha numeric - 0 0 to Inf - TRUE -
objective untyped - binary:logistic - - FALSE -
eval_metric untyped - error - - FALSE -
base_score numeric - 0.5 -Inf to Inf - FALSE -
max_delta_step numeric - 0 0 to Inf - TRUE -
missing numeric - -Inf to Inf - FALSE -
Нужно ли мне перекодировать их как конкретное значение, которое я затем передаю в mlr (через пропущенное = [конкретное значение] в makeLearner)?Сделать что-то еще?Или это предупреждение не вызывает беспокойства?
Большое спасибо за любые разъяснения.