据我所知,XGB应该有处理缺失数据的好处,但是,每当我测试波士顿住房集添加几个NA时,我都会收到错误:
The length of labels must equal to the number of rows in the input data
我正在运行的代码是
trainm <- sparse.model.matrix(class ~ ., data = train)
train_label <- train[,"class"]
train_matrix <- xgb.DMatrix(data = as.matrix(trainm) label=train_label)
当我不添加NAs时,一切运行正常。我很确定问题是从稀疏矩阵中移除了NA会导致混淆,但我不知道如何解决它。
我的代码是here。
任何可以帮助我的反馈都将受到高度赞赏。
答案 0 :(得分:4)
在构建稀疏模型矩阵时,您需要采取纠正措施来处理NA。休息,您的代码/数据没有问题。这是修改后的代码:
options(na.action='na.pass')
trainm <- sparse.model.matrix(class ~ ., data = train)
train_label <- train$class
train_matrix <- xgb.DMatrix(data = trainm, label=train$class)