输入数据包含 'inf' 或 'nan' 的 R xgboost 错误,但它以前工作过

R xgboost error with input data containing 'inf' or 'nan' but it has worked before

我正在使用 xgboost 版本 1.4.1.1 的 R 库执行二进制分类任务,我已经定期交付近 2 年了。

我最近升级了我公司的笔记本电脑,需要安装 R 和我正在使用的库。

我现在正在尝试 运行 这个任务,它给我以下错误:

Error in xgb.DMatrix(data, label = label, missing = missing) : 
  [14:28:40] amalgamation/../src/data/data.cc:945: Check failed: valid: Input data contains `inf` or `nan`

数据管道没变,数据结构和之前完全一样。我将数据转换为数据矩阵,如下所示:

xgbmodel <- xgboost(data = data.matrix(mydata),
                  label = res,
                  eta = 0.2,
                  max_depth = 10,
                  gamma = 0.4,
                  lambda = 0.5,
                  nround = 40,
                  subsample = 0.7,
                  colsample_bytree = 0.75,
                  seed = 21,
                  eval_metric = "logloss",
                  objective = "binary:logistic"
)
#

然后我遇到了以前从未遇到过的错误。

R 版本:4.1.0

xgboost: 1.4.1.1

关于如何解决这个问题有什么想法吗?

编辑: 我卸载了 xgboost 1.4.1.1 并安装了 1.1.1.1 版本。它的工作。好像是版本的问题,不是数据的问题。我想使用最新版本,这就是为什么知道是否有其他人有类似问题以及如何解决它会很好。

我遇到了同样的错误。 我想以前版本的 xgboost wad 会处理缺失值,但现在不再是这种情况了。 我们要么放弃 NA,要么我们使用均值或中位数来估算它们(就像 xgboost 在更新版本之前所做的那样),例如使用 KNN 估算。 不确定这是否是您要找的答案。