首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >xgboost错误: setinfo.xgb.DMatrix(dmat,names(p),p[[1]])中出错:标签的长度必须等于输入数据中的行数

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

Stack Overflow用户
提问于 2020-01-09 16:04:51
回答 1查看 441关注 0票数 0
代码语言:javascript
运行
复制
sparse_matrix <- sparse.model.matrix(state ~ . -Month -LanID, data = smoted_data)
smoted_data_mat_label<-as.matrix(as.numeric(smoted_data$state))
smoted_data_mat_label = smoted_data[,"state"] == 1

    xgb.fit <- xgboost(
    data = sparse_matrix,
    label = smoted_data_mat_label,
    eta = 1.8,
    max_depth = 7,
    min_child_weight = 11, # could be anything all are showing same results
    nrounds = 9, # could be anything all are showing same results
    nfold = 10,
    objective = "binary:logistic",  # for regression models
    verbose = 1,               # silent,
    early_stopping_rounds = 10 # stop if no improvement for 10 consecutive trees
  )

Error in setinfo.xgb.DMatrix(dmat, names(p), p[[1]]) : 
  The length of labels must equal to the number of rows in the input data

length(smoted_data_mat_label)
[1] 22721
>   length(sparse_matrix)
[1] 41739681
  dim(smoted_data)
[1] 22721    31
   length(smoted_data$LanID)
[1] 22721

早些时候代码运行正常,现在它导致下面的错误,不确定为什么?我检查了sparse_matrix的类,它是矩阵,标签也是矩阵。

EN

回答 1

Stack Overflow用户

发布于 2020-01-09 18:33:27

这个问题的发生是因为在新的数据中引入了一些NA。删除了NA,算法工作正常。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59659551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档