xgb.DMatrix错误:标签的长度必须等于输入数据中的行数

问题描述 投票:2回答:4

我在R中使用xgboost。

我使用矩阵作为输入很好地创建了xgb矩阵,但是当我减少矩阵数据中的列数时,会收到错误。

此作品:

> dim(ctt1)

[1] 6401 5901

> xgbmat1 <- xgb.DMatrix(
     Matrix(data.matrix(ctt1)),
     label = as.matrix(as.numeric(data$V2)) - 1
  )

这不是:

> dim(ctt1[,nr])

[1] 6401 1048

xgbmat1 <- xgb.DMatrix(
    Matrix(data.matrix(ctt1[,nr])),
    label = as.matrix(as.numeric(data$V2)) - 1)

xgb.setinfo(dmat,names(p),p [[1]]中的错误:标签的长度必须等于输入数据中的行数]

我在R中使用xgboost。我使用矩阵作为输入创建了xgb矩阵,但是当我减少矩阵数据中的列数时,会收到错误消息。这有效:> dim(ctt1)[1] 6401 ...

r matrix xgboost
4个回答
3
投票

就我而言,我通过更改分配操作解决了此错误:


2
投票

结果是,通过删除一些列,有些行的全为0,并且不能对模型有所贡献。


2
投票

对于稀疏矩阵,xgboost R接口使用CSC格式创建方法。当前的问题是,此方法会自动从现有的非稀疏值确定行数,并且不计入最后的完全稀疏行。对于CSR稀疏,最后会出现类似的完全稀疏列丢失格式。有关更多详细信息,请参见xgboost issue #1223以及稀疏矩阵格式的wikipedia


0
投票

创建类似DBMatrix的正确方法

© www.soinside.com 2019 - 2024. All rights reserved.