我在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 ...
就我而言,我通过更改分配操作解决了此错误:
结果是,通过删除一些列,有些行的全为0,并且不能对模型有所贡献。
对于稀疏矩阵,xgboost R接口使用CSC格式创建方法。当前的问题是,此方法会自动从现有的非稀疏值确定行数,并且不计入最后的完全稀疏行。对于CSR稀疏,最后会出现类似的完全稀疏列丢失格式。有关更多详细信息,请参见xgboost issue #1223以及稀疏矩阵格式的wikipedia。
创建类似DBMatrix的正确方法